Symfony2.3でOAuthを使ったTwitterの投稿

ふとツイッターのbotを作ってみたくなったので、やってみました。
ローカルでやっているので一定間隔で投稿するといったことはやっていませんが、ボタンを押すと何かをつぶやくことができるようになりました。
namespaceやrequireなどほとんどphpがわからない状態でやったので、もうだめかもしれないというくらいにハマったのですが、なんとか出来ました。
公式のドキュメントを読むのが大事だと思いました。

アプリを登録してAPI_key (consumer_key), API_secret , access_token , access_token_secretを入手したりする方法は
メモ:twitterのbotを作るために必要なAPI key・token取得法
とかを見たください。検索すればいくらでも出てきます。

また、下記サイトからtwitteroauthというAPIをダウンロードしてください。右下の方にDownloadZipというボタンがあります。
https://github.com/abraham/twitteroauth

Symfony2.1でTwitterOauthを使う
途中までは、このサイトを見ながらやりました。
ファイル展開のところにあるように、vendor/twitteroauth/lib/TwitterOauthにOauth.php とtwitteroauth.phpをコピーしてください。
また、ファイル名をtwitteroauth.phpからTwitterOauth.phpへ変更します。

次に、autoload.phpに
require_once __DIR__.'/../vendor/twitteroauth/lib/TwitterOauth/TwitterOauth.php';
と追記します。
autoload.phpはvender/にあります。

Config.ymlは変更しませんでした。
このサイトを見るのはここまでです。

さて、コントローラにactionを追加するのですが、結論から言うと、最短2行でかけます。

$TwitterOAuth =  new \TwitterOAuth("API_key","API_secret","access_token","access_token_secret");
$status = $TwitterOAuth->post('statuses/update', array('status' => "ツイート"));

一行目のAPI_key等のところには、そのキーを入れてください。(api_keyとconsumer_keyは同じものを指しています。twitterのサイトでも呼び方がページによって違うので戸惑いました)
ツイートのところにツイートしたいことを入れてください。
ただ、このままだと見通しが悪いので変数とかを使って、

public function postAction(){
  $API_key = "hogehoge";
  $API_secret = "homuhomu";
  $access_token = "foooooooo";
  $access_token_secret = "baaaaaaaaar";

  $message = "メッセージ";

  // つぶやく
  $TwitterOAuth =  new \TwitterOAuth($API_key,$API_secret,$access_token,$access_token_secret);
  $status = $TwitterOAuth->post('statuses/update', array('status' => $message));

  return $this->render('twitterBundle:twitter:post.html.twig');
}

keyとかは適宜入れ替えてください。

最終的にどこを見たかというと、twitteroauthについてきたindex.phpというファイルに書いてありました。
他にも、
$connection->get('users/show', array('screen_name' => 'abraham'));
$connection->post('statuses/destroy', array('id' => 5437877770));
$connection->post('friendships/create', array('id' => 9436992));
$connection->post('friendships/destroy', array('id' => 9436992));
などがあるそうです。

コメント

このブログの人気の投稿

2次元配列のコピー::JavaScript

iframeの利点と欠点

chromyを実行するとエラー:"Failed to launch a browser"が出る