google web サービスでユーザ情報の取得

google web サービスでユーザ情報の取得

#12 ユーザー情報を取得しよう
http://dotinstall.com/lessons/google_connect_php_v2/9912
を参考に
アクセストークンをつかってユーザ情報を取得

これについては
https://developers.google.com/accounts/docs/OAuth2WebServer?hl=ja#callinganapi

Calling a Google API
の部分を参考にする

これによれば
GETで
https://www.googleapis.com/oauth2/v1/userinfo?access_token=
にアクセスすることになる

このURL後ろにアクセストークンをつける

$url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token='.$json->access_token;

でURLを $url へ格納する

$json に access_token の項目が格納されているので

$json->access_token

としている

このようなAPIの引っ張り方は、他のweb api
で使うので
覚えておくと便利

これにアクセスして情報を得たいので

file_get_contents($url)

としている

file_get_contents() は
ファイルの内容をすべて文字列に読み込む関数
http://php.net/manual/ja/function.file-get-contents.php
のリファレンスを参考にするとわかりやすい

今回は $url で データを読み込むファイルを指定している
リファレンスだと filename に該当する部分

しかし、返ってくる値は json なので
json_decode() をつかってデコードする必要がある

json_decode() については
http://php.net/manual/ja/function.json-decode.php
のリファレンスを参考にする

今回は

json_decode(file_get_contents($url));

となる

このJSONデコードされたユーザ情報を変数に格納するので

$me = json_decode(file_get_contents($url));

とする

中身を確認したいので
var_dump() を使って確認

var_dump($me);

ただし、セッションの関係もあり、そのままリロードするとうまくいかないため
一度 index.php に戻って
再度 google の認証してから試すようにする

そのままだと見にくいので
右クリックして
ページのソースを表示とすれば
改行されてみやすくなる

情報取得が確認できたら
var_dump()
はコメントアウトして

DBへ情報を格納していく

$dbh = connectDb();

次に、SQLでユーザの存在を調べ
いないのならDBへ追加する

$sql ="select * from users where google_user_id = id limit 1";

このSQLを実行するため

$stmt = $dbh=>prepare($sql);
$stmt=>execute(array(":id"=>$me->id));
$user = $stmt=>fetch();

if でユーザの存在がなかったときにDB追加する判定は

if(!$user){
}

となる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です