p. 61 書籍で使っているFirebugの代わりに、FirefoxでCtrl+Shift+Q
として起動する「ネットワーク」を使ってください。図5.2のような情報は、最初のゲットメソッドを選択したときの「ヘッダ」タブで、図5.3のような情報は「パラメータ」タブで見られます。
Ubuntu 12.04と14.04では、次のコマンドでPEAR HTTP/Requestをインストールします。Ubuntu 16.04ではPEAR HTTP/Requestを使えないので、gettext2.phpの方法を使ってください。
sudo apt-get -y install php-http-request
sudo service apache2 restart
p. 71
(Ubuntu 12.04, 14.04) PEAR HTTP/Requestは非推奨になりましたが、それに関する警告等がうるさいときは、以下のコードをrequire_once('HTTP/Request.php');
の前に追加してください。(ここで公開しているファイルでは追加済みです。)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
p. 72 TwitterのAPIが変更され、本書のコードは動かなくなりました。
p. 73 TwitterのAPIが変更され、本書のコードは動かなくなりました。しかし、次のようにすれば、JSONの処理を体験できます。
まず、プロジェクトphpwebの中に、OAuthのためのライブラリを用意します。
sudo apt-get -y install git php5-curl
sudo service apache2 restart
cd /var/www/html/phpweb
git clone https://github.com/abraham/twitteroauth.git
home_timeline.json.php.template
をもとにhome_timeline.json.php
を作り、ファイル中に上記4項目を記述する。publictimeline.html
のhttps://api.twitter.com/1/statuses/public_timeline.json
をhttp://localhost/phpweb/home_timeline.json.php
に置き換える。(ここで配布しているファイルは置き換え済み)publictimeline.php
についても上と同じ修正を施す。publictimeline.php
の代わりにhome_timeline.php
を使う。次のようにして、コンソール上でJSONを整形して表示できます。(q
で終了)
sudo apt-get -y install jq
curl http://localhost/phpweb/home_timeline.json.php | jq .
p. 73 脚註13 JavaにはJavaScriptのエンジンが含まれているため、それを使ってJSONを処理できます。上述のhttp://localhost/phpweb/home_timeline.json.php が動く環境で、HomeTimeline.java
を試してください。
HomeTimeline.java
が冗長だと感じる場合は、HomeTimeline2.java
を試してください。Apache HTTP ComponentsのFluent APIを使ってHTTP通信を、Java 8のラムダ式を使ってループ処理を簡略化したものです。Maven Javaアプリケーション・プロジェクトを作り、以下のような要素をpom.xml
のproject
要素に追加することで実行できます。
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies>
p. 74 脚註14 PHP 5.4以降では、以下のようにすることでintの範囲(32ビット版と64ビット版で異なる)を超える整数を文字列として取り出せます。
$json = json_decode($http_request->getREsponseBody(), true, 512, JSON_BIGINT_AS_STRING);