かぶめもでTwitterでのログインができなくなって調べてみたら、利用していたREST APIのサポートが終了したとのことでした。
エラーメッセージを訳すと「ツイッターREST API v1はもう死んでいます」って感じでしょうか。
{ "errors": [ { "message": "The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.", "code": 68 } ] }
ライブラリーの切り替え
もともとはci_opauthというライブラリーを使っていましたが、Codeigniter-TwitterOAuthというライブラリーに切り替えました。
以前 : https://github.com/destinomultimedia/ci_opauth
現在 : https://github.com/MunGell/Codeigniter-TwitterOAuth
config/twitter.php
まずconfigのファイルを設定します。
Twitter DevelopersのMy applicationsからアプリを開いて下記の内容を設定します。
- Consumer key
- Consumer secret
- Access token
- Access token secret
controllers/twitter.php
次にコントローラーですが、こちらは初めから動くものが用意されています。twitter/authが認証機能で、認証が成功するとセッションに twitter_user_id や twitter_screen_name が格納されます。この情報を元にログイン状態が判断できます。
twitter/postはツイートする機能のようですが、まだ試せていません。
REST API v1.1
REST API v1.1の使い方はこちらに情報がまとまっています。
https://dev.twitter.com/docs/api/1.1
名称(name)の取得は下記のリンク先に情報があります。どう取得するのかこの情報にたどりつくまで時間がかかりました。
https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials
取得の仕方はこんな感じです。分かってしまえば簡単ですね。
$content = $this->connection->get('account/verify_credentials'); $name = $content->name;
コメント