Edited at

PHPからTwitterツイート(2015年2月版)

More than 3 years have passed since last update.


概要

Twitter の bot をつくってみようと、 TwitterOAuth をつかって、PHPからツイッターにツイートする、というのを

http://webkaru.net/php/twitter-bot/

http://qiita.com/rana_kualu/items/357a031c0453a3538ad3

http://qiita.com/ltd/items/cb25853cabbaf98e456c

などを参考にやってみようとしたら、意外とそのまま動かなかったので、まとめます。

※上記記事が間違っているのではなく、以前から何か仕様がかわったのだろう、という仮定から2015年2月版とつけました。


準備


twitterのアカウント作る

省略


開発サイトでアプリケーションを作る

上記記事などで紹介されている

https://dev.twitter.com/

にアクセスすると、よくわからなくて迷う。。。

スクリーンショット 2015-02-20 08.42.39.png

https://apps.twitter.com/

にアクセスするのが正解。

image

「Create New App」からアプリ作成。(キャプチャは1つ作ってあります。)

・Consumer Key

・Consumer Secret

・Access Token

・Access Token Secret

の4つが必要になるが、これはたいして迷わずつくれるので、ここでは省略。

1点注意としては、デフォルトで、Access level が「Read Only」になっているが、これだとツイートできないので、「Read and Write」に変更する


PHPコード


TwitterOAuthのダウンロード

image

https://github.com/abraham/twitteroauth

このライブラリをまるごとダウンロードする。

Gitとかよくわからなくても、右側の「Download ZIP」ボタンからダウンロードすればOK

ダウンロードしたファイルを解凍すると、「twitteroauth-master」というフォルダ名なので、「twitteroauth」にリネーム

─ tweettest.php ←これからつくるファイル

─ [twitteroauth] フォルダ

 └ autoload.php など

という階層になるようにする。


ツイートするコード

上記フォルダ構造とした場合の tweettest.php のコードです。


tweettest.php

<?php

// OAuthライブラリの読み込み
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

//認証情報4つ
$consumerKey = "XXXXXX";
$consumerSecret = "XXXXXX";
$accessToken = "XXXXXX";
$accessTokenSecret = "XXXXXX";

//接続
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

//ツイート
$res = $connection->post("statuses/update", array("status" => "テストメッセージ"));

//レスポンス確認
var_dump($res);


これでうまくいきました。

ライブラリの読み込みあたりが、

require_once('twitteroauth/twitteroauth.php');

となっている記事が多いのですが、そもそもこんなファイルがないので、仕様変わったのではないかと思っています。

あと、連続してまったく同じテキストをツイートするとはじかれるようなので、上記コードのまま何度も実行しているとうまくいかなくなるかもしれません。

上記だけできれば、ランダムにツイート文言選んで、cron 実行、という感じで bot完成するかと。