LoginSignup
4
5

More than 3 years have passed since last update.

概要

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調べてみた

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5