tohokuaikiのチラシの裏

技術的ネタとか。

JanRain OpenID Libraryでgoogle OpenIDからGmailのデータをいただく。

examples/consumer/try_auth.php
のコードにはなかったAXでやってみる。GoogleはAttribute eXchangeでgmailが得られるらしいので。

ちなみに、JanRainは、define('Auth_OpenID_VERSION', '2.1.2'); です。

try_auth.php

23行目らへんから

<?php
           $auth_request = $consumer->begin($openid);
+           require_once "Auth/OpenID/AX.php";
+           $ax_request = new Auth_OpenID_AX_FetchRequest();
+           $ax_request->add(Auth_OpenID_AX_AttrInfo::make(
+               'http://axschema.org/contact/email', 
+               1,
+               true,
+               'email'
+                ));
+           $auth_request->addExtension($ax_request);


って感じ。

finish_auth.php

59行目らへんから(SUCCESSが確認できた26行目以降ならいいんだけど)

<?php
+        $ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($response);
+        var_dump($ax_resp->getExtensionArgs()); 
+        echo $ax_resp->get('http://axschema.org/contact/email') ;
	$pape_resp = Auth_OpenID_PAPE_Response::fromSuccessResponse($response);

って感じ。配列でvar_dumpされる。
aliasを設定したけど、どうやって取り出すかよくわからん。ww

参考にしたページ:
http://blog.poqu.org/2008/11/12/rails-google-openid/