目的
Microsoft GraphおよびOffice 365 APIと対話するためのシンプルなPythonライブラリ
python-o365 A simple python library to interact with Microsoft Graph and Office 365 API.
を使ってメール一覧を取得してみます。
実践
README.mdそのままです。
インストール
pip install O365
アプリケーションの登録
-
Azure App Registrationsへアクセス
-
+新規登録
をクリック- 名前
mail_receive
任意で入力 -
任意の組織のディレクトリ内のアカウントと、個人用の Microsoft アカウント (Skype、Xbox、Outlook.com など)
を選択 - リダイレクト URI ドロップダウンリスト「Web」のまま
-
https://login.microsoftonline.com/common/oauth2/nativeclient
を入力 -
登録
をクリック(画面遷移が失敗することもあるけれど無視) -
アプリの登録(プレビュー)
をクリックしてトップに戻る
- 名前
- 表示名
mail_receive
をクリック-
アプリケーション (クライアント) ID
をコピーしてどこかにメモ
-
-
証明書とシークレット
をクリック-
+新しいクライアントシークレット
をクリック - 説明を
never
(任意)と書いて有効期限なし
を選択して追加
をクリック - 作った
クライアントシークレット
をコピーしてどこかにメモ(ここのコピー忘れたら作り直し)
-
-
APIのアクセス許可
をクリック-
+アクセス許可の追加
をクリック-
Microsoft Graph
をクリック-
委任されたアクセス許可
をクリック -
Mail.ReadWrite
,Mail.Send
,User.Read
,offline_access
にチェックを入れてアクセス許可の追加
をクリック
-
-
-
-
アプリケーションの認証
myauth.py
from O365 import Account
credentials = ('<メモした上記アプリケーション(クライアント)ID>', '<メモしたクライアントシークレット>')
account = Account(credentials)
account.authenticate(scopes=['basic', 'message_all'])
$ python3.6 -m venv venv
$ source venv/bin/activate
(venv) $ pip install O365
(venv) $ python myauth.py
Visit the following url to give consent:
<URLが出てくるのでここにブラウザでアクセス>
Paste the authenticated url here:
- アカウントをクリック、
承諾
をクリック - 空っぽのページが表示されるので、ブラウザのアドレスバーに表示されているURLをコピー
-
Paste the authenticated url here:
のところにURLを貼り付けてEnter
Paste the authenticated url here:<ブラウザのアドレスバーに表示されているURL貼り付け>
-
Authentication Flow Completed. Oauth Access Token Stored. You can now use the API.
と表示されれば成功
アプリケーション実行
app.py
from O365 import Account
credentials = ('<メモした上記アプリケーション(クライアント)ID>', '<メモしたクライアントシークレット>')
account = Account(credentials)
mailbox = account.mailbox()
inbox = mailbox.inbox_folder()
for message in inbox.get_messages(limit=5):
print(message)
$ python app.pl
Subject: 適当なメール1
Subject: 適当なメール2
Subject: 適当なメール3
Subject: 適当なメール4
Subject: 適当なメール5
以上 \e