Exchange OnlineとMicrosoft Graph APIのフォルダID
Microsoft Graph APIで得られるフォルダID
このURLの末尾 %3D は = という文字であり、Base64文字列としては89バイトに相当する。
デコードするとで始まり、そのあとにExchangeGuidと呼ばれるUUID文字列(36バイト)がエンコードされている。 それだけでは40バイトなのだが、その後ろに'0x00', そのあとに 48バイトの何かが続く。
ExchangeGuid
例 67235055-46bb-4d57-ae1f-59589c9fddcd
文字列として考えればハイフンを含めて36文字すなわち36バイト
FolderStoreObjectId
例 LgAAAAAHGGabzeUxQoG7SxGxGslRAQAM9NlovNFWQ4yxCZRlBLu9AAboWILbAAAB
Outlook on the webのフォルダID
https://gyazo.com/200833deb7d677a39e15c0c5f0c5ed71 https://gyazo.com/5a80aa1f8d0a95ae9b3317c33a240a88
89バイトの何かをBase64でエンコードしたもののように見える
先頭は0x00,0x03,0x24,0x00の4バイト
例 AAMkADY3MjM1MDU1LTQ2YmItNGQ1Ny1hZTFmLTU5NTg5YzlmZGRjZAAuAAAAAAAHGGabzeUxQoG7SxGxGslRAQAM9NlovNFWQ4yxCZRlBLu9AAboWILbAAA=
フォルダIDの構成
code:createFolderId.py
part2_string = "67235055-46bb-4d57-ae1f-59589c9fddcd"
part2 = part2.encode()
part4_base64 = "LgAAAAAHGGabzeUxQoG7SxGxGslRAQAM9NlovNFWQ4yxCZRlBLu9AAboWILbAAAB"
part4_full = base64.b64decode(part4_base64)
part4 = part4_full1:-1 # Excluding the first and the last byte # Concatenating the parts
combined_bytes = part1 + part2 + part3 + part4
# Encoding the combined byte sequence to base64
encoded_combined = base64.b64encode(combined_bytes).decode()
encoded_combined
# AAMkADY3MjM1MDU1LTQ2YmItNGQ1Ny1hZTFmLTU5NTg5YzlmZGRjZAAuAAAAAAAHGGabzeUxQoG7SxGxGslRAQAM9NlovNFWQ4yxCZRlBLu9AAboWILbAAA=