一通り連携をしできたので情報として必要だったことをことをまとめておきます
PHPのモジュールとしてはopenid/php-openid · GitHubがメジャーそう
Zend Frameworkにも標準搭載されてるので使えるのかな??((他のフレームワークにも用意されてることが多いみたい))
OpenIDは規格が厳密っぽいのですべて同じ方式でとってこれる((厳密に言えば1系と2系があるみたいだけど1系のはてなもとってこれたので気にしない))
mixi
仕様 << mixi Developer Center (ミクシィ デベロッパーセンター)
取れるのはニックネームだけみたい
Gmail OpenID のエンドポイント URL – 京の路
emailとかを取るにはAttribute eXchangeを使う
この辺が取れるっぽい
~~~
“country”
“email”
“firstname”
“language”
“lastname”
~~~
リクエスト部分
~~~
global $ax_attributes;
$ax_request = new Auth_OpenID_AX_FetchRequest();
while (list($key, $val) = each($ax_attributes)) {
$attribute[] = Auth_OpenID_AX_AttrInfo::make($key, 1, true, $val);
}
foreach($attribute as $attr){
$ax_request->add($attr);
}
$auth_request->addExtension($ax_request);
~~~
レスポンス部分
~~~
$ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($response);
if ($ax_resp) {
global $ax_attributes;
while (list($key, $val) = each($ax_attributes)) {
$ax_data = $ax_resp->get($key);
if(!is_object($ax_data)) {
$axreg[$val] = $ax_data;
$success .= “
“;
}
}
}
~~~
NTTID
goo,docomo,ocnをまとめた感じ。
AX非対応みたい
ニックネームすら返ってこない((gooでしか試してないけど・・・))
エンドポイント https://login.nttid.jp/openid
OpenIDとは別規格??
今回は連携しなかったので忘れる
これだけOauthという別規格。
作法がちょっと違うけど、情報は多いし簡単。
APIの仕様は結構変わるのでそこだけ心配
モジュールはこれが使い慣れてるのでこれを使う((twitteroauthのなかのjson_decodeの第二引数が入ってないのが不便なので書き換えちゃうといいかもしれません))
abraham/twitteroauth · GitHub
Zendフレー(ry
php-curlが必要
ない場合はモジュールの書き換えが必要
入れられる場合は入れましょう
~~~
yum install php-curl
~~~
ソースの場合はごにょごにょする
下準備
http://twitter.com/oauth_clients でアプリケーションを登録((twitterのアカウントが必要です))
consumer_key, consumer_key_secret を取得
ログイン時に引っ張って来たいデータはこのAPI
GET account/verify_credentials | Twitter Developers
~~~
$verify_credentials = $connection->get(‘account/verify_credentials’);
~~~
コメント