■■■この記事は古いです。最下部に追記あり
オリジナルログインに加えて、
twitter OAuth認証のログインも付けることができました。
ネットで調べてもいろいろありますが、
下記の本がナイスです。
取得できるデータや、何ができるかも網羅してある!
Twitter API ポケットリファレンス (POCKET REFERENCE)
私は単に、わざわざ個人情報入力して新規登録したくない人への間口として
twitter認証を設置しようと思ったのですが
せっかくtwitterと連携されているなら
やれることはいろいろありますね。
ただ、OAuth接続のところは別のサンプルコードを参照しました。
OAuth認証を自作する!(php+twitter)
感覚的にソースの内容が分かりやすかったので・・
接続できたときは相当嬉しかったです^^
なぜか一番引っかかったのは接続した後。
OAuth認証についてはいろいろ情報があるのですが
認証後に、twitterアカウント情報を引っぱってきたりというのは
具体的にPHPでどうやるんだと。
めぐりめぐって上記の本に戻って来ました。
require “./tmhOAuth.php”;←やっぱりライブラリ的なの必要。。
$twitter = new tmhOAuth(
// 実際に取得したコンシューマキー、アクセストークンを記述
array(“consumer_key” => コンシューマキー,
“consumer_secret” => コンシューマシークレット,
“user_token” => アクセストークン,
“user_secret” => アクセストークンシークレット;
$twitter->request(“GET”, $twitter->url(“1/account/verify_credentials”));
// twitterユーザ情報を取得
$myself = json_decode($twitter->response[“response”]);
$twiscreenName = $myself->{“screen_name”};
$twiname = $myself->{“name”};
$twiurl = $myself->{“url”};
$twiid = $myself->{“id_str”};
$twilocation = $myself->{“location”};
$twidescription = $myself->{“description”};
これでそれぞれ変数に、ユーザーの情報が入った!
そしてtwitter経由のユーザーもユーザーマスタに追加したい・・ってとこで、疑問が。
オリジナルの新規登録ユーザーと、
twitter認証からのユーザーでは、
DBのユーザーテーブルを分けたほうがいいのか??
実際、Twitter経由の人はパスワードとかメアドとか無いわけで。
でもオリジナルで登録したユーザーが、後で
twitter連携を追加したりとかしたかったり。
これも答えが落ちているわけではなく・・
やりたい目的に合わせた設計になるということでしょうかね^^;
絵を書きながらしばらく考えましたが
試行錯誤して結局一緒のテーブルを作り出しました。
アクセストークンとかもDBやファイルなどの永続ストアに保管するのが通常らしいです。
次のログインが楽になったりするので。
但し、せっかく取得したアクセストークンも、
ユーザーが「許可した連携アプリの一覧」から
「許可を取り消す」を押すとリセットされ、
再度連携許可してもあらたなアクセストークンになるようです。
ログインの度に、不変のid_strをキーに、
twitterから新たな情報を持ってきて
変わるものはDB更新していく形がよいのかな。
ちなみにtwitterのアカウントデータには
id と id_str があって、どっち使おう?同じ?と思ったけど
下記のページで解決しました。
Twitterのstatus IDを保存しているサービスが直ちに確認すべき2つのポイント
Twitterのstatus IDが64bitになったことによる問題と対策
あとはtwitter経由のユーザーと
オリジナルメンバーで細かなメニューの違いを実装しないと。
■■■!!!2013年04月追記!!!
上記で完成したものが接続できなくなっていました;;
いろいろ調べたところ、以下ページを参照して作り直しました。
Twitter OAuth + PHP でログイン処理の実装
簡単にできた!!
よかった。
コメント