OneDriveをPythonコード上から使えるようにするには、以下の流れらしい。
② ダミーのアプリを登録し、「Client ID」「Client Secret」を登録する
③ マイクロソフトの認証サイト(?)とやらで②を入力して、返ってくる値から「code」を得る
ーーー
https://account.live.com/developers/applications/
接続すると、マイクロソフトのアカウント名とパスワードを入力しログインさせられる。
ーーー
② ダミーのアプリを登録し、「Client ID」「Client Secret」を登録する
ダミーアプリ名は「msapp01」としてみた。「I accept」を押すと、ダミーアプリが登録されて、アプリの管理画面に移る。
アプリ管理画面。左の「Basic Information」から Language を日本にした。
左の「App Setting」を見ると、目的の「Client ID」「Client secret」が記載されているので、メモしておく。
ーーー
③ マイクロソフトの認証サイト(?)とやらで②を入力して、返ってくる値から「code」を得る
以下の文字列の赤色の部分を②の情報に書き換える。
https://login.live.com/oauth20_authorize.srf?display=touch&locale=en&client_id=xxxxxxxxxxxxxxxx&response_type=code&scope=wl.skydrive+wl.skydrive_update+wl.offline_access
書き換えた文字列を、ブラウザのアドレス欄に入力すると…
こんな画面が出るので「Yes」を押す。
画面が遷移し「ページを開けませんでした」となるが、このときにアドレス欄に出ている文字列をコピーして保存しておく。
文字列はこんな感じ。このうちの青色の部分(code)が、Python開発で必要になる
http://12e34fb5-b607-890f-123d-bd4dd56cb7d8.apps.dev.live.com/?code=M1234a5f6-78b9-f0ab-bb1f-2345e6e7e8cb
ーーー
PythonでOneDriveに接続する。onedrivesdk が必要らしい。
GitHub - OneDrive/onedrive-sdk-python: OneDrive SDK for Python! https://dev.onedrive.com
サイトの指示通りpip でインストールする。
あれ。既にインストールしてあったようで、「already satisfied」と言われてしまった。
早速コーディングする。上記サイトにある Sample に Authentication そのままを Pythonで書いてみる。
「Client ID」と「Client Secret」は上記②で取得したものに変える。
$ vim test_Authentication.py
実行してみる。
$ ./test_Authentication
ダメだ。エラーになる。Python2.7だからか?
リダイレクトが悪いかもしれない。このへん調べる。
http://bonk.red/articles/OneDrive/index.html
うーん、よく分からない。OAuth2だと、Client ID、Client Secret、Redirect URI が必要なことは分かった。それが、Onedriveだけでなく、Amazon Cloud Driveであれ、Google Driveであれ、RESTfulなサービスのの開発に必要ぽいところまでは把握した。
問題は、Redirect URI だ。これが、localhost はダメぽい。「Redirect URI に自宅サーバが使えるか」「DDNSにリダイレクトしていいのか」
このへんだ分からないの。
http://d.hatena.ne.jp/yk5656/20140608/1404012739