トップページ⇒php
1001コメント336KB

【Twitter】 BOT製作支援スレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/27(日) 14:15:59ID:Dz08qoo4
見当たらなかったので立ててみた

[公式] http://twitter.com/
[Twitter 開発ブログ 日本語版] http://twitterjp.blogspot.com/

*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
0620nobodyさん2009/12/16(水) 14:11:14ID:???
>>619
そこで行数カウントしなくても
$plist_uniq = array_diff($plist, reverse(array_slice($log,0,10)) );
reverseで逆転すればいいだけだし
要素数カウントするなら別に $i = count($log) ;みたいなこともできる。
0621nobodyさん2009/12/16(水) 14:14:05ID:???
あー、こっちのが楽か。
$plist_uniq = array_diff($plist, array_slice($log,-10) );
0622nobodyさん2009/12/16(水) 23:19:30ID:j0jV78ZZ
http://www.kc-c.biz./consulting/contents-business/twitter.html
ここにヒントが...
0623nobodyさん2009/12/17(木) 01:12:23ID:???
ただの宣伝じゃねーか。
0624nobodyさん2009/12/17(木) 21:45:44ID:???
自動フォロー返しのときにDM送ろうとしてるんだが
そのDMのメッセージ内容に相手のname(screen_nameじゃない方)を使いたいときどうすればいい?
0625nobodyさん2009/12/17(木) 22:32:36ID:???
TL取得すると一緒についてくると思うけど
0626nobodyさん2009/12/18(金) 00:57:26ID:???
そのものnameって値で入ってるっしょ。
0627nobodyさん2009/12/18(金) 19:37:19ID:???
フォローにTLは取得しない
フォローイングとフォロワーのAPIでname取得できなくね?
0628nobodyさん2009/12/18(金) 19:42:38ID:???
取得すればいいのでわ?
0629nobodyさん2009/12/18(金) 20:11:26ID:???
TL上で俄かにOAuthで認証するのが流行り出した。
クライアント名を変えられるのが人気らしいですね。
使ってますか?
私はまだベーシック認証ですが。
0630nobodyさん2009/12/18(金) 21:22:41ID:???
すみませんだれか知恵をお貸しください。
phaさんのプログラミングを利用させてもらっています。
本日botのパスワードを変更したらその後まったくbotがうごかなくなってしまいました。
普通投稿とリプライ投稿ともまったく別のエラーになります。

普通投稿の方は パスワードかユーザー名が違うとのことですが、
普通にこのIDとパスでtwitterにログインできるので間違っているはずがありません。
どこか別の記述が間違っているのかと別IDでpostしてみましたが通常通り動きました。
何故か一体のbotだけうまくいかない状況です。

もう一点、同botなのですがリプライの方は
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in /usr/local/www/htdocs/○○/public_html/Services/Twitter/Jsphon/Error.php on line 185
と出、185行目にエラーがあるそうですが、185行目は
$message = convert_text($message);
で何が問題あるのかさっぱりわかりません。
他の正常に動いているbotのソースを丸々コピーしてみましたが同じエラーになります。

自分ではこれ以上の原因究明ができませんでした。
twitterのアカウントに問題がある気がするのですが、
twitterのhome画面ではちゃんと書き込みができるのようでもう何が何やらさっぱりです。
申し訳ございませんが誰かご教授いただけると嬉しいです。
06316302009/12/18(金) 21:30:49ID:???
すみません630です。
何故か今、回復してしまいました
サーバーの調子が悪かったのでしょうか・・・
スレ汚してしまい本当にすみません
0632nobodyさん2009/12/18(金) 22:56:43ID:???
>>631
そういう時はできるだけ詳細を書いておけば後続者の役に立つと思うからまだ見ていたら覚えといてくれ。
0633nobodyさん2009/12/18(金) 23:08:00ID:???
自分もphaさんのを利用させてもらってるんだけど、
返すリプライによって画像を変えたい場合ってどうしたらいいんですかね?
他の方のプログラムだとみつけたんだけどphaさんのって発言はテキストファイルで他の人とちょっと勝手が違うからよくわからないです…
0634nobodyさん2009/12/19(土) 00:14:49ID:???
phpを勉強して折衷したプログラムを作ればいい
0635nobodyさん2009/12/19(土) 00:32:47ID:???
フォローしてない人の発言を特定のキーワードで検索、取得するにはどうすれば良いのでしょうか…
0636nobodyさん2009/12/19(土) 01:02:08ID:???
http://search.twitter.com/
http://pcod.no-ip.org/yats/
http://buzztter.com/

このあたりがRSS吐いてるから適当に解析するよろし。
0637nobodyさん2009/12/19(土) 02:33:57ID:???
>>636
Thanx a lot!
0638nobodyさん2009/12/19(土) 07:18:16ID:???
>>629
ベーシック認証が廃止になるから
http://twitter.com/tweeterjp/status/6522684422
0639nobodyさん2009/12/19(土) 11:42:19ID:???
>>638
ついーたーが言ってるだけじゃなあ。
URLもRT用の無駄URLだしソース元ないん?
0640nobodyさん2009/12/19(土) 14:52:54ID:???
http://jp.techcrunch.com/archives/20091209twitter-le-web-2009/
http://apiwiki.twitter.com/OAuth-FAQ
0641nobodyさん2009/12/19(土) 17:58:05ID:???
corn-job.orgの動作が不安定なため、GAEでcronを動かしたいと思っています
自分なりに色いろやってみたのですが、どうしてもうまくいかないので相談させてください。
ttp://d89.s41.xrea.com/twitter/howtomake_bot.html
こちらをを参考に、cron.yaml/app/yaml/task.pyを作成し
GAE launcherで読み込んだのですが、Runさせようとすると数秒でエラーのアイコンが出て先に進めません
ログはこんな感じになっています。URLがダメなんでしょうか…

Running command: "['C:\\Python25\\python.exe', 'C:\\Program Files\\google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8089', 'C:\\bot']"
ERROR 2009-12-19 08:32:38,951 dev_appserver_main.py:363] Fatal error when loading application configuration:
Invalid object:
Unknown url handler type.
<URLMap
static_dir=None
secure=default
script=None
url=/.*
static_files=None
upload=None
mime_type=None
login=optional
require_matching_file=None
auth_fail_action=redirect
expiration=None
>
in "C:\bot\app.yaml", line 8, column 1
2009-12-19 17:32:39 (Process exited with code 1)
0642nobodyさん2009/12/19(土) 18:26:07ID:???
>>641
まず、ml115を買ってくる

0643nobodyさん2009/12/19(土) 18:42:27ID:???
>>642
自分で鯖を立てることができるならこんなことで悩んだりしません
意地悪ですね
0644nobodyさん2009/12/19(土) 19:51:19ID:???
できるようになればいいじゃん
0645nobodyさん2009/12/19(土) 19:52:17ID:???
鯖立てしなくても24時間PCつけっぱなしにしてブラウザ自動リロードにしておけばいいだけ
0646nobodyさん2009/12/19(土) 19:56:18ID:???
リロードなんかしなくてもJavaScriptじゃだめなのか
0647nobodyさん2009/12/19(土) 19:57:39ID:???
>>643
まぁ、やってみなよ、おもしろいから。
DDNSとかで
セキュリティ??知らんがな(´・ω・`)

メールとかいろいろ遊べるし
0648nobodyさん2009/12/20(日) 16:24:25ID:???
>>641
同じようなとこで躓いた経験があります。yamlファイルの記述に問題があったようです。
そこのサイトで紹介しているyamlファイルのテキストをブラウザからコピペしたもの
ではなく、そのサイトからリンクされているページで紹介されている
ソースコードをコピペしてやってみると幸せになれるかもしれません。
違っていましたらあしからず。
0649nobodyさん2009/12/20(日) 20:43:29ID:???
>>648
おおおおお仰る通りにしてみたら成功しました!幸せになれました
本当にありがとうございました
0650nobodyさん2009/12/20(日) 23:25:31ID:???
ベーシック認証が廃止になったら、phaさんのスクリプトとかも動かなくなんの
0651nobodyさん2009/12/21(月) 00:24:06ID:???
>>650
OAuthに対応しなきゃ動かなくなるわな
0652nobodyさん2009/12/21(月) 00:32:05ID:???
OAuthはまだいいよ。
できなくなったら対策考えればいい。

ググればいくらでも出てくるからな。
ググらないのは甘え
0653nobodyさん2009/12/21(月) 00:51:02ID:???
OAuth導入できたんだけどAPIが上手く使いこなせない
慣れるの大変だなまた

これで他人のソース丸コピペBot量産厨が減るといいけどwww
0654nobodyさん2009/12/21(月) 00:53:31ID:???
PHPでOAuth使おうと思ったがサンプルはcurlしか使えないんだな。
もっとましな方法はないのか…
0655nobodyさん2009/12/21(月) 00:58:00ID:???
ラッパーの自作ライブラリはさんでるから対応さえしときゃなんとでもなりそうだ。
0656nobodyさん2009/12/21(月) 10:45:51ID:???
ていうか今までもcurl使ってたと思ったがましな方法って例えば何だ。
0657nobodyさん2009/12/21(月) 12:58:32ID:???
phaさんので使われてる日本語版Services_Twitterはcurl使ってない
http://d.hatena.ne.jp/sotarok/20080807/1218114681
0658nobodyさん2009/12/21(月) 14:12:31ID:???
そこのURLでも言ってるがcurlそんなダメか?
0659nobodyさん2009/12/21(月) 21:17:30ID:???
curlは認知度が低い
わざわざ使わなくてもHttp_Requestがある
curlの仕様自体が変態
0660nobodyさん2009/12/21(月) 22:25:00ID:???
curlを使ってたとこはHttp_Requestが何故か使えないから仕方なく使ってたみたいだが
0661nobodyさん2009/12/22(火) 04:53:06ID:???
>>659
fsockopenなんて遅いしそれだったらcurlでいいやと思ってる
0662nobodyさん2009/12/23(水) 02:57:59ID:???
流れを読まずにcronの代わりを考えてみたんだけど、htmlの自動更新のタグ使って代わりにできないかな?
htmlのページにフレームかなんかでphp埋め込んで、そのページを延々更新し続けるとcron使わなくても動くんじゃない?
自分はめんどくさくてそんなことせずにcronくんでるんだけど誰かcronわからなくてhtmlの知識持ってる人は試してみてほしい
24時間ずっとブラウザ立ち上げてなきゃいけないけど

うーん、やっぱり駄目かな。アホなこと考えてごめん
0663nobodyさん2009/12/23(水) 03:35:15ID:???
別にいいんじゃない?
自分が起きる時間にBOTは起きて自分が寝る時間にBOTは寝る感じで
0664nobodyさん2009/12/23(水) 11:48:56ID:???
>>662
考えたことあった
ただ>>663が言うように常にPCを上げておかなきゃいけないからね
それが問題にならないbotなら出来ると思うよ
0665nobodyさん2009/12/23(水) 11:58:43ID:???
windowsならタスクでなんでだめなの?
0666nobodyさん2009/12/23(水) 11:59:24ID:???
てかMETAタグで自動更新するくらいならJavaScript使えばいいのでは?
0667nobodyさん2009/12/23(水) 12:32:05ID:???
>>666
前提が「cronは分からないけどhtmlならできる」だから
htmlのが敷居低いんでないの?
0668nobodyさん2009/12/23(水) 14:35:27ID:???
タグ一行で済むのをわざわざJavaScriptで書く必要はないわな。
0669nobodyさん2009/12/23(水) 16:50:10ID:???
htmlやJavaScriptでわざわざ書かなくてもOperaに自動更新ツールついてるし
0670nobodyさん2009/12/23(水) 21:40:03ID:???
ブラウザに依存してる方がめんどくさいだろ。
0671nobodyさん2009/12/24(木) 14:59:33ID:???
http://twittbot.net/

このボットジェネレーターが結構使えると思うんだがどう?
0672nobodyさん2009/12/24(木) 16:16:13ID:???
その手のは突然サービス終了したらと思うと怖くて使えない
0673nobodyさん2009/12/24(木) 16:32:20ID:???
別に終了してもいいじゃん。
どうせtwitterなんて流行り物だし、使い続けるようなものでもないでしょ
0674nobodyさん2009/12/24(木) 23:28:41ID:???
すいません、流れを読まずに質問。
reply_pattern.phpの中身の反応させる言葉なんですけど、
複数の単語がある場合に反応する方法はありますか?
たとえば、「ごちそうさま。おいしかった」と@貰ったら
「お粗末さま。おいしくて何より」といった返答をするように、
「ごちそうさま」と「おいしい」の2つの単語がある場合に、
用意した言葉を返答するという感じ。

「ごちそうさま」だけに反応させるものもあるので、二つの言葉がある
場合に、反応する正規表現を教えて下さい。
0675nobodyさん2009/12/24(木) 23:29:34ID:???
>>674
http://www.mnet.ne.jp/~nakama/
0676nobodyさん2009/12/24(木) 23:43:40ID:???
>>675
 明日(ぼく|わたし)は帰宅します
これか!これだな!ありがとう!!助かった。感謝します。
06776742009/12/24(木) 23:59:04ID:???
あれ、どうやら違うようでした…。自分の頭はサル以下なのか
0678nobodyさん2009/12/25(金) 01:06:33ID:???
ごちそうさま.*おいしかった

だけでいんじゃね
0679nobodyさん2009/12/25(金) 01:08:50ID:???
おいしかった。ごちそうさま。
だったら?
06806742009/12/25(金) 02:20:44ID:???
>>678
それだと「ごちそうさま」だけの@に反応しなくなる
また、 おいしかった.*ごちそうさま
だと、「おいしかった」に反応してしまうんだ…

>>679
「おいしかったーーー!うまい!ごちそうさま!」とか
「ごちそうさま!パスタおいしかった」にも反応させたいんだ

「おいしかった。ごちそうさま。」ってきっちり@もらって
反応させるしか方法はないのかな…
0681nobodyさん2009/12/25(金) 02:24:57ID:???
2つif使えば?
0682nobodyさん2009/12/25(金) 02:38:50ID:???
「おいしい」じゃ「おいしかった」は引っかからないのでは?
06836742009/12/25(金) 02:53:24ID:???
>>681
if?初心者なものですまんがわかるように解説してくれ…
ちなみに「プログラミングができなくても作れるTwitter botの作り方」を
参考にしてphpいじってる。 ttp://pha22.net/text/twitterbot.html
タグはこんなかんじで

"リア充(は)?爆発しろ"=> array(
"「爆発しない」",
"「爆発する」",
),

>>682
ああ!微妙に単語を変えればいいのか…? なるほど
2つの単語同時指定っていうのが無ければ、そうする。ありがとう
0684nobodyさん2009/12/25(金) 03:13:29ID:???
プログラム分からないでやる意味が分からん。分かるようになれよ
0685nobodyさん2009/12/25(金) 03:20:06ID:???
ていうか正規表現のURL貼ってくれてんだからそれ読もうよ。
すごい基本的なこと聞いてるからそれもわかんないんじゃ今後似たような質問だらけになるぞ。
0686nobodyさん2009/12/25(金) 08:40:21ID:???
phaさんのスクリプト使わせてもらってるが
反応する単語増やしたらタイムアウトしやすくなってきた
.*を多用しすぎたのが良くなかったのか?

ファイルサイズを小さくできる(タイムアウトしにくい)表記とか
あったら教えて欲しい
0687nobodyさん2009/12/25(金) 10:26:04ID:???
>>674
「ごちそうさま」だけでいいならそれだけ書いておけば「おいしかった」があってもなくても引っかかる
「おいしかった」の有無で反応を変えたいなら分けて書けばいい
PHP云々以前の問題だと思うよ
0688nobodyさん2009/12/25(金) 14:08:55ID:???
質問の時のテンプレあるといいのかね?
0689nobodyさん2009/12/25(金) 20:40:14ID:yLGH+OzA
phpでbot作ってて、APIのmentions.xmlを取得してるんだけど
curlで取得してsimplexml_load_stringで読むことはわかるけど
このままforeachでループすると同じものを何回も繰り返して
二重にも三重にも実行されることになってしまうがどうしたらそれを回避できる?
0690nobodyさん2009/12/25(金) 21:03:01ID:???
意味が分からん。ループすべき処理にはforeachをかけて、すべきでない処理にはかけなければいいのでは?
06916892009/12/25(金) 21:18:19ID:yLGH+OzA
>>690
いや、そこんとこの処理をどうするか考えてる
ループを実行するたびにファイルにでもidを記録して
ループを回す度にチェックして重複してたら実行しないようにすればいいんだろうけど
それだとすごく時間かかる
0692nobodyさん2009/12/25(金) 21:24:49ID:???
ランダム発言でもしてて発言が重複しないようにしたいわけ?
それなら上のほうで同じような話が出てるよ
06936892009/12/25(金) 21:55:28ID:yLGH+OzA
>>692
そうじゃない、xmlから拾うときに前拾ったのを拾わないようにするにはどうしたらいい?
0694nobodyさん2009/12/25(金) 22:01:38ID:???
>>693
なんらかの方法でマークしておけよ。
xml取得時に日時で絞っておくとか、IDを記録しておくとか、、、
06956892009/12/25(金) 22:07:51ID:yLGH+OzA
>>694
日時で絞るなんて機能あった?
IDを記録しておく方法だと
ファイルに記録すると読み込み時間かかるし、ファイルの中身を消すタイミングもめんどくさいし
データベースでも同じ
06966892009/12/25(金) 22:16:08ID:yLGH+OzA
ああ、取得した最新のidをファイルに記録しといて今度取得するときsince_idパラメータを指定すればいいのか
0697nobodyさん2009/12/25(金) 22:42:30ID:???
>>696
日時でもなんでもやり方はあるぞ
言っちゃ悪いがそれくらい分かれ

あとsageろ
0698nobodyさん2009/12/26(土) 00:09:15ID:???
なんか無駄に長くて要点わかりにくいんだけど
要するに重複しないステータスを取得したいってことでいいんかね。
まあ>>696でいいんだろうけどAPI叩いて連続で取得したんなら
ステータスIDをキーにした配列に格納しなおして重複避けたり
読み終わったIDを保存しといてそれは除外するなり手はあると思うが。
0699nobodyさん2009/12/26(土) 00:30:52ID:???
どうせ2分とかの間隔で取得するんだから、
00:26:01に起動 → 00:24:00〜00:25:59のステータスが有効
00:28:02に起動 → 00:26:00〜00:27:59のステータスが有効
という感じでやってる。
mentions取得できなかったら?そんなの無視。
0700nobodyさん2009/12/26(土) 00:36:35ID:???
時間で指定できるのもあったよね確か
0701nobodyさん2009/12/26(土) 02:55:24ID:???
sinceは廃止される引数だったと思う。
since_id max_id を使って欲しいんだろう。
0702nobodyさん2009/12/26(土) 14:39:10ID:???
BOTで投稿したときに「APIから」と表示されてしまうのですが、
これを偽装する手段ってありませんか?
0703nobodyさん2009/12/26(土) 14:40:46ID:???
OAuth認証にすれば自由にできる
0704nobodyさん2009/12/26(土) 14:49:04ID:???
>703
ありがとうございます。
調べてみます
0705nobodyさん2009/12/27(日) 05:06:54ID:???
GAEのcron.xmlで、「毎日○時〜○時の間のみ○分間隔で実行する」という設定は可能ですか?
<schedule>の書式とにらめっこしたけど調べた範囲では分からなかった…
0706nobodyさん2009/12/27(日) 08:49:06ID:???
>>705
○分間隔にしといてBOT側で時間の対応をする
0707nobodyさん2009/12/27(日) 11:31:22ID:???
>>705 その後、どうですか?
0708nobodyさん2009/12/27(日) 23:04:05ID:???
FileQっていう月99円のレン鯖はcron無制限だよ。実際に自分のbotで試したらちゃんと動いた。
0709nobodyさん2009/12/28(月) 05:11:09ID:???
皆さんbotのプログラミング言語は何を使っているんですか?
0710nobodyさん2009/12/28(月) 07:37:01ID:???
過去ログ読め



BOTの為だけに鯖借りるのはなんかなーとは思う
0711nobodyさん2009/12/28(月) 08:14:48ID:???
無料鯖借りればいいじゃん
0712nobodyさん2009/12/28(月) 11:10:23ID:???
自鯖立てればいいじゃん。
0713nobodyさん2009/12/28(月) 11:34:53ID:???
自分で書き込めばいいじゃん。
0714nobodyさん2009/12/28(月) 12:16:36ID:???
cron使える無料サーバーなんてあるのか?
FileQが多分一番安いし一分間隔でcron使えるし
0715nobodyさん2009/12/28(月) 12:28:27ID:???
>>713
それボットじゃねーwww

FileQ試してみたけどスゲーな
安定して1分間隔でcron動く
1年1180円だしこれでいいんじゃね?
0716nobodyさん2009/12/28(月) 19:59:23ID:???
rep2置いたらジエンにつかえるじゃん
0717nobodyさん2009/12/28(月) 21:38:58ID:???
名詞や動詞を組み合わせて発言するボットを作ってる人多いけど、文意がおかしな事になってるじゃん。
もっとちゃんと作ったらいいじゃん。
0718nobodyさん2009/12/28(月) 22:10:42ID:???
>>715
FileQは操作に慣れるのに時間がかかる。
慣れるまでが問題かな。
0719nobodyさん2009/12/29(火) 01:24:34ID:???
tp://d.hatena.ne.jp/bardothodol/20090930#p1
ここを参考にTL上の単語に反応させてるんですが、サーバーを@PAGESからFileQに移動したら
Fatal error: Call to undefined function curl_init() in /home/〜〜〜.php on line 27
というエラーが出るんですが、これってこのサーバーではcurlが使えないってことですよね?
curlを使わない方法でTL上の単語に反応させる方法とかありますか?
それともcurlが使えるサーバーを探すべきか…
0720nobodyさん2009/12/29(火) 01:34:48ID:???
>>717
マルコフ連鎖とかいうのを実装して作るんだけど、あくまで「文と文のつながり」を記憶できるだけであって、文意の解析までは辿りつけてないよ。
発言ごとに辞書引いて意味を覚えるとか面白いとは思うけど、労力が足りないんじゃないかな。
■ このスレッドは過去ログ倉庫に格納されています