2010/08/07
TwitterBot
連続投稿ごめんなさい。
本日時点でまだ復旧してないそうです。
具体的には、「account/update_profile_image」のAPIでの挙動がおかしいです。
これは毎日確認するしかないな…と確認用サイトまとめておきます。
- Twitterのステータス(7/20の記事に騙されたが、復旧はまだの模様)
- Issue 1745: Profile image uploads are returning 200OK but not rendering correctly (ここのおかげではっきりわかった)
- 画像POSTは正常終了のように見せかけられる
- しかし画像は「×」で表示される
- 画像を右クリックし「プロパティ」で画像のURLを確認する。確認したURLを叩いてみると下記のようなエラーが表示される
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>58CBA5274BA1844B</RequestId><HostId>t2KEB4m3gTJOMl+3M+/bhMenrAxKWRG/Vc0wetCHLKPsWB+KlRCZknDmsvelZb7t</HostId></Error>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>58CBA5274BA1844B</RequestId><HostId>t2KEB4m3gTJOMl+3M+/bhMenrAxKWRG/Vc0wetCHLKPsWB+KlRCZknDmsvelZb7t</HostId></Error>
PHP,
TwitterBot
足りなければ自由に追加できるし、動かしてやるーとぽちぽちやりました。
ひとつひとつ検証したわけではないですが、以下のExtensionを入れると動作しました。たぶんいらないもの多数あるかと(地道に調べるのは面倒なので容赦してください)
とりあえずマイPCでテスト用でEasyBotterが動けばそれでいい! という人は参考にしてください。
【いれたExtension】
以下、補足(というか追加の仕方)
Extensionの追加ってどうやるん? って言うのは、PHPをインストーラでいれた場合は、「プログラムの機能」から追加することができます。
ZIPから圧縮解凍してPHPを構築した場合は、php.iniで該当するdllのコメントアウトを外せばよいかと思います。
手順
(1)「プログラムの機能」からPHPを選択し、「変更」を押す
(2)インストーラの指示に従い次へ。三つボタン出てきたら「change」で
(3)どのCGIですかは「FastCGI」のまま
(4)有効にするエクステンションを聞かれるので、必要なものをオンにしていく
(5)インストーラの指示に従い次へ次へで完了させる
(6)IIS再起動
ご参考:うちの環境
WindowsVista Home sp2
PHP Version => 5.2.14(インストーラからインストール)
EasyBotter2.04beta
構築四苦八苦はこっちの記事参照↓
・ 結局自分とこにPHPを立ててみる。
前までの記事の続き。
PHPが動くところまでいったが、いざEasyBotterを動かしてみると、よくある? 下記エラーが表示されました。
PEAR/HTTP/OAuth/Consumer/Request.php on line 214
まぁはじめから、extensionが足りんでエラーになるのは目に見えたので自鯖立てたわけで。足りなければ自由に追加できるし、動かしてやるーとぽちぽちやりました。
ひとつひとつ検証したわけではないですが、以下のExtensionを入れると動作しました。たぶんいらないもの多数あるかと(地道に調べるのは面倒なので容赦してください)
とりあえずマイPCでテスト用でEasyBotterが動けばそれでいい! という人は参考にしてください。
【いれたExtension】
├Scripe Executable
├Extentions
│ ├Curl
│ ├ GD2
│ ├ Multi-Byte String
│ ├ Mhash
│ ├ Mimetypec
│ ├ Openssl
│ ├ Pspell
│ ├ Sockets
│ ├ Sybase
│ ├ XML+RPC
│ ├ XSL
│ ├ zip
└Extras
└ PEAR install
├Extentions
│ ├Curl
│ ├ GD2
│ ├ Multi-Byte String
│ ├ Mhash
│ ├ Mimetypec
│ ├ Openssl
│ ├ Pspell
│ ├ Sockets
│ ├ Sybase
│ ├ XML+RPC
│ ├ XSL
│ ├ zip
└Extras
└ PEAR install
以下、補足(というか追加の仕方)
Extensionの追加ってどうやるん? って言うのは、PHPをインストーラでいれた場合は、「プログラムの機能」から追加することができます。
ZIPから圧縮解凍してPHPを構築した場合は、php.iniで該当するdllのコメントアウトを外せばよいかと思います。
手順
(1)「プログラムの機能」からPHPを選択し、「変更」を押す
(2)インストーラの指示に従い次へ。三つボタン出てきたら「change」で
(3)どのCGIですかは「FastCGI」のまま
(4)有効にするエクステンションを聞かれるので、必要なものをオンにしていく
(5)インストーラの指示に従い次へ次へで完了させる
(6)IIS再起動
ご参考:うちの環境
WindowsVista Home sp2
PHP Version => 5.2.14(インストーラからインストール)
EasyBotter2.04beta
構築四苦八苦はこっちの記事参照↓
・ 結局自分とこにPHPを立ててみる。
2010/08/01
TwitterBot
「Incorrect signature」でググったらOAuthがらみのエラーの様子…? とりあえず上記でやりたいことは実装できたので詳細は調べませんでした。
なんなんでしょうねぇ…。窮地に陥ったら調べます。
例のAPI制限はまだ解除されないみたいですね。orz
リプライの実装がだいたい完了。
リプライの台詞によっては、ちょっと特殊な動きをさせるため、EasyBotter.phpはどんどこカスタマイズしております。怖い怖い。
で、通常順番台詞とリプライを実装するために、bot.phpのなかで「postRandom」関数と「reply」関数を呼び出すわけですが、(postRandomは一時間に一回などにするために条件判定加えますが)、これをサンプルで描かれている順番と逆にして
$response = $eb->reply(2,"data.txt","reply_pattern.php");こう書くと、下記のようなエラーが出てしまうのですよ
$response = $eb->postRandom("data.txt");
object(SimpleXMLElement)#10 (2) {なお、「postRandom」を呼んだあとに「reply」呼ぶにはエラーにならず、謎でした。
["request"]=>
string(20)
"/statuses/update.xml"
["error"]=>
string(19) "Incorrect signature"
}
「Incorrect signature」でググったらOAuthがらみのエラーの様子…? とりあえず上記でやりたいことは実装できたので詳細は調べませんでした。
なんなんでしょうねぇ…。窮地に陥ったら調べます。
2010/07/24
TwitterBot
現在作成中のBOTは、二人のキャラが1つのbotで同居したようなものを考えています。
会話をさせたりさせなかったりする予定。
(本来、それぞれのキャラでアカウント作って、リプライを飛ばしあうのが正道かと思われますが、それができない事情があるのです)
2010/07/20
TwitterBot
BOTを作るべく、カスタマイズしやすそうな「EasyBotter」を借りてみることに。
http://pha22.net/twitterbot/
実績あるサーバもWikiのほうに載ってますが、まず手持ちのものでできないか確認してみました。
結果、NGだったサーバの備忘録w







