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のサイトでも呼び方がページによって違うので戸惑いました)
ツイートのところにツイートしたいことを入れてください。
ただ、このままだと見通しが悪いので変数とかを使って、
keyとかは適宜入れ替えてください。
最終的にどこを見たかというと、twitteroauthについてきたindex.phpというファイルに書いてありました。
他にも、
ローカルでやっているので一定間隔で投稿するといったことはやっていませんが、ボタンを押すと何かをつぶやくことができるようになりました。
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));
コメント