読者です 読者をやめる 読者になる 読者になる

sidewalkcafe blog

日々是好日

たった4行でTwitterのユーザー情報を取得する(PHP+TwitterOAuth)

書物

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);
?>

エラーが出た

Parse error: syntax error, unexpected '[' in xx行

'['(角括弧、スクエアブラケット)は使えませんだって・・・


色々調べて、どうやら連想配列で渡せば良いとわかったので以下のように修正

$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


[AD]

ドスパラが運営する新情報サイト【ものテク】毎日更新!