Google+ API を早速さわってみる

Google+APIが一部公開されよ!
「Google+」の一部APIがリリース、公開情報の参照に限定


というわけで、細かいことはさておきとにかくAPI叩いてみました。

手順

Google+APIはOAuth2.0なので署名がどうとかいう面倒くさい話はないですが
APIをコールするのには幾つか手順が必要です。

  1. アプリ登録
  2. アプリ情報を使って認証コードを取得
  3. コードとアクセストークンと交換
  4. アクセストークンを使ってAPIをコール
1. アプリ登録

Googleにアプリ登録をします。
アプリ登録をすると、認証やらに使ういろんな情報が発行されます。

https://code.google.com/intl/ja/apis/accounts/docs/OAuth2.html#Registering
登録の方法自体は上記URL参照

今回はとりあえず版なので、サーバー設定するのめんどいし
installed applicationで登録しました。

2. 認証コード取得
https://accounts.google.com/o/oauth2/auth?
client_id={client_id}&redirect_uri={redirect_uri}&
scope=https://www.googleapis.com/auth/plus.me&response_type=code

上記URLにユーザをアクセスさせて、ユーザから認可をもらいます。
(実際には改行はありません、もちろん)

それぞれ

client_id
アプリ登録時に発行されたid
redirect_uri
アプリ登録時に発行されたuri

を設定してください。
アプリを認可すると認証コードが出力されるので、どこかにコピーしておいてください。

3. アクセストークンの取得

さっき取得した認証コードとアクセストークンを交換します。
APIにアクセスするには妥当なアクセストークンが必要で
今までのたらい回しの旅は全てこのアクセストークンを取得するためのものだったのです。

https://accounts.google.com/o/oauth2/token

上記のURLにPOSTで以下のパラメータをリクエストします。
ヘッダにContent-Type: application/x-www-form-urlencodedもつけておいてください

リクエストヘッダ
Content-Type: application/x-www-form-urlencoded
client_id
同上
client_secret
アプリ登録時に発行された秘密の文字列
code
前段で取得した認証コード
redirect_uri
同上
grant_type
"authorization_code"を指定するらしい

そうすると、json形式でようやくアクセストークンが取得できます。

4. APIコール

いよいよAPIをコールします。
試しにユーザのプロフィールを取得してみます。

People APIのリクエストURLは以下になります

GET https://www.googleapis.com/plus/v1/people/{user_id}?key={api_key}
リクエストヘッダ
Authorization: Bearer {access_token}
api_key
アプリ登録時、Google+のサービスをOnにした時に発行されたApi Key
user_id
Google+のプロフィールページのURLにあるやたら長い数字の部分

ただし、user_id "me" は予約されているパラメータで
これを指定するとリクエストにアクセストークンが必須となります。
この場合に取得できるプロフィールは、認可を行ったユーザ自身のものとなります。


これで、うまくいけばjson形式でユーザのプロフィールが取得できているはずです。



他にも、取得するフィールドを指定できたり、いろいろある模様。
Activity(ユーザのストリーム)を取得するAPIもあります。

詳しくはAPIドキュメント見てください
Google+ API - Google+ Platform — Google Developers