トップページ⇒php
982コメント309KB

【Twitter】 BOT製作支援スレ part2

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2010/01/18(月) 23:18:42ID:wnXKZf+j
前スレ
http://pc11.2ch.net/test/read.cgi/php/1254028559/
0910nobodyさん2010/12/16(木) 23:56:43ID:???
このspamがウザイんですけど、followしている奴はバカなの?


{キーワード}⇒ ***tweet[{SEOキーワード}]で検索された流行の
検索キーワードをつぶやいてますなう⇒http://*******.***/
気になったら拡散RT歓迎です
0911nobodyさん2010/12/17(金) 07:27:43ID:???
現在Win7用のデスクトップがジェットでクライアントを作ろうとしていて
JavaScriptで製作しているのですが
アクセストークン取得まではできていまして
そのトークンを元に「test」とつぶやこうとしているのですがうまく行かず困っています。

var Url = "http://api.twitter.com/1/statuses/update.xml";

var Consumer = "コンシューマキー";
var Nonce = "ランダム文字列";
var Timestamp = "タイムスタンプ";
var Token = "アクセストークン";
var Status = "test";
var ConsumerSecret = "コンシューマシークレット";
var TokenSecret = "アクセストークンシークレット";

var params = ""
params += "oauth_consumer_key=" + Consumer + "&";
params += "oauth_nonce=" + Nonce + "&";
params += "oauth_signature_method=HMAC-SHA1&";
params += "oauth_timestamp=" + Timestamp + "&";
params += "oauth_token=" + Token + "&"
params += "oauth_version=1.0&";
params += "status=" + Status;

var SignatureKey = ConsumerSecret + "&" + TokenSecret;
var SignatureBase = "POST&" + encodeURIComponent(URL) + "&" + encodeURIComponent(params);
var Signature = SignatureBaseを元に生成したシグネチャ

params += "&" + Signature;

というデータを作って
0912nobodyさん2010/12/17(金) 07:28:29ID:???
httpRequest.abort();
httpRequest.onreadystatechange = ResponseCheck;
httpRequest.open('POST', Url, true);
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpRequest.send(Signature);

でPOSTのリクエストを送信して

function ResponseCheck() {
if (httpRequest.readyState == 4 && httpRequest.status == 200) {
document.getElementById("txtresult").innerHTML = httpRequest.responseText;
}
}

という感じでレスポンスをtxtresultというテキストエリアに表示してpostできているか確認しようとしているのですが
httpRequest.statusが0で返ってきておりtxtresultには何も表示されず
ツイッター側でも何も投稿されていません
アクセストークン取得後のトークンを組み合わせたAPIの作成方法として上記のリクエストでは間違っているのでしょうか?

長文で失礼しました。
0913nobodyさん2010/12/17(金) 07:32:39ID:???
まず簡単な処理から始めて問題の切り分けしたら?
0914nobodyさん2010/12/17(金) 07:51:35ID:???
一応シグネチャの生成やタイムスタンプの生成などのOAuth関連の部分はトークン取得の所ですでにやっていまして
次にOAuthに対応したAPIの使い方を学ぼうと思いその組み合わせがいまいちわからなかったので調べつつ作っていて
「test」とpostするのが次の一番簡単な処理かと思い行おうとしたのですが
投稿用のAPIのクエリの作り方か
POSTリクエストの送信の作り方かのどちらかがダメなのだろうと思うのですがよくわからなくて

ちなみにGETでのリクエストでかつOAuthが必要ないパブリックTLは取得できています。
0915nobodyさん2010/12/17(金) 09:50:55ID:???
同じ内容を発信すると蹴られたりしない?
Java+Twitter4Jでテストした時にはそうなった。
もしかしたら、ライブラリ側で気を利かせてくれたのかもしれないけど。
「test」だけじゃなく、時刻等を入れて毎回ユニークにしてみては?
0916nobodyさん2010/12/17(金) 23:57:06ID:???
>>915
同じ内容が蹴られるのはAPIの仕様ですね
自分の場合はそもそも1度も発言されていないので
これとは関係ないですね
0917nobodyさん2010/12/18(土) 13:15:36ID:???
問題箇所は違うかもしれんが引数名は昇順にしなきゃいけないらしいから再配置してみ。
認証エラーってメッセすら出ないのならどっか他の問題な気もするけど。
0918nobodyさん2010/12/22(水) 01:59:50ID:???
ム板に行っても相手にされないだろうから、いつもお世話になってるここで怒りをぶちまけてもいいですか。

なんかみなさんピーチクパーチクやってるとこのリニューアル動画を見て唖然としたんですが、
ttp://twitter.com/newtwitter
最近のGoogle的な改悪がどんどん進んでいて止まる気配がないように思います。
視覚的な情報認識速度、無駄なマウス操作、そしてページのロード速度、
どれもこれも重くなる一方で、ハードウェアの性能が上がっても体感の不満は一向に解消されません。
このままいくと、(過去幾度も繰り返された如く)進化論的に間違った方向にいくような気がしてなりません。
心理学もわかってないようなデザイナーが大きな顔をするな!と言いたいのですが、
そういう言説はもはや息絶えたかのようにみえます。

まともな開発者に反旗をひるがえしてほしい。そして世界を快適なものにしてほしい。
・・・という業界外の人間の怒りでした。
いっそのこと業界に入って本気のテキストブラウザとか投下してやろうか・・・。
0919nobodyさん2010/12/22(水) 02:04:18ID:???
>>918
ブラウザでtwitterやらなければいい話。
俺は改悪だとは思わないけどね。
0920nobodyさん2010/12/22(水) 03:01:24ID:???
>>918
http://hibari.2ch.net/test/read.cgi/tech/1275891974/944-946
ム板の人はこのスレに解決策があるから誘導したのでしょう。
>>2-3を読んでTwitter botを使ってください。
0921nobodyさん2010/12/22(水) 07:49:09ID:???
一応マジレスしておくと、Twitterは中の人が
まともな開発者だからあのようなアーキテクチャになってる。
開発効率的にもセキュリティ的にも。UIは良くないけどな。
本気のテキストブラウザ(笑)とか、わかってないバカが言う事。
0922nobodyさん2010/12/22(水) 07:51:02ID:???
テキストブラウザは無駄なキーボード操作がなぁ
0923nobodyさん2010/12/22(水) 07:55:28ID:???
CLI全否定か
0924nobodyさん2010/12/22(水) 08:08:30ID:F+ly7TEk
>>918
文句行ってないで、作ってリリースすればいいじゃん。
需要あればビジネスチャンスだよ。
無いと思うけど。
0925nobodyさん2010/12/22(水) 10:12:53ID:???
だな。
なければ作る、で今まで技術は進歩してきた。
0926nobodyさん2010/12/22(水) 10:16:04ID:???
ああそうだ。ついっぷるではだめなんか。
あれならまだWEBより使い勝手よい方だと思うんだが。
0927nobodyさん2010/12/23(木) 19:59:14ID:???
>>912

>httpRequest.send(Signature); 


なんで、params自体は送信してないの?
シグニチャだけSendっておかしくね?
0928nobodyさん2010/12/24(金) 14:15:45ID:???
>>918
マルチかと思ったらマルチじゃないんだなw
マジレスするとお前みたいに思っていてTwitterクライアント作ってる人らたくさんいるだろすでに。ビジネスにしてる企業もある。

旧Twitterはそれらに比べて、非常にシンプルで導入に良かったが使いにくかった。
新Twitterは今までのTwitterクライアントにようやく追いついてきた。


ここはbotスレだし、こっちのスレの方がいいんじゃね?
Twitterクライアント総合スレ その8
http://hibari.2ch.net/test/read.cgi/software/1289589523/
0929nobodyさん2011/01/15(土) 12:20:09ID:???
すっかり寂れたな
0930nobodyさん2011/01/15(土) 13:42:13ID:???
PHPに限ってだけど、片方の掲示板はもはや機能してなくてスパムと宣伝と化しているし
制作者は別のことばかりでbotのことなんて忘れたかのよう
もう一つの方は時々機能しているけど、特に目新しい事はないからな
ネタ出し尽くした感じ?
0931nobodyさん2011/01/15(土) 14:46:42ID:???
片方って何の片方のこと言ってるんだ?
0932nobodyさん2011/01/15(土) 17:18:11ID:???
ちょこちょこdev.twitterのドキュメントが変わってるから、そんな話題でもすればいいのかもね。
0933nobodyさん2011/01/15(土) 19:25:15ID:???
IRCとかでその手の話題したいとは思うけれど
初心者の質問だらけになるのが目に見えててなかなかね。
twitterでも時々APIとか仕様がらみのことはつぶやいてるけどそればっかしゃべってらんないしなー
0934nobodyさん2011/01/15(土) 21:28:22ID:???
twittbot に複数アカウントで簡単に
切り替えてログインできるツールとかありますか?
0935nobodyさん2011/01/16(日) 00:49:48ID:???
cookieを別に保存すれば良いわけだから、ブラウザを使い分けたほうが楽じゃね。
0936nobodyさん2011/01/16(日) 00:59:17ID:???
Twitter4J、OAuthのやり方が変わったんだね。
0937nobodyさん2011/01/19(水) 07:46:32ID:???
ゴーストリプレイ5Ultimate Developer 売ります

定価の半分で売りたいと思います

興味ある方メールください
[email protected]
0938nobodyさん2011/01/26(水) 00:10:20ID:Fg687VBx
Easybotter用自動アンフォロー・リムーブスクリプトらしい。
http://asklife.info/archives/926
何かソースまるパクリの転載サイトらしいけど。
これ使ったらアカウントサスペンドされた。
0939nobodyさん2011/01/26(水) 00:50:51ID:???
>>938
これじゃない?

Twitterで許可しているのは、自動フォロー返し(フォローしてくれたユーザーをフォローする)のシステムのみです。「自動フォロー解除」システムも違反となります。
ttp://jptwitterhelp.blogspot.com/2010/05/blog-post_9657.html
0940nobodyさん2011/01/26(水) 00:59:09ID:???
自動フォローはありなのか。
どっちもダメかと思ってたからあとで自分のbotに組み込もう。
自動リムーブがアウトなら1日ごとに差分取ってメイン垢に告知すればいいかな。
0941nobodyさん2011/01/26(水) 01:55:09ID:???
akhk禁止は当然として、リムーブ返しはOKだといいんだけど。
0942nobodyさん2011/01/26(水) 11:32:18ID:???
むしろフォロー気楽にはずせるように自動リムーブのがbotにはあったほうが便利だな。
いちいち解除にブロックしてくださいとかめんどくさかろう。
0943nobodyさん2011/01/29(土) 23:38:04ID:???
なんかアプリが複数Suspendになって
仕方ないから作り直して認証し直したとたんにSuspendが解けた
なんだったんだろう
0944nobodyさん2011/01/30(日) 19:01:23ID:Dq98N61K
初心者の質問なのですが
PHPを使っていてTwitterのプログラムを書いています
ttp://www.sdn-project.net/labo/twitter_bot.html
このサイト様のサンプルを参考にしています。

タイムラインなどのデータをjson形式で取得して
($req->Bodyはかえって来たデータ)
$result = str_replace(":NULL,",':"NULL",',$req->Body);
と、文字列の置換えをしてからデコードをかけています。

これの処理はNullを置き換えることによって何をしているのでしょうか?
0945nobodyさん2011/01/31(月) 17:28:40ID:???
質問なのですが
最近botジェネレーターからキャラボットに移行したのですが、キャラボットのほうにはbotジェネレータにある“ランダム返信”のような機能はないのでしょうか?
説明下手ですみません。よければお答えよろしくお願いします。
0946nobodyさん2011/01/31(月) 17:39:40ID:???
>>945
キャラボのヘルプに載ってるよ
0947nobodyさん2011/02/01(火) 12:45:05ID:???
object(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(23) "Timestamp out of bounds"
}
って出たんですけど、どういう意味ですが
0948nobodyさん2011/02/01(火) 13:02:04ID:???
>>947
Timestamp out of bounds
0949nobodyさん2011/02/01(火) 13:20:04ID:???
>>948
時間がずれてるんですかね・・・直し方がわからないです
0950nobodyさん2011/02/03(木) 00:31:50ID:???
PHPのabraham's twitteroauth at master - GitHub を使っているのですが
statuses/showが取得できません

どなたかやり方をご存知ないですか
0951nobodyさん2011/02/04(金) 19:13:07ID:Ie8mmdih
twitterAPIの解説本でおすすめのを教えて欲しい
よろしくです
0952nobodyさん2011/02/04(金) 22:11:38ID:???
APIの解説本……?
公式マニュアルで十分だと思うけどねぇ。

と言っても英語だから、日本語訳してくれてるやつを見てるけど。

http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt
0953nobodyさん2011/02/05(土) 09:57:53ID:aRHbt/NZ
>>952
どうもありがとうございます、じっくり見させてもらいます
apiやbotで出来ることを確認したいんですが、

1)hoge.jpでフォームを用意する
2)そのサイトの訪問ユーザーが「本文(140文字以下)」「任意のキーワード(#xxxx)」
 「tweeterアカウント」をDBに登録(1のフォームから)
3)サイトのbotがデータベースから2の情報を引き出してtwitterにつぶやく
4)呟く期間は指定できる(これは自サーバ側で対処できるかな

こんなことが出来るんですか?
1つのbot=アカウントが1日に呟く回数は限定されてるんですか?
呟く間隔は制限があるんですか?

まとめwikiとかも読んだんですが、コードなど技術的なことが多くて
「それを使って出来ること」がいまいち載ってないもので。。
ごめんなさい、教えてもらえると嬉しです
0954nobodyさん2011/02/05(土) 09:59:37ID:???
聞く前に教えてもらった誤訳を全部見れよ
0955nobodyさん2011/02/05(土) 17:54:13ID:???
>>953
952だけど、日本語がわからない・・・

tweeterアカウントって造語も良くわからんし。
ある程度想像で言わせてもらうけど。

・ユーザはツイート内容をbotに登録する。
・ユーザはツイートする時間(間隔)を設定する。
・botは設定された時間ごとに登録された内容をツイートする。

これなら可能。というか、基本的な機能を使って、応用なしに構築できるはず。
>>954は突き放してるように見えるけど最もな意見で、一通りできることが機能別にまとめられているから、
まずは読んでみることを勧めるね。

で、twitterAPIだけ勉強しても、ほとんど意味がない。
その様子だと、ウェブ開発もやったことないみたいだね。

車の免許も持ってないのに、計器類の読み方を勉強しても、まぁほとんどの場合は意味がない。そういうこと。
0956nobodyさん2011/02/05(土) 23:28:29ID:???
技術的な話がわかんないんじゃ、おとなしく他人が作ったbot使ってろよ
0957nobodyさん2011/02/07(月) 20:13:36ID:???
テラワロスw
http://hato.2ch.net/test/read.cgi/news/1297052482/l50  
0958nobodyさん2011/02/09(水) 01:18:36ID:???
別にできるけど、それができないかもしれないと思う時点でもうちょっと勉強したほうがええとおもう。
0959nobodyさん2011/02/09(水) 20:52:13ID:/IuGgbit
勉強したぐらいじゃどうにもならんぞ
0960nobodyさん2011/02/09(水) 23:12:40ID:???
じゃあどうすればいいの?
0961nobodyさん2011/02/15(火) 17:31:40ID:???
API見てもわからんくらいの人なら
すでにソースが公開されているbotや一からbotの作り方書いてあるページが
たくさんあるんだから作ってみればいいんじゃないの

APIのドキュメントなんてリファレンスというか辞書みたいなもんだろ
0962nobodyさん2011/02/15(火) 17:33:10ID:???
間違った

> 作ってみる

動かしてみて、改造してみる

一から作らんでいいでしょ
0963nobodyさん2011/02/18(金) 04:38:36ID:???
botに「●●を翻訳して」って云うソースはどこかにありますか?
翻訳APIで〜と云う記述をよく見かけるんですが、
そもそもその時点で解らない場合は諦めるべきでしょうか…。
0964nobodyさん2011/02/18(金) 06:28:12ID:???
欲しがれば何でも与えられると思うなよ
0965nobodyさん2011/02/18(金) 19:10:26ID:???
普通に会話するBOTにプラス翻訳API使って翻訳結果付けてあげればいいだけでは?
0966nobodyさん2011/02/18(金) 20:41:55ID:???
どっかの翻訳エンジンに丸投げとか。
0967nobodyさん2011/02/26(土) 22:08:39.12ID:???
>>934
恥ずかしいくらい亀レスだけど
同時に複数のアカウントからツイートもできてTLもリプも見れるクライアント
http://ja.splitweet.com/
0968nobodyさん2011/03/05(土) 01:06:53.24ID:MrDXlcdf
tweepyでmentions.created_atで最新のbot宛のmentionの時刻取得しようとしてるんだけどなんか全く違う時間が表示されちゃう。どうすりゃ良いんだ(´Д` )
0969nobodyさん2011/03/05(土) 01:36:47.74ID:???
TimeZone?
0970nobodyさん2011/03/06(日) 12:12:07.26ID:???
こんにちは。質問があるのでお願いします。
只今EasyBotter非公式wikiを見ながらbotを製作中なのですが、なかなかbotからのフォロー返しが来ません。
wikiの通りにやっているのですが原因が分かりません……。
これはフォローを返すのに時間がかかっているということですか?
0971nobodyさん2011/03/06(日) 12:24:25.47ID:???
>>970
・bot自体は動いてる?(cronの設定ミスない?)
・投稿はOK?(OAuthの設定忘れない?)
・その他何かエラー出てない?

よく知らんけどありがちなのはこれ。
0972nobodyさん2011/03/06(日) 13:17:21.61ID:???
>>971
ご回答ありがとうございます。

今はEasyBotter非公式wikiの設置手順 手動実行編の
・自動フォロー返しを機能させよう
の所までしか作業が進んでいないのでcronについては何も設定していません。
この状態では非公式wikiに書いてある通りにフォロー返しされることはないのでしょうか?
ちなみにその前の部分の
・botへ話しかけてみる
・ランダムPOST
はちゃんとできました。

ただbot.phpにアクセスするとよく「Twitterへの投稿に失敗しました」と出ますが……
こちらは先程検索をかけた所、発言の重複により出ているものらしいので多分今回の質問内容とはあまり関係ないのではないかと思っています。
0973nobodyさん2011/03/06(日) 14:34:32.50ID:???
>>972
なるほど。POST出来るてことはOAuth設定も出来てるみたいね。
投稿失敗も重複の可能性が高い。
Wiki見たけどcronより先に手動でテストするから、cronの問題でもなさそう。

だとしたら気になるのはフォロー関係。フォロー返しの条件そろってる?
>自分の本アカウントと、aaa_bot互いにフォロー/フォロワー関係を解除して下さい。
が目立ってるから、そこだけ実行して、本アカウントからフォローしてないとか。
0974nobodyさん2011/03/06(日) 15:40:26.15ID:???
>>972
本アカウントではありませんが、サブの方からbotをフォローしました。
勿論自動フォロー返しのファイルをアップロードするまではサブもbotもお互いフォローしていませんでしたが……。
やはりbotからのフォロー返しが来るのには時間がかかるものなのでしょうか……
0975nobodyさん2011/03/06(日) 15:41:59.83ID:???
間違えました。さっきのは>>973宛てです
0976nobodyさん2011/03/06(日) 15:53:51.69ID:???
>>974
フォロー返しに時間はかからないです。
フォローされたときのメールは来るの時間かかるかもしれないけど。
となると原因が思いつかないですね(´・ω・`)
0977nobodyさん2011/03/07(月) 04:03:16.62ID:???
私の場合、旧APIのままにしてるbotはフォロー返しするけど
新APIにした方のbotはフォロー返ししなくなった。
そこしかいじってないからそこだろうなとは思うけど
そういう事例も聞かないし…と放置中。
0978nobodyさん2011/03/07(月) 20:53:09.19ID:???
>>976 >>977
どうもありがとうございます。そういうことがあるのですね……
とりあえずフォロー返しは手動を考えています。

そして今はcronの設定の所まで進めていますが、また質問があるのでよろしければご回答願います。
http://ko-lab.net/twitter/google-app-enginegae
こちらのサイト様を参考に11の部分まで来たのですが、Cron jobsを開くと
You have not created any scheduled tasks (cron jobs) for this application.
You can define cron jobs in cron.yaml (Python) or cron.xml (Java). Learn more about cron.
と出ます。

どうやら上手く動いていないみたいですが、考えられる原因は何かありますでしょうか?
0979nobodyさん2011/03/08(火) 10:48:02.53ID:???
>>978
Learn more about cron.
もっとcronの勉強をしてください。
0980nobodyさん2011/03/08(火) 11:40:22.24ID:???
Twitter4Jを使用しているbotで質問があります。
updateProfileImage()でアイコン変更をしますが、たまに反映されませんでした。
コールそのものでエラーは返ってこないので、「受理した」というステータスを返すだけで
実際に設定できたかどうかは無関係みたいですね。
そこで、1分の間をおいてgetProfileImageURL()で確認をして、違っていたらリトライ
をする様にしてみました。回数制限付きで。
すると、全回数の試行でファイル名(のユニーク部分)が一致しません。
つまりAPI上は「アイコン設定に失敗していて、今までのファイル名が返される」様に見えます。
が、この方式にしてからは反映漏れはありません。

とすると、成功しているのにリトライをする事でサーバにいらぬ負荷を掛けている事に
なりますが、もっとスマートにする方法はありますでしょうか?
0981nobodyさん2011/03/09(水) 01:48:39.97ID:???
via の後にオリジナルの名称使ってるbotって全部自分でプログラムしてるやつ?
0982nobodyさん2011/03/09(水) 08:22:34.40ID:???
OAuthのキーだけ書き換えてるんじゃないの
レス数が950を超えています。1000を超えると書き込みができなくなります。