Python による Microsoft Graph API を利用し、Teams Lists の Site-ID と List-ID を取得してみました
概要
Microsoft Graph API を利用して Teams Lists の Site-ID と List-ID を取得するための Python プログラムです。
手順は、以下となります。
①.Teams Lists の作成(リスト名)
②.その Lists のサイト情報の取得
③.リスト名とサイト情報から、作成した Temas Lists の Site-ID と List-ID を取得
なお、Access Token の取得については、このプログラム を使用しています。
実行環境
macOS Big Sur 11.1
python 3.8.3
Temas Lists の作成
このサイトを参照 にして、リストを一から作成します。
このとき、「空白のリスト」を選択し、リスト名には「UList(任意)」を設定します。このリスト名は後述の実行プログラムの「SPS_LISTNAME」で定義します。
作成した Teams Lists 情報からSite-IDを取得するための情報を取得します。
このサイト に記載されている「キーワードで検索」する方法を使用するために、作成した Teams Lists の検索名を取得します。
下記画面にあるように、上部メニューから、「SharePointで開く」を選択し、新たに表示されたブラウザ画面のURLを確認します。
下記の表示例でいえば、赤線で囲まれた値「3b3b3b」がキーワード検索で使用する文字列となり、後述の実行プログラムの「SiteGet_URL」の最後の定義する文字列となります。
これで事前準備が完了しました。
実行するプログラム
import json
import os
import requests
import argparse
import time
import pprint
from datetime import datetime, timedelta, date
from GetAzureAccessToken import get_azure_access_token # Azureアクセスのためのアクセストークンの取得オリジナル関数
# Teams Lists Info(リスト名の定義)
SPS_LISTNAME = 'UList'
# TeamsListのサイトURL
SiteGet_URL = 'https://graph.microsoft.com/v1.0/sites?search=3b3b3b'
# SiteIDとListIDの取得
def get_siteID_listID(access_token):
# Microsoft Graphを実行するためのヘッダ情報
headers = {
'Authorization': 'Bearer %s' % access_token
}
# SiteID取得のGetリクエスト
res1 = requests.get(
SiteGet_URL,
headers=headers
)
# requrest処理をクローズする
res1.close
# res1をjsonファイルに整形
res1json = res1.json()
# print(res1json)
# 必要数分のListIDを取得する
for i, row in enumerate(res1json['value']):
# 結果からSiteのIDとNameを取得する。
SiteID = res1json['value'][i]['id']
SiteName = res1json['value'][i]['name']
# ListIDを取得するためのURLを生成する
ListGet_URL = "https://graph.microsoft.com/v1.0/sites('" + SiteID + \
"')/lists?$filter=displayName eq '" + SPS_LISTNAME + "'"
print(ListGet_URL)
# ListID取得のGetリクエスト
res2 = requests.get(
ListGet_URL,
headers=headers
)
# requrest処理をクローズする
res2.close
# res2をjsonファイルに整形
res2json = res2.json()
# 結果からListIDを取得する
ListID = res2json['value'][0]['id']
# 結果からSiteIDとListIDを表示する
print(SiteName + ' : SiteID : ' + SiteID)
print(SiteName + ' : ListID : ' + ListID)
return
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Teams Lists の SiteID と ListID を取得する')
args = parser.parse_args()
start = time.time()
# アクセストークンの取得
access_token = get_azure_access_token()
# SiteIDとListIDの取得
get_siteID_listID(access_token)
get_time = time.time() - start
print("")
print("取得時間:{0}".format(get_time) + " [sec]")
print("")
プログラムの実行
最初にヘルプを表示してみます。
$ python GetTeamsSiteIDListID.py -h
usage: GetTeamsSiteIDListID.py [-h]
Teams Lists の SiteID と ListID を取得する
optional arguments:
-h, --help show this help message and exit
では、「SiteGet_URL」でキーワード検索される Teams Lists の SiteID と ListID を取得してみます。
プログラム内の print文を参照に以下の結果を確認ください。
$ python GetTeamsSiteIDListID.py
https://graph.microsoft.com/v1.0/sites('hogehogecorp.sharepoint.com,4b4b4b4b-b5e3-4c53-a05b-9c9c9c9c9c9c,b7b7b7b7-2ade-4d1e-bba1-f3f3f3f3f3f3')/lists?$filter=displayName eq 'UList'
msteams_3b3b3b : SiteID : hogehogecorp.sharepoint.com,4b4b4b4b-b5e3-4c53-a05b-9c9c9c9c9c9c,b7b7b7b7-2ade-4d1e-bba1-f3f3f3f3f3f3
msteams_3b3b3b : ListID : a5a5a5a5-3d71-4f79-ab1d-9b9b9b9b9b9b
取得時間:4.309984922409058 [sec]
参考情報
以下の情報を参考にさせていただきました。感謝申し上げます。
Author And Source
この問題について(Python による Microsoft Graph API を利用し、Teams Lists の Site-ID と List-ID を取得してみました), 我々は、より多くの情報をここで見つけました https://qiita.com/turupon/items/5983111e09f2d99867a6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .