min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash コマンドでOneDriveに接続/OAuth2.0認証のcodeをgetCode.phpで取得する

 

OAuth2.0の仕組みがわかってきた。OneDriveAPIもAmazonCloudDriveAPIもGoogleDriveAPIも、これが分かればなんてこと無い。

このサイトが分かりやすかった。

gihyo.jp

f:id:min117:20160221232006j:plain

上図でいうところの、認可コード をまずは取得する必要がある。そのためには、図にある「クライアント」にあたるWEBサーバが必要だ。それには自宅サーバを使う。自宅サーバから①認可・認証画面の表示要求(getCode.php) をマイクロソフトの認可サーバに投げて、②ブラウザでマイクロソフトの認証IDとアカウントを入力すると、認可サーバから認可コード(code)が返ってくる。まずはここまでを実装し、codeの取得を目指す。

ーーー

GoogleのOAuth2.0で全く同じことをしている解説があった。

Google OAuth + PHP でログイン処理の実装

これを参考に作る。

ーーー

getCode.php

f:id:min117:20160221234244p:plain

implode(' ', $scope) のように、implode()の第1引数に半角を指定すると、配列をつなぐときには半角プラス文字 + にして繋いでくれるようだ。

f:id:min117:20160222000206p:plain

ーーー

 早速実行してみる。自宅サーバに置いた getCode.php を叩くと…

f:id:min117:20160221235707p:plain

同じ場所にリダイレクトされるから、一見何も変わっていないように見えるが、アドレス欄を見ると code が返ってきている。

f:id:min117:20160221235753p:plain

これで一段落。次はこの code を使って access_token を取得する。

 

参考サイト

PHPでGoogleのOAuthを試してみる - yk5656 diary