【PHP】PHPからTwitter投稿してみたOAuth

開発ざれごとoauth,php,twitter,update

sc20111211174509

以前、C#からはやった事があるが、そういやPHPからは無かった。

新設したサイトで更新をTwitterに投稿しようと思います。

その手順とかを。


 

BASIC認証は既に終了してOAuth認証となったのは分かっていたのですが、出来るだけPearとかをインストールせずに導入したい。サーバは出来るだけイジりたくない

http://github.com/abraham/twitteroauth/downloads

こちらのサイトで配布しているものを利用しました。純粋なPHPで実現できます。test.phpがそのままサンプルコード群になってるので、見てもらうと分かります。

必要なのは、/twitteroauth/内のOauth.phpとtwitteroauth.phpの2つだけです。

Twitter Dev(アプリケーション登録)
https://dev.twitter.com/apps/new

予め、4つのコードを入手しておきます(広く提供するアプリの場合は、アクセストークンはそれぞれのユーザー毎に作成が必要)自分しか使わないのであれば、自分で生成します。

ACCESS_TOKEN/ACCESS_TOKEN_SECRET/CONSUMER_KEY/CONSUMER_SECRET

sc20111211175546

投稿するサンプルコードは、139行辺りになります。

一番上と下のtwitteroauth_rowは関係無いので、この2行だけとなります。

こんな感じで、4つのコードを準備して。

define('ACCESS_TOKEN’, ‘’);
define('ACCESS_TOKEN_SECRET’, ");
define('CONSUMER_KEY’, ");
define('CONSUMER_SECRET’, ");

$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$parameters = array('status’ => $message);
$status = $connection->post('statuses/update’, $parameters);

これだけで投稿できちゃいます。

$parametersに指定できるパラメータは、利用するメソッド毎に、幾つかあって、POST(投稿)については、以下のページのようになります。(statusは、ツイート本文)

Twitter statuses/update仕様
https://dev.twitter.com/docs/api/1/post/statuses/update

最初、Windows/Eclipse/Xamppで動作確認したのですが、どうしてもエラーが発生します(curl)

php.iniに書かれた、extension=php_curl.dllこの行がコメントされていたら修正して回避。

サーバ(CentOS/PHP5.3)では問題無く動作したのでよかった。以前、色々インストールしまくったお陰なんだろう。

php –i | grep with-curlで検索してみて、表示されれば問題無いようです。

開発ざれごとoauth,php,twitter,update

Posted by nabe