追記:この情報だいぶ古いので気をつけてください。
こんばんは、ritouです。
タイトルの通り、最近発表されたみんな大好きGoogle+のAPIではAuthorization部分にOAuth 2.0が使われています。
Getting Started on the Google+ API - Google+ Developers Blog
さっそく出てきた動かしてみた系の記事はAPI keyを使う方法が載っています。まぁそれはそれでいいとして。
OAuth 2.0の仕様知ってる人は必要なScopeとEndpointの仕様が分かればもうサンプル作って動かせると思うので、その部分を紹介します。
そういえば最近、"OAuth認証"やら"ユーザー認証にOAuth"って言葉をよく聞きますがOAuthのどこにそんな機能が(ry
0. OAuth 2.0でGoogle+ API使うための準備
この辺から。たぶん他の人たちも紹介しているので省略します。
Google Cloud Platform
1. Authorizing requests with OAuth 2.0
仕様はこちらです。
Authorizing API requests | Google+ Platform for Web | Google Developers
AuthZ URLのサンプルはこちら。
https://accounts.google.com/o/oauth2/auth?
client_id=26633205769-n4f7hl7sgeeanj7fl71lusci7ml0b50d.apps.googleusercontent.com&
redirect_uri=http%3A%2F%2Fwww8322u.sakura.ne.jp%2FGoogleOAuth2Sample%2Fserver-side.php&
response_type=code&
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.me
今回のポイントは一点のみ、scopeパラメータです。
こいつを指定しましょう。
2. Authorization CodeからAccess Token取得
今まで何度も説明しているのでToken Endpointのレスポンスだけ。
{
"access_token":"ya29.AHES6ZQ1P5U3YU60jxn6z-ljtZ67B_MHGkOvh4CaieYOA0DoU2hoge",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token":"1/CNpY-88NAKGRyqrbNnGAZ5Wo5siOXcIAFgiYEPOhoge"
}
あとはAPIにアクセスするだけです。
- People: get | Google+ Platform for Web | Google Developers
- Activities: list | Google+ Platform for Web | Google Developers
- Activities: get | Google+ Platform for Web | Google Developers
OAuth 2.0の場合はkeyパラメータはいりません。
OAuth 2.0 bearer tokenの仕様に沿ってAuthorization HeaderやGETのクエリにaccess_tokenの値を指定しましょう。
実際に動いてるモノ
上記のリクエスト/レスポンスは以下のURLで体験/確認できます。
http://www8322u.sakura.ne.jp/GoogleOAuth2Sample/server-side.phpこれもう消した
自分でも動かしたいけど1からはちょっとな人向け
Googleさんが用意しているライブラリを使えばいいじゃないすか
http://developers.google.com/+/downloads
APIが少ないなどの意見はあるものの、最初なのでこんなもんだと思います。
People APIはPortable Contacts、Activityの方はActivityStrea.msという標準化されている仕様に沿って実装されているのは素晴らしいですね。Googleのライブラリ使わずとも、既にあるライブラリを使っても簡単に動かせる(かも)ということです。
ではまた。