読者です 読者をやめる 読者になる 読者になる

Portal:siro

ダイレクトマーケティングブログ

ちぃサイラスBOT制作:とりあえず喋るところまで

なんかこう、TwitterBOT作りについて書いたほうがいいのかな、と思って。

ただ、これはこれを見てBOTが作れるというタイプの記事(解説記事)ではありません。
あくまでこういうやり方もあるという程度で、特にサーバ設定とかは他のブログ記事等を参考にお願いします。

[ここから言い訳]
いや、最初はちゃんと書いてたんですよ。
でも、Services_Twitterの話になったとき、どう書けばいいのか手が止まっちゃったんですよ。
あれは元々日本の方が作っていた「Services_Twitter(現在はTr_Twitという名称に変更)」があって、その後に後発で「Services_Twitter」というPEARパッケージが出てきて。
その時期ですら「どちらを"本家"Services_Twitterと呼ぶべきか」という議論があって、個人ブログとかだとごっちゃになって書かれてて。
それでも僕は前者のServices_Twitterをずっと使ってきていたのでPEAR版はスルーしてきたんですよ。
だけどOAuth認証移行時に前者のほうは中々対応版が出ず(現在もTr_Twitはアルファ版のまま)、先にPEAR版がOAuth対応したためにそちらに移行した方が多かったのです。
僕は結局、第三者の方が書いた「こう改造すればServices_TwitterOAuth対応するよ!」というブログ記事(URL失念)を見てServices_Twitterを改造したため、現在ちょっとそのあたりのソースコードがなんとも言えないことになっているんです。
今から始める人はどう考えてもPEAR版入れるべきなのでPEAR版の解説を書くべきなのでしょうが、流石に使っていないものの解説は書けません。あとぶっちゃけcurl嫌いです僕。
そしてServices_Twitterの話辺りをすっ飛ばしたものを解説記事と呼ぶわけにもいかないので、あくまで参考記事ということにします。させてください。
[ここまで言い訳]

動作確認用のとりあえず喋るソースコード

<?php
// 外部ファイル読み込み
require_once "Services/Twitter.php";
require_once "Services/twitteroauth.php";
 
// 認証部分
$st =& new Services_Twitter(
"************************:", // コンシューマーキー
"****************************************",
"****************************************", // アクセストークン
"****************************************", //
TRUE );

// 発言部分
$st->setUpdate("テスト発言");

?>
上記コードの解説
require_once "Services/Twitter.php";
require_once "Services/twitteroauth.php";

PHPTwitterへの投稿等を行うServices_Twitterの読み込み部分です。
(Services_Twitterのバージョン等によってファイル名が異なりますので、適宜変えてください)

$st =& new Services_Twitter(
"************************:", // コンシューマーキー
"****************************************",
"****************************************", // アクセストークン
"****************************************", //
TRUE );

ここもServices_Twitterのバージョンによって多少異なりますが、ここに書くのはBOTの認証用トークンです。
認証用トークンの詳細は、twitterbotなどで OAuthを使う方法(PHPバージョン2) http://www.hosimitu.com/2010/04/2920-1456.php などのブログを参照で。

$st->setUpdate("テスト発言");

""の中の文章を発言します。当たり前ですけども、140文字より多いとTwitter側に弾かれます。
あと1回目の発言はできたのにもう1回アクセスしたらできない!って場合はだいたい同一内容Tweet規制に引っかかってます。
$st->setUpdate("テスト発言" . rand(0,100));とか書くと規制回避になります。



こんな感じで「最低限の認証&Tweet」のソースを書いて適当な名前.phpで保存し、ブラウザからそのphpファイルにアクセスしてみてください。
エラーとか出ず、BOTアカウントがTweetしていれば最低限の環境設定は完了です。


失敗する場合はだいたい、
・プログラミングの基本的なところが間違ってる(全角スペースが入ってる、行末の;をつけ忘れてる、変数名やメソッド名間違えてるetc)
・require_onceするファイルの場所を間違えている(どのファイルからの相対パスなのかはよく確認すべき)
・そもそもservices_twitterのインストールがうまくいっていない
とかだと思います。



ちぃサイラスBOT、と言いつつまだちぃサイラスBOTの話はしてなくてごめんなさいね。次でやります。