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

  • 128
    いいね
  • 6
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

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完成するかと。