TwitterOAuthでログイン機能を実装したのだけれど
ユーザー情報取得で手間取ったのでメモ
<参考>
PHP - TwitterOAuthの正しい使い方 - Qiita
リンク先にあるように
$TwitterOAuth->OAuthRequest("http://api.twitter.com/1.1/statuses/update.json","POST",array("status"=>$tweet));
という記載は長いしややこしいので以下の通りに直したのだけれど
<?php require_once('path/to/twitteroauth.php'); // TwitterOAuth $TwitterOAuth = new TwitterOAuth('コンシューマキー', 'コンシューマシークレット', 'アクセストークン', 'アクセスシークレット'); $userinfo = $TwitterOAuth->get('users/show', ['id'=> 'ユーザid(数字)']); // ユーザidでユーザ情報を取得 var_dump($userinfo); ?>
エラーが出た
'['(角括弧、スクエアブラケット)は使えませんだって・・・
色々調べて、どうやら連想配列で渡せば良いとわかったので以下のように修正
$userinfo = $TwitterOAuth->get('users/show', array('id'=> 'ユーザid(数字)'));
無事動きましたとさ
その他
TwitterOAuthから取って来たデータはオブジェクト型になってるので、そのまま連想配列で取り出す事ができない。
echo($userinfo['name']);
とすると
Fatal error: Cannot use object of type stdClass as array
怒られた^^;
連想配列に変換する方法もあるけど、そのまま抜き出す事も可能
echo($userinfo->name);
これでOK
え、基本だって?
知らなかった^^;
多重になってる所は連続して記載すればいける
echo($userinfo->entities->url->urls[0]->expanded_url);
なんで途中で配列になってるの?w