OneDriveからのファイルダウンロード
Pythonを使用してOneDriveからファイルをダウンロードするための手順を以下に示します。
Azure アプリの登録
まず、OneDriveへ自動アクセスするためにAzure アプリを登録します。
- Azure Portalから操作を行います。
- リダイレクトURLには
http://localhost:4200/
を入力します。 - 概要を選択し、クライアントIDを取得します。
- 証明書とシークレットを選択し、新しいクライアントシークレットを選択します。
- 任意の有効期限を指定します。
- クライアントシークレットを取得します。
OneDriveへのログインと認証コードの取得
次に、OneDriveへログインし、認証コードを取得します。
- トークン取得用URLを作成し、ブラウザへ貼り付けます。
- サインインが完了すると認証コードが発行されるので取得します。
認証コードからアクセストークンを取得
認証コードからアクセストークンを取得します。
import urllib.parse
import urllib.request
import json
def get_onedrive_token(code: str):
apl_client_id= "bbbbbbbbbbbbbbbbb"
client_secret = "ccccccccccccccccccc"
redirect_url = "http://localhost:4200/"
url = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
method = "POST"
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
params = {
"client_id": apl_client_id,
"redirect_uri": redirect_url,
"client_secret": client_secret,
"code": code,
"grant_type": "authorization_code"
}
encoded_param = urllib.parse.urlencode(params).encode()
request = urllib.request.Request(url, data=encoded_param, method=method, headers=headers)
with urllib.request.urlopen(request) as res:
body = res.read()
dat = json.loads(body)
print(dat)
if __name__ == '__main__':
code = "aaaaaaaaaaaaaaaaaaaaaaaa"
get_onedrive_token(code)
ファイルのダウンロード
最後に、アクセストークンを使用してOneDriveからファイルをダウンロードします。
import urllib.parse
import urllib.request
import json
def download_file(access_token: str, item_id:str):
url = "https://graph.microsoft.com/v1.0/me/drive/items/" + urllib.parse.quote(item_id)
method = "GET"
headers = {
'Authorization': 'bearer ' + access_token
}
request = urllib.request.Request(url, method=method, headers=headers)
with urllib.request.urlopen(request) as res:
body = res.read()
dat = json.loads(body)
item_name = dat["name"]
download_url = dat["@microsoft.graph.downloadUrl"]
print("download_url:" + download_url)
save_name = "c:/tmp/" + item_name
urllib.request.urlretrieve(download_url, save_name)
if __name__ == '__main__':
access_token = "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
item_id = "bbbbbbbbbbbbbbbbbbbbbbb"
download_file(access_token,item_id)
以上がPythonを使用してOneDriveからファイルをダウンロードする手順です。この情報が役立つことを願っています。