twitter API

PHPtwitter API 環境を導入する。


PS C:\Users\kage> pear install Services_Twitter
Failed to download pear/Services_Twitter within preferred state "stable", latest release is version 0.6.3, stability "beta", use "channel://pear.php.net/Services_Twitter-0.6.3" to install
install failed
ん?安定版ではないのか。
まぁ実験なのでいいや。

PS C:\Users\kage> pear install channel://pear.php.net/Services_Twitter-0.6.3
Failed to download pear/HTTP_Request2 within preferred state "stable", latest release is version 2.0.0beta1,stability "
beta", use "channel://pear.php.net/HTTP_Request2-2.0.0beta1" to install
Did not download optional dependencies: pear/HTTP_OAuth, use --alldeps to download automatically
pear/Services_Twitter requires package "pear/HTTP_Request2"
pear/Services_Twitter can optionally use package "pear/HTTP_OAuth" (version >= 0.1.7)
No valid packages found
install failed
たくさん必要なんだな。
しかも、βか。
まぁ、いいや。どんどん入れてやれ。

PS C:\Users\kage> pear install --alldeps channel://pear.php.net/Services_Twitter-0.6.3 channel://pear.php.net/HTTP_Request2-2.0.0beta1 channel://pear.php.net/HTTP_OAuth-0.2.2
Failed to download pear/Net_URL2 within preferred state "stable", latest release is version 0.3.1, stability "beta", use "channel://pear.php.net/Net_URL2-0.3.1" to install
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
pear/HTTP_Request2 requires package "pear/Net_URL2" (version >= 0.3.0)
pear/HTTP_Request2 can optionally use PHP extension "fileinfo"
pear/Services_Twitter requires package "pear/HTTP_Request2"
pear/HTTP_OAuth requires package "pear/HTTP_Request2" (version >= 0.5.1)
pear/HTTP_OAuth can optionally use PHP extension "pecl_http" (version >= 1.6.0)
pear/Log can optionally use PHP extension "sqlite"
downloading Log-1.12.5.tgz ...
Starting to download Log-1.12.5.tgz (46,311 bytes)
.............done: 46,311 bytes
downloading DB-1.7.13.tgz ...
Starting to download DB-1.7.13.tgz (132,246 bytes)
...done: 132,246 bytes
downloading MDB2-2.4.1.tgz ...
Starting to download MDB2-2.4.1.tgz (119,790 bytes)
...done: 119,790 bytes
downloading Mail-1.2.0.tgz ...
Starting to download Mail-1.2.0.tgz (23,214 bytes)
...done: 23,214 bytes
downloading Net_SMTP-1.5.1.tgz ...
Starting to download Net_SMTP-1.5.1.tgz (12,522 bytes)
...done: 12,522 bytes
downloading Auth_SASL-1.0.4.tgz ...
Starting to download Auth_SASL-1.0.4.tgz (5,795 bytes)
...done: 5,795 bytes
install ok: channel://pear.php.net/Log-1.12.5
install ok: channel://pear.php.net/DB-1.7.13
install ok: channel://pear.php.net/MDB2-2.4.1
install ok: channel://pear.php.net/Mail-1.2.0
install ok: channel://pear.php.net/Net_SMTP-1.5.1
install ok: channel://pear.php.net/Auth_SASL-1.0.4
MDB2: Optional feature fbsql available (Frontbase SQL driver for MDB2)
MDB2: Optional feature ibase available (Interbase/Firebird driver for MDB2)
MDB2: Optional feature mysql available (MySQL driver for MDB2)
MDB2: Optional feature mysqli available (MySQLi driver for MDB2)
MDB2: Optional feature mssql available (MS SQL Server driver for MDB2)
MDB2: Optional feature oci8 available (Oracle driver for MDB2)
MDB2: Optional feature pgsql available (PostgreSQL driver for MDB2)
MDB2: Optional feature querysim available (Querysim driver for MDB2)
MDB2: Optional feature sqlite available (SQLite2 driver for MDB2)
MDB2: To install optional features use "pear install pear/MDB2#featurename"
ふむふむ
pear/Net_URL2 にアップデートされたのと、
pear/DB が無くなり pear/MDB2 になって、
pear/HTTP_Request2 が pear/Net_URL2 を必要としていて、PHP extension "fileinfo" はオプションあったらいいのと、
pear/Services_Twitterpear/HTTP_Request2 を必要としていて、
pear/HTTP_OAuth が pear/HTTP_Request2 を必要としていて、PHP extension "pecl_http" はオプションであったらいいのと、
pear/Log が PHP extension "sqlite" をオプションであったらいいのか。
さらに MDB2 を使うためには pear install pear/MDB2#featurename とすればいいだけだって。

かんたん・・・か。
まず、HTTP_Request2 から、

PS D:\php> pear install pear/HTTP_Request2
Failed to download pear/HTTP_Request2 within preferred state "stable", latest release is version 2.0.0beta1, stability "beta", use "channel://pear.php.net/HTTP_Request2-2.0.0beta1" to install
install failed
えーと・・・

PS D:\php> pear install channel://pear.php.net/HTTP_Request2-2.0.0beta1
Failed to download pear/Net_URL2 within preferred state "stable", latest release is version 0.3.1, stability "beta", use "channel://pear.php.net/Net_URL2-0.3.1" to install
pear/HTTP_Request2 requires package "pear/Net_URL2" (version >= 0.3.0)
No valid packages found
install failed

    • alldeps 付ければ良かった。


PS D:\php> pear install channel://pear.php.net/HTTP_Request2-2.0.0beta1 channel://pear.php.net/Net_URL2-0.3.1
downloading HTTP_Request2-2.0.0beta1.tgz ...
Starting to download HTTP_Request2-2.0.0beta1.tgz (94,516 bytes)
.....................done: 94,516 bytes
downloading Net_URL2-0.3.1.tgz ...
Starting to download Net_URL2-0.3.1.tgz (8,488 bytes)
...done: 8,488 bytes
install ok: channel://pear.php.net/Net_URL2-0.3.1
install ok: channel://pear.php.net/HTTP_Request2-2.0.0beta1
つぎ、HTTP_OAuth

PS D:\php> pear install pear/HTTP_OAuth
Failed to download pear/HTTP_OAuth within preferred state "stable", latest release is version 0.2.2, stability "alpha",
use "channel://pear.php.net/HTTP_OAuth-0.2.2" to install
install failed
はい、

PS D:\php> pear install channel://pear.php.net/HTTP_OAuth-0.2.2
pear/HTTP_OAuth can optionally use PHP extension "pecl_http" (version >= 1.6.0)
downloading HTTP_OAuth-0.2.2.tgz ...
Starting to download HTTP_OAuth-0.2.2.tgz (54,105 bytes)
.............done: 54,105 bytes
install ok: channel://pear.php.net/HTTP_OAuth-0.2.2
はいった。
で、Services_Twitter に戻る。

PS D:\php> pear install --alldeps channel://pear.php.net/Services_Twitter-0.6.3
downloading Services_Twitter-0.6.3.tgz ...
Starting to download Services_Twitter-0.6.3.tgz (60,495 bytes)
...............done: 60,495 bytes
install ok: channel://pear.php.net/Services_Twitter-0.6.3
めでたく twitter API が入った。

でもこれで終わりではない。

PS C:\Users\kage> pear install pear/MDB2#sqlite pear/MDB2#pgsql
Skipping package "pear/MDB2", already installed as version 2.4.1
pear/MDB2_Driver_sqlite requires PHP extension "sqlite"
downloading MDB2_Driver_pgsql-1.4.1.tgz ...
Starting to download MDB2_Driver_pgsql-1.4.1.tgz (33,839 bytes)
.........done: 33,839 bytes
install ok: channel://pear.php.net/MDB2_Driver_pgsql-1.4.1
あ、sqlite はデフォルトでインストールされてたのか。

で fileinfo とはなんぞや。

このモジュールの関数は、ファイル内の特定の位置から magic バイトシーケンスを見つけることで、 ファイルの content type とエンコーディングを推測します。 これは完全な手法ではありませんが、経験上かなりうまく動作しています。
なんか読んだことあるなw
そういえば PHP だったけ。

そういや、apache入れていなかった。
httpd.apache.org から apache-2.2 を持ってきてインストール。
httpd.conf を以下のように変更。

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "d:\php"
AddType application/x-httpd-php .php
LoadModule php5_module "d:\php\php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
extra\httpd-languages.conf を以下のように変更。

DefaultLanguage ja
AddDefaultCharset UTF-8
extra\httpd-vhosts.conf を以下のように変更。


ServerAdmin h.kageyu@gmail.com
DocumentRoot "D:/PHP/www"
ServerName php.localdomain
ServerAlias php.localdomain
ErrorLog "logs/php.localdomain-error.log"
CustomLog "logs/php.localdomain-access.log" common


Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

Windows\Syatem32\drivers\etc\hosts ファイルを以下のように変更。(管理者権限で notepad.exe を使って)


127.0.0.1 php.localdomain
でもって、apache-2.2を再起動。
うむ、OK。
fileinfo は extension を設定する。
http が速くなるらしい(keepalive関係かな??) pecl_http も設定。
php.ini に以下を追加。

extension=php_fileinfo.dll
extension=php_http.dll

2011/03/17 18:00追記
PCによっては(きっとPHPのバージョンとか) php_fileinfo.dll が古いことがあるので、バージョンを合わせておいた方が良い。
じゃないと

PHP Warning: PHP Startup: Unable to load dynamic library 'D:/PHP/ext/php_fileinfo.dll' - 指定されたプロシージャが見つかりません。
in Unknown on line 0
と怒られることがある。
PHP 5.3.5 ならこれが使える。
http://www.sfr-fresh.com/windows/www/php-5.3.5-Win32-VC6-x86.zip:a/ext/php_fileinfo.dll

2011/03/17 21:00追記
さらに php_http.dll にプロシージャが見つからんと怒られていたので、

extension=php_http.dll
コメントアウト
:

また mbstring 関係の設定をしていなかったので追加。


[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
mbstring.detect_order = UTF-8,EUC-JP,SJIS
mbstring.script_encoding=UTF-8
apache-2.2 再起動。
うむ、OK。

index.php に以下のように書きアクセス。


≶?php
phpinfo();
なんか設定されているっぽい。

pecl_http の確認ができなかった。
一応メモ。
pecl_http の隠し機能? - 讃容日記

あとついでに pear/Date_Holidays_Japan をインストールしておく。


PS C:\Users\kage> pear install pear/Date_Holidays_Japan
Failed to download pear/Date_Holidays_Japan within preferred state "stable", latest release is version 0.1.1, stability "alpha", use "channel://pear.php.net/Date_Holidays_Japan-0.1.1" to install
install failed
こっちも安定版ではない。

PS C:\Users\kage> pear install channel://pear.php.net/Date_Holidays_Japan-0.1.1
Failed to download pear/Date_Holidays within preferred state "stable", latest release is version 0.21.4, stability "alpha", use "channel://pear.php.net/Date_Holidays-0.21.4" to install
pear/Date_Holidays_Japan requires package "pear/Date_Holidays" (version >= 0.20.1)
No valid packages found
install failed
むむ、Date_Holidays-0.21.4 も必要らしい。
名前的にそうか。

PS C:\Users\kage> pear install pear/Date_Holidays channel://pear.php.net/Date_Holidays_Japan-0.1.1
Failed to download pear/Date_Holidays within preferred state "stable", latest release is version 0.21.4, stability "alpha", use "channel://pear.php.net/Date_Holidays-0.21.4" to install
pear/Date_Holidays_Japan requires package "pear/Date_Holidays" (version >= 0.20.1)
No valid packages found
install failed
むむむ、こっちも安定版ではないらしい。

PS C:\Users\kage> pear install channel://pear.php.net/Date_Holidays-0.21.4 channel://pear.php.net/Date_Holidays_Japan-0.1.1
Failed to download pear/XML_Serializer within preferred state "stable", latest release is version 0.20.2, stability "beta", use "channel://pear.php.net/XML_Serializer-0.20.2" to install
Did not download optional dependencies: pear/Console_Getargs, use --alldeps to download automatically
pear/Date_Holidays requires package "pear/XML_Serializer"
pear/Date_Holidays can optionally use package "pear/Console_Getargs"
pear/Date_Holidays_Japan requires package "pear/Date_Holidays" (version >= 0.20.1)
downloading Date-1.4.7.tgz ...
Starting to download Date-1.4.7.tgz (55,754 bytes)
.............done: 55,754 bytes
install ok: channel://pear.php.net/Date-1.4.7
うむむ。

PS D:\php> pear install pear/XML_Serializer
Failed to download pear/XML_Serializer within preferred state "stable", latest release is version 0.20.2, stability "bet
a", use "channel://pear.php.net/XML_Serializer-0.20.2" to install
install failed
むきっ!

PS D:\php> pear install channel://pear.php.net/XML_Serializer-0.20.2
downloading XML_Serializer-0.20.2.tgz ...
Starting to download XML_Serializer-0.20.2.tgz (35,634 bytes)
.........done: 35,634 bytes
install ok: channel://pear.php.net/XML_Serializer-0.20.2
でやっと。

PS D:\php> pear install channel://pear.php.net/Date_Holidays-0.21.4 channel://pear.php.net/Date_Holidays_Japan-0.1.1
downloading Date_Holidays-0.21.4.tgz ...
Starting to download Date_Holidays-0.21.4.tgz (37,874 bytes)
..........done: 37,874 bytes
downloading Date_Holidays_Japan-0.1.1.tgz ...
Starting to download Date_Holidays_Japan-0.1.1.tgz (11,301 bytes)
...done: 11,301 bytes
install ok: channel://pear.php.net/Date_Holidays-0.21.4
install ok: channel://pear.php.net/Date_Holidays_Japan-0.1.1
Date_Holidays: Optional feature Date_Holidays_Austria available (Austria subpackage)
Date_Holidays: Optional feature Date_Holidays_Brazil available (Brazil subpackage)
Date_Holidays: Optional feature Date_Holidays_Denmark available (Denmark subpackage)
Date_Holidays: Optional feature Date_Holidays_Discordian available (Discordian subpackage)
Date_Holidays: Optional feature Date_Holidays_EnglandWales available (EnglandWales subpackage)
Date_Holidays: Optional feature Date_Holidays_Germany available (Germany subpackage)
Date_Holidays: Optional feature Date_Holidays_Iceland available (Iceland subpackage)
Date_Holidays: Optional feature Date_Holidays_Ireland available (Ireland subpackage)
Date_Holidays: Optional feature Date_Holidays_Italy available (Italy subpackage)
Date_Holidays: Optional feature Date_Holidays_Japan available (Japan subpackage)
Date_Holidays: Optional feature Date_Holidays_Netherlands available (Netherlands subpackage)
Date_Holidays: Optional feature Date_Holidays_Norway available (Norway subpackage)
Date_Holidays: Optional feature Date_Holidays_PHPdotNet available (PHP.net subpackage)
Date_Holidays: Optional feature Date_Holidays_Romania available (Romania subpackage)
Date_Holidays: Optional feature Date_Holidays_Slovenia available (Slovenia subpackage)
Date_Holidays: Optional feature Date_Holidays_Sweden available (Sweden subpackage)
Date_Holidays: Optional feature Date_Holidays_Ukraine available (Ukraine subpackage)
Date_Holidays: Optional feature Date_Holidays_UNO available (UNO subpackage)
Date_Holidays: Optional feature Date_Holidays_USA available (USA subpackage)
Date_Holidays: Optional feature all available (all subpackages (for bulk install and uninstall))
Date_Holidays: To install optional features use "pear install pear/Date_Holidays#featurename"
入った。
明日は余裕があれば twitter API を触ってみよう。