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

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

PEARでServices_Twitterをインストールして、PHPでツイートしようとしたらハマった件。

<スポンサーリンク>

PHPTwitterを操作するには、Services_TwitterとHTTP_OAuthをインストールする
以下のコマンドでインストールする。

pear install --alldeps -f Services_Twitter

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/Service
s_Twitter-0.6.3" to install
install failed

という「ベータ版だよ」というエラーが出るので、-fをつけてインストールする。

HTTP_OAuthは、XAMPPでインストールしたPHPに既にインストールされてるよ!というエラーが出た。。

>pear install --alldeps HTTP_OAuth
pear/HTTP_OAuth is already installed and is the same as the released version 0.3
.1
install failed

なので、既にインストールされているものとして進める。

・・・で、だ。
これを使ってPHPでツイートだ!タイムラインの取得だ~!なんてやると、ハマる。
間違いなくハマる。
だって、"いまは"使えないんだもん。

pearのモジュールはアンインストールしてOK。

いまのTwitter API v1.1に対応したバージョンはGitHubからダウンロードするのだ。
https://github.com/pear/Services_Twitter
で、GitHubからダウンロードしたモジュールたちをlibフォルダにコピーして、使ってみたサンプルがこれ。

<?php
header('Content-type: text/html; charset=UTF-8');

define('CONSUMER_KEY', 'XXXX');
define('CONSUMER_SECRET', 'YYYY');
define('ACCESS_TOKEN', 'XXX-ZZZZ');
define('ACCESS_TOKEN_SECRET', 'VVVV');

require_once('lib/Services/Twitter.php');
require_once('HTTP/OAuth/Consumer.php');

try {
	$twitter = new Services_Twitter();
	$oauth = new HTTP_OAuth_Consumer(
		CONSUMER_KEY,
		CONSUMER_SECRET,
		ACCESS_TOKEN,
		ACCESS_TOKEN_SECRET);
	$twitter->setOAuth($oauth);
	$res = $twitter->statuses->update("やっとできた~!");
	print_r($res);
} catch (Services_Twitter_Exception $err) {
	$err->getMessage();
}

これでやっと、PHPでツイートすることができた!
他にも色々といじってみたい。タイムラインを表示したりとか。

参考

PHPによるWebアプリケーションスーパーサンプル活用編 第3版

PHPによるWebアプリケーションスーパーサンプル活用編 第3版

参考にしたはしたけれど、サンプルがちょっと古かったのでハマった。
でも、Services_Twitterを知るきっかけになったからよし、である。