概要
Microsoft Graph API を利用するために必須となる アクセストークン を取得するためだけの Python プログラムです。
事前に必要なクレデンシャル情報については、この記事 を参考にして取得しました。
実行環境
macOS Big Sur 11.1
python 3.8.3
クレデンシャル情報の定義
事前に取得したクレデンシャル情報は .zshenv で定義しています。
# AzureAccessToken取得のための定義
export TENANT_ID=zzzzzzzzzzzzzzzzzzzzzzzzzz
export CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxx
export CLIENT_KEY=yyyyyyyyyyyyyyyyyyyyyyyyy
実行プログラム
GetAzureAccessToken.py
import json
import os
import requests
import argparse
import time
# Microsoft GraphAPI クレデンシャル情報の取得
TENANT_ID = os.environ['TENANT_ID']
CLIENT_ID = os.environ['CLIENT_ID']
CLIENT_KEY = os.environ['CLIENT_KEY']
# Azureアクセスのためのアクセストークンの取得
def get_azure_access_token() -> str:
# access_token を取得するためのヘッダ情報
headers = {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
}
payload = {
'client_id': CLIENT_ID,
'scope': 'https://graph.microsoft.com/.default',
'grant_type': 'client_credentials',
'client_secret': CLIENT_KEY
}
# access_token を取得するためのURLを生成
TokenGet_URL = "https://login.microsoftonline.com/" + \
TENANT_ID + "/oauth2/v2.0/token"
# print(TokenGet_URL)
# 実行
response = requests.get(
TokenGet_URL,
headers=headers,
data=payload
)
# requrest処理のクローズ
response.close
# その結果を取得
jsonObj = json.loads(response.text)
return jsonObj["access_token"]
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Azureアクセスのためのアクセストークンの取得')
args = parser.parse_args()
start = time.time()
access_token = get_azure_access_token()
generate_time = time.time() - start
print("")
print("取得時間:{0}".format(generate_time) + " [sec]")
print("取得アクセストークン:")
print(access_token)
print("")
プログラムの実行
最初にヘルプを表示してみます。
$ python GetAzureAccessToken.py -h
usage: GetAzureAccessToken.py [-h]
Azureアクセスのためのアクセストークンの取得
optional arguments:
-h, --help show this help message and exit
では、アクセストークンを取得してみます。
$ python GetAzureAccessToken.py
取得時間:0.2260270118713379 [sec]
取得アクセストークン:
iJKV1QiLCJub25jZSI6ImRx ・・・中略・・・ KjjJQGdwR-5CusZ0Nc0ON62Z0Jm
参考情報
以下の情報を参考にさせていただきました。感謝いたします。
Microsoft GraphAPIをつかってみよう。-- 事前準備 編--
Microsoft GraphAPIをつかってみよう。-- 実践 編--
PythonでSharePointの特定サイトの特定リストの特定レコードのURLを取得する方法
訳あってMicrosoft Graph API調べてみた