メシのタネ

Webプログラミング 備忘録

  • AWS移行でコケ中

    現在このWebサイトが稼働している、このサーバーのMySQLをマスターとし、AWS上のRDSをスレーブとして、データ移行をしようと思ったが、バイナリロギングの取得が上手くいかない。多分の手順VPSのDBでスレーブ用のユーザ作成バイナリロギングを行うスレーブ側RDSにマスターのDUM[...]

    続きを読む
  • AWS ソリューションアーキテクト アソシエイトに合格しました。

    実は、今日までIT無資格でした。ええ歳だし、そろそろなんか資格取っておくかーと考えだしたので、取って嬉しい資格を取ろうと思ってたところ、AWSの資格あったなーと思って、調べてみたら、みんな14日で受かる!とか言ってるので、じゃあというこで、試験日14日後とかにして、試験の予約入れたのが地獄の始まり[...]

    続きを読む
  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む

【WordPress】テーマにデフォルトでついてるTwitterウィジェットを少し拡張した話

wpppppppp

何を隠そう当ブログではWPZOOMっていうWebスタジオのテーマのMeetaって奴を使っております。何時もお世話になっております。

このWPZOOMのテーマはデザインがAwesomeなのはもちろん、テーマ用の管理画面があり、設定内容がある程度充実しております。そしてさらに、テーマ用のWidgetがあり、Twitterで呟いた内容を出せたり、最近の投稿のアイキャッチが出せるのでプラグインがなくても、僕みたいなのが運用するには十分だったりします。

が、が、ですね。
Twitterの呟きにプロフィール画像が出てこないんですよ。これは頂けないと思ったので、軽くコードを見てみました。

TwitterAPI

こういうツイートの内容取得する様なツールはTwitterAPIを使ってます。
APIっていうのはWebの場合、あるルールにそって、このデータくれと
データ持ってるアプリケーションにリクエストを投げると、
へいへいわかりましたと、データをくれるやつのことです。

TwitterAPI使う場合大体使うファイルがある

twitteroauth.phpっていう、PHP認証ライブラリを使ってる場合が多いので
ThemeのフォルダをGrepとかフォルダ内検索とかで検索して、探しましょう。
大体、twitteroauth.phpの入ってるtwitteroauthってフォルダの外に
twitter.phpみたいな制御用のphpファイルがあるはずです。

この方法で見つからない場合

認証用のライブラリを使ってないか別の言語で取得してる可能性があります。
その場合は、statuses/user_timelineなど、HTTPRequestパラメータを使って検索していくのが良いと思います。

リクエストを送ってる箇所を探す

制御用のファイルをでれーっと見てると

</p>
<p>$this-&gt;connection-&gt;get( 'statuses/user_timeline', $params );</p>
<p>

getってメソッドが見つかります。
ここでデータの取得をやっていて、$paramesに欲しいデータが書いてあります。

でもこの第一パラメータの’statuses/user_timeline’が
意味がわかんないので、このパラメータをぐぐります。

この第一パラメータはリクエストの種別だと僕は思うので、
便宜的にこの記事でリクエストって呼ぶ事にします。

よほどマニアックなリクエストじゃない限り、日本語の説明を誰かがしてくれてます。

で、今回の件はこのリクエストに対しての$paramsが

</p>
<p>          //before</p>
<p>               $params = array(<br />
                    'screen_name' =&gt; $username,<br />
                    'count' =&gt; $num,<br />
                    'trim_user' =&gt; true, //ユーザーの詳細情報が不要?<br />
                    'contributor_details' =&gt; false,<br />
                    'include_entities' =&gt; false<br />
               );</p>
<p>          //after</p>
<p>               $params = array(<br />
                    'screen_name' =&gt; $username,<br />
                    'count' =&gt; $num,<br />
                    'trim_user' =&gt; false, //ユーザーの詳細情報が不要? <br />
                    'contributor_details' =&gt; false,<br />
                    'include_entities' =&gt; false<br />
               );<br />

今回のケースだとユーザーの詳細情報が不要?
って質問に対してtrueだったから詳細情報が取得せず、
画像を表示してなかったのです。

リクエストを出力している箇所

リクエストを受ける変数をループさせてメッセージを出力してる箇所を探します。
だいたいおんなじファイルの中にあると思います。

さっきの

<br />
$mes = $this-&gt;connection-&gt;get( 'statuses/user_timeline', $params );<br />

これを受けてる変数を仮に$mesとしましたが、
この$mesをforeachしてるとこを探します。

そうすると、1行1行オブジェクトデータが出力されてくるので
PHPとAPIのルールに沿ってプロフィールのイメージがある場所へ
アクセスして、データを受け取ります。

<br />
$img = $mes-&gt;user-&gt;profile_image_url<br />

こんな感じです。
後はこの$imgをループの好きなとこで吐き出せばOKです。

まとめ

・TwitterAPI使ってる場合、大体twitteroauth.phpがあるのでまずそのファイルを検索する
・twitteroauth.phpが入ってるフォルダの外側にあるtwitterapi制御用のPHPを探す
・TwitterAPIにリクエストを送ってる箇所を探す
・どんなリクエストしてるのか調べる
・リクエストのパラメータを自分好みに設定する(今回はプロフの画像を取得できるように)
・受け取ったデータから、欲しいデータを受け取って出力する

こんな感じで出来ると思います。
凄いしょぼいですけど、TwitterAPIの記事もかつて書いたので
もし気になったら見てみてくださいー。

関連記事

コメントをお待ちしております