【Twitter】 BOT製作支援スレat PHP
【Twitter】 BOT製作支援スレ - 暇つぶし2ch466:nobodyさん
09/12/08 15:57:36
土壇場(どたんば)
独擅場(どくせんじょう)
独壇場(どくだんじょう)

日本語って難しい

467:nobodyさん
09/12/08 16:19:53
独壇場と独擅場の違い
URLリンク(www.nhk.or.jp)
へえーAA略

GAEでcronがちゃんと動いてるのにリプライ拾わない事が多々ある
@で話しかけてから
Cron Jobsをチェック→on time successだがリプライ返さない・Logs見ても200
URLリンク(hogehoge.appspot.com)にアクセスすると
指定時間内のリプライないよと言われる
でもブラウザでphpにアクセスするとリプライをちゃんと返す
だが放置してるとちゃんと拾う時もある
もう自分では原因が分からん…

GAEはモノクロ2階調さんのを参考にJAVAで動かしてる
同じソースで作った他の定期ポストは絶好調なんだが
こうしたらいいんではとかあれば教えて下さい

468:nobodyさん
09/12/08 17:03:32
>>467
自分も同じ状況だ
GAEはタイムアウトの判定がシビアだから、
自分の鯖とGAEの距離が長すぎると駄目なのかもって意見をどこかで見た
ちなみに自分はロリポにPHPを置いたときは全くリプライが返ってこず、
@pagesに変えたら五割ぐらい返すようになった
あと、24時間以内に同じ内容は投稿できないからそれに引っ掛かってる可能性もなくはないか?

469:467
09/12/08 17:39:13
>>468
うーん同じ内容の投稿制限は引っ掛かってない筈。リプライの数は割と多めだし
それに同じ内容でも@Aさんと@Bさんに返すのは別投稿扱いだし

リプライ数がスクリプトを重くしてるからか?とも思ったんだが
30分定期ポストの方が長いくらいなのにそっちは成功してる
リプライ回す時間は5分だからそこまで無茶してるとも思えない
この差がわからないんだよなー
どっちも動きが悪かったら鯖が悪いんだと思えるんだけど…
たまにちゃんと返しまくる事もあるからphpも悪くない…筈w

以前cron-jobでやってた時に@pagesが重くてさくらに変更して
今はそのままさくらで使ってるんだが…一度動かない奴だけでも鯖変えてみるよ
ありがとう

470:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/08 20:06:19
>>450
使うとしたらchasen + nkf

471:nobodyさん
09/12/08 23:27:44
今日の午前中くらいまでは正常に動いていたのに
夕方くらいから急にGAEで失敗続きになってしまった・・・

Twitter本家も無関係の人のTLが流れたりしてるみたいだし
何かサーバーの調子が悪いんかな?
他にもGAE使ってて同じような人居る??

472:nobodyさん
09/12/09 00:06:04
ノシ
もう全無視よりいいやとcronjobも並行してみたが
結局どっちも動き悪い
閲覧はクライアント使ってるけど昨日くらいからAPIエラーも多発してるし
細かい鯖落ちも頻発してるみたい

473:nobodyさん
09/12/09 02:56:14
GAEでやってる人Dashboardのグラフどうなってる?
30分定期ポストのは0から0.004の間でvvvvvvvvvて感じなんだが
動きの悪い5分のリプライの方は0.004あたりでずっとまっすぐなんだ
時間の幅が大きいからかと思ったが以前テスト用に作った2分定期のはvvvvだった
まっすぐなのはずっと処理が終わってないってことなのかね…
でもリプも返す時は返すしその時もグラフはまっすぐなんだがw

474:nobodyさん
09/12/09 09:31:03
同じく0~0.04くらいでVVVVVVだな
昨日はいきなり0.013くらいまでハネ上がった時間帯があったが

475:nobodyさん
09/12/09 12:48:01
cronjob本当に動き悪いな
1時間1回にセットして10時間経過見てたけど1回しか動かない

476:nobodyさん
09/12/09 15:10:48
cron-jobの動きが悪いからWebCron.orgに移行考えてるんだけど
支払いとかではトラブルになった事はない?
海外サービスはその辺りがどうも不安

477:nobodyさん
09/12/09 15:39:23
話を切って悪いんだけど相談させてください。
botが完成してあとはIDを取るだけなんだけど既に他の人が自分と全く同
じbotを作ってた。
でも、その人はIDだけ取っておいてbotは全く動かしていない状態なんだ
けど、こういう場合はどうしたらいいんだろう。
気にせず自分のbotを上げていいのかな・・・

478:nobodyさん
09/12/09 15:48:28
>>477
微妙にスレ違いだと思うけど
同人板にTwitterスレあるからそっちで聞いたほうがいいかも
そっちでもたまにbotの話題になってるから。

他の、例えば天気予報や占い等の否キャラbotなら気にしないでいいと思う

479:nobodyさん
09/12/09 16:09:54
ごめん、478の最初のほうは「キャラbotなら」という前提の話しです

480:nobodyさん
09/12/09 17:26:34
>>477
別にいいんじゃないの?
俺もキャラbot作っててその状況なったことあるけど(しかも後者)
別にそのまま気にせずやってるなぁ
キャラbotでも複数あるキャラとかあるし
それぞれに面白みがあればいいんでないかな

481:nobodyさん
09/12/09 17:38:38
>>477
内容ダダ被りとかでなければいいんじゃないの?
自分も某キャラのbot作ってるけど、友人も同じキャラのbot作ってる
性格がだいぶ違う設定になっているのでフォロワーさんは自分の好みの方を
選んでフォローしてる感じ
実際に「○○のbot見つけたけど下ネタが多くて無理、
もうひとつ違うのがあったからこっちフォローした!」っていう呟きも見たしさ

482:nobodyさん
09/12/09 20:10:44
>○○○Servlet.javaって作ってるよね?
それの ○○○ を書くはず。↓
<cronentries>
<cron>
<url>/○○○</url>
<description>crontest the run every 2 minutes</description>
<schedule>every 2 minutes</schedule>
<timezone>Asia/Tokyo</timezone>
</cron>
</cronentries>

<url>/○○○</url> のとこに○○○Servlet.javaの○○○入れて
デプロイしてみたらon time Successになるもののツイートできない。
文字化けしてるからコードも見てみたけどUTF-8になってる。
かれこれ5時間ぐらい弄ってるけど何がなんだかさっぱりわからないorz

483:nobodyさん
09/12/10 01:10:25
自鯖の人は少数なのかな

484:nobodyさん
09/12/10 02:10:48
鯖は立ててないけど自前のPCでやってるよ
PHPさえインストールしてりゃWSHかなんかで自動実行できるしね

485:nobodyさん
09/12/10 03:22:04
GAEで30分に1回呟くcronを動かしてて、
慣れてきたからリプライにも反応するように新しくphpを用意したんです。
んでもって新しいアプリケーションと2分間隔で回るファイルを作りました。
いざデプロイしたら元の30分の方まで2分間隔で回るようになって、
しかもリプライの方がひとっことも話しません。
何がいけないのか自分にはさっぱりわからないので知恵をお貸しくださいorz

486:nobodyさん
09/12/10 03:23:40
GAEを使わない

487:nobodyさん
09/12/10 05:14:39
動かないって人は本体が最近バグ出てるしよく落ちるし
今は様子見の方がよくないか?
明らかなエラーとかでない限り

今まで動いてたやつも動かなくなったりしてる中で
原因特定するのは難しいと思う

488:nobodyさん
09/12/10 06:43:46
コナミキャラってやばいの?今作ってるのそれなんだが…

489:nobodyさん
09/12/10 11:25:00
そなの?俺コナミキャライパーイフォローしてるが

490:nobodyさん
09/12/10 12:04:00
姉ヶ崎作ってた人がサイトに誘導の上寄付を募ってた?らしい
そのコンテンツとかは消された
自分も言われて見にいった口なのでよく知ってる人フォローよろ
でもまだbotは消されてないから大丈夫じゃね?

491:nobodyさん
09/12/10 14:59:50
すみません、質問させてください。
Phaさんのサイトを見てbotを作ったんですが、反応しません。
鯖はロリポ、cronはGoogleのエンジンを使ってます。

質問を箇条書きにしてみました。
色々ググってみたけど、途方にくれたのでお知恵を拝借できると助かります。

・Eclipseを使ってアップロードしたんですが、左側のprojectexplorerにある
作ったcronアイコンにバツが付いている。これはどこかで記述ミスをしたものかどうか。

・Google App engineでfavicon.icoがどうのと書かれてます。そのアイコンをまず
どこに設置すればいいのか、そしてapp.yamlは何処に設置するものなのか。
自分で作るのか、作成した元のcronの中に突っ込むのか。そのファイル自体はcronの中には
ありません。

・EclipseでcronServlet.javaの編集の際、プログラムを指定するURLを書くんですが
これは複数のphpファイルを,で区切ってhttp://から指定して書くものなのか。

以上です。
よろしくお願いします。どうにも動いてくれないので…

492:nobodyさん
09/12/10 15:47:36
basic auth廃止とな(´・ω・`)

493:nobodyさん
09/12/10 16:36:58
TwitBot Clubってどうなんだろう
手軽でいいとは思うけどGAEからBAN喰らったら閉鎖とか書いてあるから怖い

494:nobodyさん
09/12/10 16:46:59
TwitBot Clubでぐぐってみたら自動bot作成サービスみたいな感じ?
こんなんでライトユーザのbot乱発したら最近ただでさえ鯖不調なのにサーバの負担厳しくないかな。

495:nobodyさん
09/12/10 16:49:39
自分がGAEでcron動かすとき参考にした記事にも、
このやり方はBANされるかもって書いてたなあ
botのフォロワーが増えてからBANされたら途方に暮れそうだgkbr

496:nobodyさん
09/12/10 18:50:25
ちょっと勉強して自分でプログラム組んだら?
cron jobでも全然問題ないぞ。

phaさんとこのに頼ってる人は有料cronに手を出したりGAEでBANされたり大変そうだな。

497:nobodyさん
09/12/10 19:07:35
cron-job、10分ぐらい時間ずれてない?今朝から。
0分にpostさせてるBOTが10~15分辺りに反応してて。
設定し直したけど直らないんだよなー。

498:nobodyさん
09/12/11 06:19:55
>496
少しずつphp勉強してるんだけどphaさんのスクリプトよりbardothodolさんのcurl使うやり方のが軽いのかな?
自分で一から作る力はまだ全然ないからそれならセリフの生成のところだけ入れ替えて書きかえたい
496は全部自作してるん? phaさんのスクリプトの何が問題なん?

499:nobodyさん
09/12/11 09:06:57
cron job問題ないか?
ここ3日ほど経過見てるけど1回しかまともに動いてない
勝手に切られてたりするし駄目だろこれ…

500:nobodyさん
09/12/11 09:44:28
cron-job確かに10分くらいズレてる
昨日なんかは一応稼働するにはしてたみたいだけど
今日はまた失敗続きだ…

501:nobodyさん
09/12/11 12:29:55
>>498
まあ軽いっちゃ軽い。最低限の処理だしな。
でもphaさんとこで使ってるNet_Twitter自体もやってることはそんな大差ないから
今のサーバマシンでわかるほどの差はでんと思う。
496じゃないけど俺は自作してる。Net_Twitterも最低限のAPIしかないし。

502:nobodyさん
09/12/11 14:15:56
自分はbotの発言でTLが埋まってしまうのを考慮して(いろんなキャラbotをフォローしてるだろうし)、定期発言3時間に1回で設定してる。
cronはcron jobだけど、一度も失敗したことないし、勝手にオフになることもない。

リプライとTLに反応するプログラムは、2分おきにアクセスするようにcron jobで設定してるけど、こっちはたまに勝手にオフになる。
けどPhaさんとこのスクリプトじゃないから、多少遅れても全レスするし問題ないかなと思ってる。

503:nobodyさん
09/12/11 14:31:45
cron jobで登録日からずっと1時間に1回でリプ無の定期ツイット試運転してるけど、
今のところ60回中1回しか動いてないし勝手にオフにもなる。
もちろんBOTが手動で動くのは確認済。

cron jobってどうやったらちゃんと動くの?
Phaさんとこのスクリプトだから駄目なのかな
一応今PHP勉強して自分でも組んでるけど今ちゃんと動いてる人に聞きたい

504:nobodyさん
09/12/11 16:51:50
主な原因としては
・Cron-jobが重い
・twitterが重い
・BOTのスクリプトが重い
・BOTのスクリプトの出力サイズが大きい(大きいと送受信に時間がかかる)
・BOT鯖が重い(無料や激安な鯖は顕著)
・タイムアウトにひっかかる

505:nobodyさん
09/12/11 17:07:21
いくらなんでも60回に1回とか動かなさ過ぎだろ
スクリプトが無駄に大きくってるんじゃないか?
>>504の指摘点をもっかい見直せ

506:nobodyさん
09/12/11 17:27:22
今30分に1回定期postするプログラムと
0時、6時、12時、18時に指定した日付までのカウントダウンをpostするプログラムの2つ登録してるけど
前者は一度も失敗してないし勝手にneinになったこともない
後者だけ毎回8時(向こうの鯖が日付変わる時間)になるとneinになりやすい、あと失敗もしやすいみたい
プログラム自体はどっちもbardothodolさんとこの参考にcurlで使うやり方なんだけど…

507:nobodyさん
09/12/11 19:34:47
cronjob.de使ってる人いますか?
最多でも5分間隔しか設定できないけど勝手に止まることはないみたい
ただ、今借りてる鯖じゃ設定できなさそうでした
翻訳サイトにかけて日本語でおkな文章を解読するにサーバー直下にcronjob_*****.html(*****は指定された数字)ってファイルが必要なのかなと思ったんですが
アドレスが向こうの希望通りには設置できないんです

508:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/11 19:50:35 lt7fGhiK
サイトのメンテナンスでwikiの位置が変更になりました。
URLリンク(knowledge.ddo.jp)
に変更です。手間くって申し訳ないです。
ポータルサイトも立ち上げる予定なので、それなりに生暖かく見守ってやってください。


509:nobodyさん
09/12/11 19:57:16
うちは2分に一回、自作スクリプトを自鯖(窓)のcronNTで叩いてるけど、
getもpostも問題なさげ
Services_Twitter使用

510:nobodyさん
09/12/12 01:20:53
マルコフはやくー

511:nobodyさん
09/12/12 01:31:28
そこまで他人に頼るとどれもこれも似たようなことしか言わないBOTにしかなんないぞ。

512:nobodyさん
09/12/12 10:36:34
PHPとPECL OAuthライブラリを使ってAPIを叩いています。

APIの仕様書を見ていると、アクセストークンを設定した時に、レスポンスとしてユーザIDとスクリーン名が返ってくるとのことでした。
それらを使用したいと考えているのですが、どうにも取得が出来ません。(setTokenしたあとに、getLashResponseを呼んでみたり)

どうにかそのレスポンスを得る方法は無いのでしょうか。もしくは、そのレスポンスを取得出来るPHPで使用可能なOAuthライブラリは無いでしょうか。

513:nobodyさん
09/12/12 22:01:18
@のない呟きに反応するbotって作れるのかな
つかれたー!って人におつかれって言ってあげるようなことなんだけど
@がないとどうにもわからん・・・。

514:nobodyさん
09/12/12 22:16:59
登録した人のタイムラインを参照して同じことすればいいのでは?

515:nobodyさん
09/12/12 22:36:56
やってみた たぶんいける
でもあれなんだよね、他の人への@も読みこんじゃうと思うんだよね

516:nobodyさん
09/12/12 22:50:50
他の人への@があったら処理しないようにすればいいのでは?

517:nobodyさん
09/12/13 01:34:10
>>516
かまってくれてありがとうw
他人への@に、てかすべての@に反応しないように書いてたんだけど
\@があったら弾くようにしたはずなのにうまく回らない
細かいミスでHP削られたので今日はもう寝ます、ありがとう

518:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/13 02:14:06 B1fOU/ii
>>517
@ってエスケープ必須でしたっけ?(in PHP

519:503
09/12/13 09:41:31
いろいろ検証したけど鯖の問題かもしれない…

・Cron-jobが重い
 他の人は動いてるから重くは無いんだと思う
・twitterが重い
 少し前は変だったけど今は変な挙動もしてない
・BOTのスクリプトが重い
 phaさんのpost_random.phpのスクリプトそのままだから大丈夫なはず
・BOTのスクリプトの出力サイズが大きい(大きいと送受信に時間がかかる)
 最大全角35文字だから大きくないと思う
・BOT鯖が重い(無料や激安な鯖は顕著)
 @pagesだから分からない ただ手動でアクセスした時は必ず動く
・タイムアウトにひっかかる
 検証の仕方が分からない

@pagesにアクセス解析付のHTML置いて、そこで呼び出したけどCron-jobのアクセスは無かった
どこか有料だけど安いレン鯖でも借りた方がいいのかな…
オススメはロリポ?

520:nobodyさん
09/12/13 09:56:28
流れぶった切って申し訳ないけど、発言などをさせるphpファイルが
投稿出来ずにエラーになるのは何でだろう?
ブラウザ上で確認しただけなんだが、ただ一言ERRORって出るだけなんだ…
service_twitterの本体プログラム自体はエラー出てない
勿論パスワードもIDも間違ってないんだ…何でだ…orz

521:nobodyさん
09/12/13 10:10:26
どのphpファイル使ってて何をしてどういうエラーが出たのかさっぱりわからん。

522:nobodyさん
09/12/13 10:12:25
あと間違ってない、って主観の判断はどうでもいい(そう思ってて間違ってることもよくある)から
やったことや、ソースをそのまま貼ったほうが原因は特定しやすい。

523:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/13 10:20:09 B1fOU/ii
>>520
ソースうpきぼん

524:nobodyさん
09/12/13 11:03:50
最近よくいる糞コテはなんなの

525:nobodyさん
09/12/13 11:41:51
何もしてない奴よりなんぼか形にしてる奴のがましよ。
NG登録は簡単なんだし気になるならあぼーんしときゃいいさ。


526:520
09/12/13 14:04:45
言い捨てるような形になってしまってごめん
ソース元は銀さんのとこで、ご本人が説明されている環境をそのまま使用してる
設置サーバーもやり方も全く同じ
Twitter.phpにアクセスすると真っ白な画面にになり、ランダムに呟かせるphpファイル
(例えばbot.php)にアクセスすると、白い画面に一文字「ERROR」の文字が出る

↓ソース

527:520
09/12/13 14:10:31
ソース載せると規制に引っかかってしまうんだorz

//d.hatena.ne.jp/silverbot/20090829#c1260572663

ここのページのソース丸コピペ、フルパス、ID、パス、台詞だけ違う状態


528:nobodyさん
09/12/13 15:03:18
>520
試してないが
if(! $st->setUpdate($post) ){
die('ERROR');
辺りを消したらちゃんとしたエラー吐かないかな?

529:nobodyさん
09/12/13 15:46:35
定期postのBOTに過去10回分と同じポストかどうかを判断して
違ったらポストって機能を加えたいんだけど、ログの書き込みがうまくいかない。

log.txtをfgetsで配列aに読み込み→変数bと違うか判断→違ったら変数bポスト→
配列aの[1]~[9]と今ポストした変数bをfor文でlog.txtにfputsしてるだけなのに。
読み込みパターンをw、a、r+どれにしたらいいんだろう?

色々試したけど追加書き込みされたりポストしたばかりのだけになったりする。
rで配列Aに読み込み→wで全消し→aで書き込みするしかないのかな?
そもそもこんな機能いらない?

530:nobodyさん
09/12/13 16:33:37
ついにできた^0^/
GoogleにでもUPするかな

531:nobodyさん
09/12/13 18:15:45
>>529
まず言語は?

532:nobodyさん
09/12/13 18:34:07
>>531
PHPです
今一応出来たけどログとの比較の部分で審査でタイムアウトする時があるから見てください

<?php
include_once 'フルパス';

//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);

$filename2 = "log.txt";
$fp2 = fopen($filename2,'r+');
flock($fp2, LOCK_EX);
for($i = 0;!feof($fp2);$i++){
$log[$i] = fgets($fp2);
}
fclose($fp2);

533:nobodyさん
09/12/13 18:37:38
//ポスト選定と審査
$key = array_rand($plist);
$ok = 2;

while($ok >= 1){
$key = array_rand($plist);
for($a = 0; $a < $i; $a++){
if($plist[$key] == $log[$a]){
$ok = 1;
}
}
if($ok <> 1){
$ok = 0;
}
}

$post = $plist[$key];

//ログ書き込み
$fp2 = fopen($filename2,'w');
flock($fp2, LOCK_EX);
fputs($fp2,$plist[$key]);
for($i = 0;$i <= 8;$i++){
fputs($fp2,$log[$i]);
}
fclose($fp2);

534:nobodyさん
09/12/13 18:40:36
Service_Twitter設定は銀さんのここと一緒
URLリンク(d.hatena.ne.jp)

タイムアウトするのはこの部分 $plist[$key] == $log[$a]
ログはツイッター本家と同じく上が新しいものになるようにしてる
最近勉強始めたばかりなので見難いかもしれないけどお願いします

535:520
09/12/13 19:44:53
>>528
反応ありがとう!
試しに


if(! $st->setUpdate($post) ){

die('ERROR');

}
を抜いてやってみたら、ただの白いページが出た…
そんでもって投稿はされてない
あるとERRORになってないとシカトって一体どういう…???

536:nobodyさん
09/12/13 23:02:07
>>532
ログの保存の仕方はわからないけど改行コードは入れてる?
少なくとも末尾に \n 加えないとPOSTがつながって見えるぞ。書き込みモードはwでいい。

$fp2 = fopen($filename2,'w');
flock($fp2, LOCK_EX);
fputs($fp2,$plist[$key] . "\n");
for($i = 0;$i < 9;$i++){//8になってたけど9だよね?
fputs($fp2,$log[$i] . "\n");
}
fclose($fp2);


以下おせっかい

常識的に考えたら面倒なwhileじゃなくてforeach使うだろ
あとif($ok <> 1)の処理がよくわからん。
1じゃなかったら0にするんだったら最初から0にしておけばいいと思うが

$key = array_rand($plist);
$ok = 0;//最初から0にしておく

foreach($log as $logs){//$logの配列が$logsに入ってforeachループ内では$logsに配列の添え字([2]とか)がいらなくなる
if($logs == $plist[$key]){
$ok = 1
break;//同じPOSTが1つでもあったらPOSTしないと勝手に解釈
}
}

2chに書きこむ用のコードだと思うがいろいろなとこ抜けてて心配だ

537:nobodyさん
09/12/13 23:35:20
>>534
の銀さんのBOTの作り方見てたけど結構ひどいな。
Services_Twitterを今後使うと見せかけて、リプライとかは全く関係ない別のソースを使ってる。
PHP触ったばかりかもしれないから仕方ないけど。

538:nobodyさん
09/12/14 00:25:34
>537
銀さんとこのは全部他のとこの記事のコピペだよ
リプライと定時のソースはそれぞれ違う人から持ってきてるんだから
関係なくて当たり前

539:nobodyさん
09/12/14 00:29:22
>>536
すみません、書き忘れてました。
plist.txtに\nが入ってるのでfile()の処理で改行コードまで配列に入れているようです。
そのためlog.txtはちゃんと改行されて見えてました。ありがとうございます。

foreach文を知らなかったので後でググってみます。
while以下の処理は、同じ文があったらもう一度array_rand()してfor文で回して再審査、
同じ文が無かったらwhileから抜けるとしたかったのでこうしました。

初期値が$ok = 0だとwhileにすら入らず抜けてしまい、
whileの条件を$ok == 0にすると、今度は同じ文があった時にwhileから抜けてしまうため、
初期値は$ok = 2、同じ文章があれば$ok = 1にしてwhileからやりなおし、
同じ文がなかったら$ok = 0 にしてwhile抜けてポストにしました。

貼り付けたソースは定期ポストほぼ全文ママです。
foreach文なら大丈夫でしょうか?いいやり方があれば教えていただきたいです。

540:nobodyさん
09/12/14 01:04:19
>>539
タイムアウトするのはtwitterの鯖なのか、botを動かしている鯖なのか、どっちですか?
twitterだったら鯖が重いかtwitterにPOSTするスクリプト(botとしての機能じゃない方)が悪い。
botを動かしている鯖なら鯖変えるとか。


と、ここまで書いてから気づいたけど

if($plist[$key] == $log[$a])

文字列で==はちゃんとした判定はできないから

if($plist[$key] === $log[$a])

===じゃないとだめだよ。

541:nobodyさん
09/12/14 08:12:41
>>540
ごめん俺よくわかってないかもしれんが
同じ文字列型同士で == じゃ問題ある場合ってあったっけ?

542:nobodyさん
09/12/14 10:38:45
>>541
同じ文字列型でも数値型で比較される場合があるから、
文字列で比較する場合はなるべく===を使った方がいいってことじゃない?

543:nobodyさん
09/12/14 11:10:23
>>542
文字列型同士の比較なら==でも===でも値は一緒な気はしたんだけどそういうことあるの?
例えばどういう場合だろ。

544:nobodyさん
09/12/14 11:55:04
銀さんのbotを参考に製作中だけど、
cronがうまく動かない。
「zu groß」って容量大きすぎってこと?どうすればいいの?

545:nobodyさん
09/12/14 12:11:03
>>544
状況の情報が少なすぎる
kwsk

546:nobodyさん
09/12/14 13:07:35
>>544
cron-job.orgなら「zu gro?」になってても
botの動き的には正常稼働されてるはずだから気にすんな

547:nobodyさん
09/12/14 15:22:27 h7BWhtMh
自動フォロー返しだけやりたいんだけどbotとか初心者なんです。
どうやってやるんですか?

548:nobodyさん
09/12/14 15:28:22
BOTというかプログラム初心者?
それだとまずPHPスレとか見て基本覚えたほうがいいんじゃないかな。

549:nobodyさん
09/12/14 15:49:04 h7BWhtMh
>>548 そうですか・・・初心者なんですけど、やりたいのはフォロー返しだけなんで言われるようにすればできるとは思うんだけど、
そういう紹介サイト的なのがあったらいいんだけど。ってそんな簡単じゃないですよね。
PHPスレものぞいてみます。

550:nobodyさん
09/12/14 16:25:45
びっくりするほど他力本願だな。

551:nobodyさん
09/12/14 16:27:31 h7BWhtMh
>>550 そうなんです~。。。昔twitterには自動フォロー機能ついててよかったけど・・・今はフォロワー管理が大変。
プログラムとか難しいことはさけてフォロー返しだけできたらいいと考えてる愚か者ですw

552:nobodyさん
09/12/14 16:32:36
>>551
そんなに面倒臭がってるならフォロー返しなんかやらなきゃいいだけのこと

553:nobodyさん
09/12/14 17:10:33 h7BWhtMh
>>552 いやいや、めんどくさくは無いんですよ。ただプログラムの根本からまともに勉強始めたら数ヶ月かかるでしょ!?
何ヶ月もPC画面に縛り付けられるほどの時間がないだけ。
3日程度ならいいけど。

554:nobodyさん
09/12/14 17:11:57
・・・それをめんどくさいって言うんだよ


555:nobodyさん
09/12/14 17:16:59
>>543
ググったら見つかったけど
URLリンク(logic.stepserver.jp)

とりあえず試してみたのがこれ
URLリンク(codepad.org)

上3つはちゃんと動いてるけど下3つはちゃんと動いてないね

556:nobodyさん
09/12/14 17:27:12
URLリンク(jp.php.net)
公式マニュアルに全部書いてある

557:nobodyさん
09/12/14 17:29:44
>>553
いいサイト教えてやるよ
URLリンク(www.google.co.jp)

このサイトで検索すればtwitterAPIの仕様から各言語の利用方法まで詳細に載ってるサイトを検索できるよ。
自動フォロー機能ってのも検索してみれば出てくるんじゃないかな?

558:nobodyさん
09/12/14 17:49:50 h7BWhtMh
>>555 ありがとう。この文字をコピーしてどこに貼り付けたらいいのかな?・・・


559:nobodyさん
09/12/14 17:53:07
おいお前ら、もう構ってやるなよ…真性だぜ

560:nobodyさん
09/12/14 17:54:48
>>558
おでこ

561:nobodyさん
09/12/14 17:58:01 h7BWhtMh
>>560 おでことは?

562:nobodyさん
09/12/14 17:59:54 h7BWhtMh
URLリンク(lil.la) これ、インストールしてさっきの文字を貼り付けてみたけどダメだった・・・

563:nobodyさん
09/12/14 18:01:48 h7BWhtMh
あとURLリンク(d.hatena.ne.jp) この人が1番まとも書いてくれてるようなんだけど、
この文字を結局どこへ貼り付けたらいいか書いてないからよく分からん。

564:nobodyさん
09/12/14 18:07:01 h7BWhtMh
URLリンク(www.tweetmanager.com) ←これにも登録してオートフォローとかを有効にしたつもりではいるんだけど、変化なしです。 

565:nobodyさん
09/12/14 18:09:35
初心者の人は銀さんのbotを参考にするといいと思う。

昨日からbot作りはじめたけど
postさせるところまではできたよ。


>>546ありがとう。気にしないことにして次の手順頑張る。

566:nobodyさん
09/12/14 18:16:20
がんばれ><

567:nobodyさん
09/12/14 18:17:31 h7BWhtMh
銀さんのbotはどこから読めば?一番初めはただのガタガタの文字しかのってないし・・・

568:nobodyさん
09/12/14 18:18:25 h7BWhtMh
URLリンク(www.tweetmanager.com) ←ってかこれって違うの?

569:nobodyさん
09/12/14 18:25:19
もう死ねよ

570:nobodyさん
09/12/14 18:27:26
URLリンク(d.hatena.ne.jp)

↑銀次さんのやつ。
リンク貼るくらいしかできないけど頑張れー!
サーバの用意とかpostさせる手順1とか、トラックバックのとこに色々あるから。

571:nobodyさん
09/12/14 18:30:34
>>569
da ma re


572:nobodyさん
09/12/14 18:30:54
あ、やりたいのはフォロー返しなのか・・・
お役に立てなかったかも。。ごめん

573:nobodyさん
09/12/14 18:55:50 h7BWhtMh
いえいえ、教えてくれた方ありがとう!!ゆっくり銀さんのを読んでみますね。参考になります。

574:nobodyさん
09/12/14 19:05:13
PHPでキャラbotのソース書いてるんだが、いまいち分からないところが出てきた

リプライで「A」に反応して「Bをつくりますか?」とか「B入りますか?」 みたいに返したい
つまり「BC」という2つの変わる部分が欲しいといえばいいのだろうか
B=食べ物名
C=つくりますか?、入りますか? のような文
というふうにしたい
今のところのソースが下の状態
//前略////
$mesi=array("ごはん",
"パン",);
//中略/////
if(preg_match("/はらぺ|はらへ|腹減/u",$com) > 0){
$key = array_rand($mesi);
$post = $mesi[$key];
$return =$reply_name." おなかすいたんですか? じゃ、".$post."はどうですか?";
}
//後略////

もうどこをどういじればいいのかわからなくなってきた/(^o^)\
$return =~以降を増やせばいいのかもしれないが、どうやって追加すればいいのか分からないんだ
だれか助けてくれ

575:nobodyさん
09/12/14 19:18:30
>>574
はい。
returnは予約語なはずだから使わないようにね


<?php
$reply_name = "@screen_name ";

//前略////

$mesi=array("ごはん","パン");

//中略/////

$com = "はらへった";

if(preg_match("/(はらぺ|はらへ|腹減)/u",$com,$m) > 0){
$key = array_rand($mesi);
$post = $mesi[$key];
$returns =$reply_name . " おなかすいたんですか? じゃ、" . $post . "はどうですか?<br>";
echo $returns;
}


?>

576:nobodyさん
09/12/14 19:34:18
UZEEEEEEEEEEEEEEEEE

577:529
09/12/14 20:21:19
>>540
ありがとうございます!とりあえず===にしました

エラーはFatal error: Maximum execution time of 8 seconds exceeded in…というエラーが時々出ます。
鯖とツイッターどちらでタイムアウトしているかは分かりません。
とりあえず今set_time_limitで指定しましたが今は結果待ちです。

cron-jobが全く動いてくれないのもこのせいでしょうか?
今日の昼に毎日毎時0分に叩くよう設定しましたが1回も動いてくれません…。
@pagesとcron-jobで動いている人は沢山いるようなのでコツがあるのでしょうか?
Aktiv?はちゃんとjaにしています。


578:529
09/12/14 20:28:28
577訂正
@pagesではset_time_limitが使えませんでした…

579:543
09/12/14 21:33:06
>>555
うーん。変数の型が違うと暗黙の型変換が行われるから===を使うべきってのはわかってるんだ。
また同じことを言っちゃうけど、「同じ型の場合」に == と === で何が違うの?て話なんだ。

もちろん、値が保障されない場合も考えて===を使う「べき」ってのはわかるし
コーディングするときはもちろんそうするだろうけど
型が同一の場合にも==だとなんか問題あるのかなって確認したかったんだ。
特になさげかな。

580:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/14 22:07:50
経験上言わせていただきますが、`の処理には気をつけてくださいね…冷や汗をかきました。

今現在@windymeltanにmaximaプラグインを積んでいます。数式処理のテスト中です。
@windymeltan maxima:2+4;
のように書いてテストしていただいて結構です。
乱筆しました。失礼。

581:nobodyさん
09/12/14 22:59:49
うん、はしょりすぎて何を言いたいのかわからない。

582:nobodyさん
09/12/15 00:07:48
>>577
毎時0分はたくさんの方が設定していると思われます。
処理内容にもよりますが、ジャストタイムが不要ならば13分とか、48分とかの
中途半端な時間に設定した方が良いかもしれませんね。
1分とかだとサーバーがまだ0分のヤツを処理してたりしてw

583:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/15 00:43:48
>>581
PHPのバッククォートはきちんとエスケープしませう。というお話でした。

584:nobodyさん
09/12/15 08:40:01
>>1

twitter
なぜナウやnawではなく「なう」なのか

URLリンク(d.hatena.ne.jp)



585:nobodyさん
09/12/15 09:44:33
>>584
マルチ乙

586:nobodyさん
09/12/15 10:00:25
>>584
なんでアチコチに貼ってんの?
記事の内容も、典型的な同属嫌悪だし。

587:nobodyさん
09/12/15 11:12:56
ネガキャンしたきゃ愚痴スレででもやるべきだな。

588:nobodyさん
09/12/15 14:13:06
CRONが叩きに来てないのか、叩きに来たけどタイムアウトしたのかどうやったら分かる?
PHP呼び出すHTML作ってアクセス解析付けたけど何もログが残ってない

589:nobodyさん
09/12/15 14:15:37
>>588
CRONサーバー側のログを見る。

590:nobodyさん
09/12/15 14:31:21
phaさんのスクリプトでランダムポストしてるんだけど、
10ツイート/day程度の頻度で、ポスト候補のテキストパターンは100近く仕込んであるのに
やたら同じのばかり選ばれるみたいで、ポストが飛んでしまうことがよくある。
cronも安定してるし他の挙動には問題ないので、この状態がすごく気になる…
どうにか回避する方法はないでしょうか。

591:nobodyさん
09/12/15 15:41:37
ランダムで選ばれたテキストパターンが
自分の発言最新10件と一致しなければpostする様にするとか

592:nobodyさん
09/12/15 15:49:39
GAEでCRONの某記事の人がPC上で動かすCRON?みたいなの作ったみたいだな

593:nobodyさん
09/12/15 16:21:43
>>589
cron-jobにそんなログ見れるページあったっけ?

594:nobodyさん
09/12/15 16:22:37
>>593
ない

595:nobodyさん
09/12/15 16:23:26
>>591
529が作ってたから入れてみたけどタイムアウトになって駄目

596:nobodyさん
09/12/15 16:24:36
>>594
だったら八方塞がりだな…
他の人は動かない原因どうやって突き止めてるんだ

597:nobodyさん
09/12/15 18:10:54
>>595
//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);
$results = 0;//重複判定用

//キーに該当するポストとログが同じか調べる
foreach($log as $logs){
if($logs === $plist[$key]){//ログと重複した場合
$results=1;//重複している
break;//重複しているのでforeachから抜ける
}
}

if($results==0){//$resultsが0すなわち過去10件と重複してない場合
$post=$plist[$key];//ポストする文にする
}

これでどうだ

598:nobodyさん
09/12/15 18:37:19
芸能人の非公式botってどうなんだろう

599:nobodyさん
09/12/15 19:31:57
>>598
それいったら、キャラクターの非公式botだって…

600:nobodyさん
09/12/15 19:35:48
>>599
全然違うだろ…

601:nobodyさん
09/12/15 20:07:07
>>597
被ってたらポストしないじゃなくて
>>529>>539で言ってたみたいにもう一度array_randしないと
結局ポストせず終わるから駄目じゃないか?

それするとタイムアウトするみたいだけど

602:nobodyさん
09/12/15 20:15:04
・ポストリストとログ読み込み
・ポストリストからランダムにポストする文を選ぶ
・ログと被ってないか判断
・被ってたら選び直し
・最新ポスト追加した最新10ポストのログ再作成
・ポスト

>>529はこれだけ入れたソース作ったみたいだけど
確かに判定入れるならこれだけやらないと意味ないんだよね…

別プログラムでリプライとか入れてるならそっちも含めたログにすると理想的

603:nobodyさん
09/12/15 20:33:24
選び直しを入れてるからタイムアウトになるんだろ


604:nobodyさん
09/12/15 20:43:17
選び直し入れないと判定そのものの存在意義がなくなる
ちゃんとポストするために入れてるんじゃないの?
結局ポスト出来ないなら判定もログ保存もツイッターがしてくれるからいらないよ

605:nobodyさん
09/12/15 23:59:15
cron-jobが動いてくれないよ~;0;
botがまったく無反応になってしまった・・・

606:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/16 00:14:04 CexvtTFs
maximaと連携させるプラグイン作りましたが誰も使わないですよね…¬
URLリンク(knowledge.ddo.jp)

607:nobodyさん
09/12/16 00:59:49
>>601
//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);

//キーに該当するポストとログが同じか調べる
foreach($log as $logs){
if($logs === $plist[$key]){//ログと重複した場合
$key=array_rand($plist);//もう一度探す
continue;//foreachに戻る
}
}

$post=$plist[$key];//ポストする文にする


こうか

608:nobodyさん
09/12/16 01:08:08
foreach($log as $logs){
これは・・・ゴクリ

609:nobodyさん
09/12/16 01:11:00
ちなみにそれ重複が判明した以降の$logsしか判定しないぞ

610:nobodyさん
09/12/16 01:34:58
>>609
ばれなきゃいいと思ってたけど指摘されたか。

//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);
$i=0

//キーに該当するポストとログが同じか調べる
while($i<10){
if($log[$i] === $plist[$key]){//ログと重複した場合
$key=array_rand($plist);//もう一度探す
$i = 0;//$logのキーを元に戻す
continue;//whileに戻る
}
$i++;//$logのキーを1つ進める
}

$post=$plist[$key];//ポストする文にする

何度もすまん。けっきょくwhileに戻ったな。
@pagesみたいな鯖じゃなくてもっといい鯖使えばいいのにとか思ったり。

611:nobodyさん
09/12/16 01:54:02
俺だったら
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

$key = array_rand($plist);
$log_slice = array_slice($log, 0, 10);

while (in_array($plist[$key], $log_slice)) {
$key = array_rand($plist);
}

$post = $plist[$key];

//do~whileでもいいけど

612:nobodyさん
09/12/16 10:29:53
foreach($log as $logs){
↑これって配列をつくって並べてる、であってる?
まずいの?
phaさんのこれじゃね?

613:nobodyさん
09/12/16 10:44:25
こうじゃね?
あと改行削るべきだし、できたらファイル読み込みとかにエラーチェック入れたいが。

$filename = "plist.txt";
$filename2 = "log.txt";

$plist = @file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$log = @file($filename2, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$plist_uniq = array_diff($plist, array_slice($log, 0, 10)); //重複しない候補

$post = $plist_uniq[array_rand($plist_uniq)];




614:nobodyさん
09/12/16 10:45:55
あ、テスト用に追加してた@はなくてもいいやむしろ取ったほうがいい。
エラー出さなくするものだから。

615:nobodyさん
09/12/16 11:02:27
ログが常に最新10件である事前提だな…
xmlで取って来れないものか
そうしたら最新10件のログを作成する部分だけはいらなくなる

616:nobodyさん
09/12/16 11:06:29
え?どういうこと?

617:nobodyさん
09/12/16 11:13:08
あー他の部分見てなかったけどこれAPIからのログは読んでないわけか。
まあいんじゃね。
ていうかxmlでもjsonでもAPI叩けば拾ってこれるし。

618:nobodyさん
09/12/16 11:35:25 GKFzjgHo
タロット占いできるキャラbotを作りたいんですが、
botというかPHP初心者で取っ掛かりが分かりません。
スクリプトがあまり重くなると困るので、
タロットの結果を書いたxmlを作って「占って」とリプライされたら
そのつどタロットのxmlを読み込んで結果をランダムに出力するとか可能ですか?
それともみなさん、
$tarot=array("",""......);
とかでやってるんでしょうか・・・?

619:nobodyさん
09/12/16 12:20:23
>>613
ログ生成を追記モードでやってる場合は下の方が最新ログになるから
ログ読み取りの部分と被ってない部分の抽出はこうじゃ駄目かな

//ログ読み取りの部分
$filename2 = "log.txt";
$fp2 = fopen($filename2,'r+');
flock($fp2, LOCK_EX);
for($i = 0;!feof($fp2);$i++){
  $log[$i] = fgets($fp2);
}
fclose($fp2);

//被ってない部分の抽出
$plist_uniq = array_diff($plist, array_slice($log, $i-10, $i));

上から10個が最新ってログ作成の時にやりにくいしタイムアウトの一因になると思う。
ただfgetsの時はどうやって空行と改行文字飛ばせばいいか分からないし
array_slice使ったこと無いから位置指定に変数が使えるかどうか試してない。

配列の最後のキーを簡単に取得できる方法があったらごめん

620:nobodyさん
09/12/16 14:11:14
>>619
そこで行数カウントしなくても
$plist_uniq = array_diff($plist, reverse(array_slice($log,0,10)) );
reverseで逆転すればいいだけだし
要素数カウントするなら別に $i = count($log) ;みたいなこともできる。

621:nobodyさん
09/12/16 14:14:05
あー、こっちのが楽か。
$plist_uniq = array_diff($plist, array_slice($log,-10) );


622:nobodyさん
09/12/16 23:19:30 j0jV78ZZ
URLリンク(www.kc-c.biz.)
ここにヒントが...

623:nobodyさん
09/12/17 01:12:23
ただの宣伝じゃねーか。

624:nobodyさん
09/12/17 21:45:44
自動フォロー返しのときにDM送ろうとしてるんだが
そのDMのメッセージ内容に相手のname(screen_nameじゃない方)を使いたいときどうすればいい?

625:nobodyさん
09/12/17 22:32:36
TL取得すると一緒についてくると思うけど

626:nobodyさん
09/12/18 00:57:26
そのものnameって値で入ってるっしょ。

627:nobodyさん
09/12/18 19:37:19
フォローにTLは取得しない
フォローイングとフォロワーのAPIでname取得できなくね?

628:nobodyさん
09/12/18 19:42:38
取得すればいいのでわ?

629:nobodyさん
09/12/18 20:11:26
TL上で俄かにOAuthで認証するのが流行り出した。
クライアント名を変えられるのが人気らしいですね。
使ってますか?
私はまだベーシック認証ですが。

630:nobodyさん
09/12/18 21:22:41
すみませんだれか知恵をお貸しください。
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画面ではちゃんと書き込みができるのようでもう何が何やらさっぱりです。
申し訳ございませんが誰かご教授いただけると嬉しいです。

631:630
09/12/18 21:30:49
すみません630です。
何故か今、回復してしまいました
サーバーの調子が悪かったのでしょうか・・・
スレ汚してしまい本当にすみません


632:nobodyさん
09/12/18 22:56:43
>>631
そういう時はできるだけ詳細を書いておけば後続者の役に立つと思うからまだ見ていたら覚えといてくれ。

633:nobodyさん
09/12/18 23:08:00
自分もphaさんのを利用させてもらってるんだけど、
返すリプライによって画像を変えたい場合ってどうしたらいいんですかね?
他の方のプログラムだとみつけたんだけどphaさんのって発言はテキストファイルで他の人とちょっと勝手が違うからよくわからないです…

634:nobodyさん
09/12/19 00:14:49
phpを勉強して折衷したプログラムを作ればいい

635:nobodyさん
09/12/19 00:32:47
フォローしてない人の発言を特定のキーワードで検索、取得するにはどうすれば良いのでしょうか…

636:nobodyさん
09/12/19 01:02:08
URLリンク(search.twitter.com)
URLリンク(pcod.no-ip.org)
URLリンク(buzztter.com)

このあたりがRSS吐いてるから適当に解析するよろし。

637:nobodyさん
09/12/19 02:33:57
>>636
Thanx a lot!

638:nobodyさん
09/12/19 07:18:16
>>629
ベーシック認証が廃止になるから
URLリンク(twitter.com)

639:nobodyさん
09/12/19 11:42:19
>>638
ついーたーが言ってるだけじゃなあ。
URLもRT用の無駄URLだしソース元ないん?

640:nobodyさん
09/12/19 14:52:54
URLリンク(jp.techcrunch.com)
URLリンク(apiwiki.twitter.com)

641:nobodyさん
09/12/19 17:58:05
corn-job.orgの動作が不安定なため、GAEでcronを動かしたいと思っています
自分なりに色いろやってみたのですが、どうしてもうまくいかないので相談させてください。
URLリンク(d89.s41.xrea.com)
こちらをを参考に、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)


642:nobodyさん
09/12/19 18:26:07
>>641
まず、ml115を買ってくる



643:nobodyさん
09/12/19 18:42:27
>>642
自分で鯖を立てることができるならこんなことで悩んだりしません
意地悪ですね

644:nobodyさん
09/12/19 19:51:19
できるようになればいいじゃん

645:nobodyさん
09/12/19 19:52:17
鯖立てしなくても24時間PCつけっぱなしにしてブラウザ自動リロードにしておけばいいだけ

646:nobodyさん
09/12/19 19:56:18
リロードなんかしなくてもJavaScriptじゃだめなのか

647:nobodyさん
09/12/19 19:57:39
>>643
まぁ、やってみなよ、おもしろいから。
DDNSとかで
セキュリティ??知らんがな(´・ω・`)

メールとかいろいろ遊べるし

648:nobodyさん
09/12/20 16:24:25
>>641
同じようなとこで躓いた経験があります。yamlファイルの記述に問題があったようです。
そこのサイトで紹介しているyamlファイルのテキストをブラウザからコピペしたもの
ではなく、そのサイトからリンクされているページで紹介されている
ソースコードをコピペしてやってみると幸せになれるかもしれません。
違っていましたらあしからず。

649:nobodyさん
09/12/20 20:43:29
>>648
おおおおお仰る通りにしてみたら成功しました!幸せになれました
本当にありがとうございました

650:nobodyさん
09/12/20 23:25:31
ベーシック認証が廃止になったら、phaさんのスクリプトとかも動かなくなんの

651:nobodyさん
09/12/21 00:24:06
>>650
OAuthに対応しなきゃ動かなくなるわな

652:nobodyさん
09/12/21 00:32:05
OAuthはまだいいよ。
できなくなったら対策考えればいい。

ググればいくらでも出てくるからな。
ググらないのは甘え

653:nobodyさん
09/12/21 00:51:02
OAuth導入できたんだけどAPIが上手く使いこなせない
慣れるの大変だなまた

これで他人のソース丸コピペBot量産厨が減るといいけどwww

654:nobodyさん
09/12/21 00:53:31
PHPでOAuth使おうと思ったがサンプルはcurlしか使えないんだな。
もっとましな方法はないのか…

655:nobodyさん
09/12/21 00:58:00
ラッパーの自作ライブラリはさんでるから対応さえしときゃなんとでもなりそうだ。

656:nobodyさん
09/12/21 10:45:51
ていうか今までもcurl使ってたと思ったがましな方法って例えば何だ。

657:nobodyさん
09/12/21 12:58:32
phaさんので使われてる日本語版Services_Twitterはcurl使ってない
URLリンク(d.hatena.ne.jp)

658:nobodyさん
09/12/21 14:12:31
そこのURLでも言ってるがcurlそんなダメか?

659:nobodyさん
09/12/21 21:17:30
curlは認知度が低い
わざわざ使わなくてもHttp_Requestがある
curlの仕様自体が変態

660:nobodyさん
09/12/21 22:25:00
curlを使ってたとこはHttp_Requestが何故か使えないから仕方なく使ってたみたいだが

661:nobodyさん
09/12/22 04:53:06
>>659
fsockopenなんて遅いしそれだったらcurlでいいやと思ってる

662:nobodyさん
09/12/23 02:57:59
流れを読まずにcronの代わりを考えてみたんだけど、htmlの自動更新のタグ使って代わりにできないかな?
htmlのページにフレームかなんかでphp埋め込んで、そのページを延々更新し続けるとcron使わなくても動くんじゃない?
自分はめんどくさくてそんなことせずにcronくんでるんだけど誰かcronわからなくてhtmlの知識持ってる人は試してみてほしい
24時間ずっとブラウザ立ち上げてなきゃいけないけど

うーん、やっぱり駄目かな。アホなこと考えてごめん

663:nobodyさん
09/12/23 03:35:15
別にいいんじゃない?
自分が起きる時間にBOTは起きて自分が寝る時間にBOTは寝る感じで

664:nobodyさん
09/12/23 11:48:56
>>662
考えたことあった
ただ>>663が言うように常にPCを上げておかなきゃいけないからね
それが問題にならないbotなら出来ると思うよ

665:nobodyさん
09/12/23 11:58:43
windowsならタスクでなんでだめなの?

666:nobodyさん
09/12/23 11:59:24
てかMETAタグで自動更新するくらいならJavaScript使えばいいのでは?

667:nobodyさん
09/12/23 12:32:05
>>666
前提が「cronは分からないけどhtmlならできる」だから
htmlのが敷居低いんでないの?

668:nobodyさん
09/12/23 14:35:27
タグ一行で済むのをわざわざJavaScriptで書く必要はないわな。

669:nobodyさん
09/12/23 16:50:10
htmlやJavaScriptでわざわざ書かなくてもOperaに自動更新ツールついてるし

670:nobodyさん
09/12/23 21:40:03
ブラウザに依存してる方がめんどくさいだろ。

671:nobodyさん
09/12/24 14:59:33
URLリンク(twittbot.net)

このボットジェネレーターが結構使えると思うんだがどう?

672:nobodyさん
09/12/24 16:16:13
その手のは突然サービス終了したらと思うと怖くて使えない

673:nobodyさん
09/12/24 16:32:20
別に終了してもいいじゃん。
どうせtwitterなんて流行り物だし、使い続けるようなものでもないでしょ

674:nobodyさん
09/12/24 23:28:41
すいません、流れを読まずに質問。
reply_pattern.phpの中身の反応させる言葉なんですけど、
複数の単語がある場合に反応する方法はありますか?
たとえば、「ごちそうさま。おいしかった」と@貰ったら
「お粗末さま。おいしくて何より」といった返答をするように、
「ごちそうさま」と「おいしい」の2つの単語がある場合に、
用意した言葉を返答するという感じ。

「ごちそうさま」だけに反応させるものもあるので、二つの言葉がある
場合に、反応する正規表現を教えて下さい。

675:nobodyさん
09/12/24 23:29:34
>>674
URLリンク(www.mnet.ne.jp)

676:nobodyさん
09/12/24 23:43:40
>>675
 明日(ぼく|わたし)は帰宅します
これか!これだな!ありがとう!!助かった。感謝します。

677:674
09/12/24 23:59:04
あれ、どうやら違うようでした…。自分の頭はサル以下なのか

678:nobodyさん
09/12/25 01:06:33
ごちそうさま.*おいしかった

だけでいんじゃね

679:nobodyさん
09/12/25 01:08:50
おいしかった。ごちそうさま。
だったら?

680:674
09/12/25 02:20:44
>>678
それだと「ごちそうさま」だけの@に反応しなくなる
また、 おいしかった.*ごちそうさま
だと、「おいしかった」に反応してしまうんだ…

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

「おいしかった。ごちそうさま。」ってきっちり@もらって
反応させるしか方法はないのかな…

681:nobodyさん
09/12/25 02:24:57
2つif使えば?

682:nobodyさん
09/12/25 02:38:50
「おいしい」じゃ「おいしかった」は引っかからないのでは?


683:674
09/12/25 02:53:24
>>681
if?初心者なものですまんがわかるように解説してくれ…
ちなみに「プログラミングができなくても作れるTwitter botの作り方」を
参考にしてphpいじってる。 URLリンク(pha22.net)
タグはこんなかんじで

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

>>682
ああ!微妙に単語を変えればいいのか…? なるほど
2つの単語同時指定っていうのが無ければ、そうする。ありがとう

684:nobodyさん
09/12/25 03:13:29
プログラム分からないでやる意味が分からん。分かるようになれよ

685:nobodyさん
09/12/25 03:20:06
ていうか正規表現のURL貼ってくれてんだからそれ読もうよ。
すごい基本的なこと聞いてるからそれもわかんないんじゃ今後似たような質問だらけになるぞ。

686:nobodyさん
09/12/25 08:40:21
phaさんのスクリプト使わせてもらってるが
反応する単語増やしたらタイムアウトしやすくなってきた
.*を多用しすぎたのが良くなかったのか?

ファイルサイズを小さくできる(タイムアウトしにくい)表記とか
あったら教えて欲しい

687:nobodyさん
09/12/25 10:26:04
>>674
「ごちそうさま」だけでいいならそれだけ書いておけば「おいしかった」があってもなくても引っかかる
「おいしかった」の有無で反応を変えたいなら分けて書けばいい
PHP云々以前の問題だと思うよ

688:nobodyさん
09/12/25 14:08:55
質問の時のテンプレあるといいのかね?

689:nobodyさん
09/12/25 20:40:14 yLGH+OzA
phpでbot作ってて、APIのmentions.xmlを取得してるんだけど
curlで取得してsimplexml_load_stringで読むことはわかるけど
このままforeachでループすると同じものを何回も繰り返して
二重にも三重にも実行されることになってしまうがどうしたらそれを回避できる?

690:nobodyさん
09/12/25 21:03:01
意味が分からん。ループすべき処理にはforeachをかけて、すべきでない処理にはかけなければいいのでは?

691:689
09/12/25 21:18:19 yLGH+OzA
>>690
いや、そこんとこの処理をどうするか考えてる
ループを実行するたびにファイルにでもidを記録して
ループを回す度にチェックして重複してたら実行しないようにすればいいんだろうけど
それだとすごく時間かかる

692:nobodyさん
09/12/25 21:24:49
ランダム発言でもしてて発言が重複しないようにしたいわけ?
それなら上のほうで同じような話が出てるよ


693:689
09/12/25 21:55:28 yLGH+OzA
>>692
そうじゃない、xmlから拾うときに前拾ったのを拾わないようにするにはどうしたらいい?

694:nobodyさん
09/12/25 22:01:38
>>693
なんらかの方法でマークしておけよ。
xml取得時に日時で絞っておくとか、IDを記録しておくとか、、、

695:689
09/12/25 22:07:51 yLGH+OzA
>>694
日時で絞るなんて機能あった?
IDを記録しておく方法だと
ファイルに記録すると読み込み時間かかるし、ファイルの中身を消すタイミングもめんどくさいし
データベースでも同じ

696:689
09/12/25 22:16:08 yLGH+OzA
ああ、取得した最新のidをファイルに記録しといて今度取得するときsince_idパラメータを指定すればいいのか

697:nobodyさん
09/12/25 22:42:30
>>696
日時でもなんでもやり方はあるぞ
言っちゃ悪いがそれくらい分かれ

あとsageろ

698:nobodyさん
09/12/26 00:09:15
なんか無駄に長くて要点わかりにくいんだけど
要するに重複しないステータスを取得したいってことでいいんかね。
まあ>>696でいいんだろうけどAPI叩いて連続で取得したんなら
ステータスIDをキーにした配列に格納しなおして重複避けたり
読み終わったIDを保存しといてそれは除外するなり手はあると思うが。

699:nobodyさん
09/12/26 00:30:52
どうせ2分とかの間隔で取得するんだから、
00:26:01に起動 → 00:24:00~00:25:59のステータスが有効
00:28:02に起動 → 00:26:00~00:27:59のステータスが有効
という感じでやってる。
mentions取得できなかったら?そんなの無視。

700:nobodyさん
09/12/26 00:36:35
時間で指定できるのもあったよね確か

701:nobodyさん
09/12/26 02:55:24
sinceは廃止される引数だったと思う。
since_id max_id を使って欲しいんだろう。

702:nobodyさん
09/12/26 14:39:10
BOTで投稿したときに「APIから」と表示されてしまうのですが、
これを偽装する手段ってありませんか?

703:nobodyさん
09/12/26 14:40:46
OAuth認証にすれば自由にできる

704:nobodyさん
09/12/26 14:49:04
>703
ありがとうございます。
調べてみます

705:nobodyさん
09/12/27 05:06:54
GAEのcron.xmlで、「毎日○時~○時の間のみ○分間隔で実行する」という設定は可能ですか?
<schedule>の書式とにらめっこしたけど調べた範囲では分からなかった…

706:nobodyさん
09/12/27 08:49:06
>>705
○分間隔にしといてBOT側で時間の対応をする

707:nobodyさん
09/12/27 11:31:22
>>705 その後、どうですか?

708:nobodyさん
09/12/27 23:04:05
FileQっていう月99円のレン鯖はcron無制限だよ。実際に自分のbotで試したらちゃんと動いた。

709:nobodyさん
09/12/28 05:11:09
皆さんbotのプログラミング言語は何を使っているんですか?

710:nobodyさん
09/12/28 07:37:01
過去ログ読め



BOTの為だけに鯖借りるのはなんかなーとは思う

711:nobodyさん
09/12/28 08:14:48
無料鯖借りればいいじゃん

712:nobodyさん
09/12/28 11:10:23
自鯖立てればいいじゃん。

713:nobodyさん
09/12/28 11:34:53
自分で書き込めばいいじゃん。

714:nobodyさん
09/12/28 12:16:36
cron使える無料サーバーなんてあるのか?
FileQが多分一番安いし一分間隔でcron使えるし

715:nobodyさん
09/12/28 12:28:27
>>713
それボットじゃねーwww

FileQ試してみたけどスゲーな
安定して1分間隔でcron動く
1年1180円だしこれでいいんじゃね?

716:nobodyさん
09/12/28 19:59:23
rep2置いたらジエンにつかえるじゃん

717:nobodyさん
09/12/28 21:38:58
名詞や動詞を組み合わせて発言するボットを作ってる人多いけど、文意がおかしな事になってるじゃん。
もっとちゃんと作ったらいいじゃん。

718:nobodyさん
09/12/28 22:10:42
>>715
FileQは操作に慣れるのに時間がかかる。
慣れるまでが問題かな。


719:nobodyさん
09/12/29 01:24:34
URLリンク(d.hatena.ne.jp)
ここを参考にTL上の単語に反応させてるんですが、サーバーを@PAGESからFileQに移動したら
Fatal error: Call to undefined function curl_init() in /home/~~~.php on line 27
というエラーが出るんですが、これってこのサーバーではcurlが使えないってことですよね?
curlを使わない方法でTL上の単語に反応させる方法とかありますか?
それともcurlが使えるサーバーを探すべきか…

720:nobodyさん
09/12/29 01:34:48
>>717
マルコフ連鎖とかいうのを実装して作るんだけど、あくまで「文と文のつながり」を記憶できるだけであって、文意の解析までは辿りつけてないよ。
発言ごとに辞書引いて意味を覚えるとか面白いとは思うけど、労力が足りないんじゃないかな。

721:nobodyさん
09/12/29 03:33:58
cronはwindowsでもできたはず・・・
URLリンク(www.bitfolge.de)

722:nobodyさん
09/12/29 05:41:41
>>717
>>720だし、マルコフじゃなく自分である程度の文章のつながりを作るのもできんこともないけど
すげーめんどくさいか、すげー少ないバリエーションになってしまう。
あれはああいうカオスな発言を楽しむもんだと思ってる。

伺かみたいな文章として成り立ってるのを作るにはあれみたいに
一文ごとにデータ作ってやんないといけないしな。
チャットのbotでそういうの作ろうとしたけど飽きて投げた。
品詞の分類だけじゃなく活用まで考えて作るのすげーめんどせーよ。

723:nobodyさん
09/12/29 15:46:23
>>719
APIでタイムライン上の発言を配列に突っ込んでforeachで一つづつ検索していくとか

724:nobodyさん
09/12/29 17:12:26
FileQでcron試してみた。
一分間隔で動くように設定して60分放置。
結果54回動いた。

725:nobodyさん
09/12/30 00:13:07
>>722
たしかに、マトモなボット作るなら膨大な量の辞書データがいるね

726:nobodyさん
09/12/30 01:23:09
もしかしてcron-jobおかしい?垢削除祭か?
今日の夜から突然動かなくなったんで確認したら綺麗に消されてた
他にも消された奴いる?

727:nobodyさん
09/12/30 02:04:50
>726
消された

cron-job、jaになってても1日中botが沈黙とかここ何日かで急になったんだけど
他に同じひといないかな

上にあるFileQ試してみたいんだけどcronでわからなくなってる
Commandにhttp~じゃだめなのか…

728:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/30 02:49:38
Cron-job互換サービスを立ち上げてみたいのですが、結構高性能なサーバーでないと不可能でしょうか?
日本語で使えるサービスが有れば便利だと思うのですが。

729:nobodyさん
09/12/30 03:51:14
毎分動かすとなると、それなりに負荷がかかることになるから安い共用鯖じゃ無理
海外の安いVPSを借りてみるとか

730:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/30 05:48:21
>>729
自宅鯖です。
model name : Mobile Intel(R) Pentium(R) 4 - M CPU 1.80GHz
memory:512MB

731:nobodyさん
09/12/30 06:06:15
oauth使ってると思われるbotが止まったの、アプリのAPIがサスペンデッドになってると思われ。

732:nobodyさん
09/12/30 09:30:58 ScDpW0+E
cron-job消された。
別のメールアドレスで再登録しようと思ったけどダメ。
FileQもよくわからないしめんどくさいなぁ。

733:nobodyさん
09/12/30 11:11:49
垢BANされた人はとりあえず応急処置としてパソコン立ち上げっぱなしでブラウザ自動更新しておいたほうがいいね

734:nobodyさん
09/12/30 11:25:59
>>726です
あの後別のメールアドレスで再登録して
URLも登録し直したけど大体大丈夫っぽい
たまに動かないけど一時間に一回のボットだからそんな問題ないって感じ
今日から帰省だからその間に止まってたら困るな
やっぱり有料のサーバ借りてやるしかないのか
単なる趣味にしか過ぎないしボットのためにお金注ぐのもなんだかねー。
GAEも検討したけど色々面倒だお
設定に何十時間も掛ったと聞くけど最新のOSでもそう?
あんまりパソコン立ち上げる時間無いからちょっと躊躇してるんだ

735:nobodyさん
09/12/30 12:48:47
>>727
コマンドにはhttp://じゃなく
/home/******/public_html/*****.php

と、実行したいファイルのディレクトリを書けばいけるはず。


736:nobodyさん
09/12/30 13:29:29
>>735
727です。ありがとう!やってみます

737:nobodyさん
09/12/30 13:43:24
>>736
動かなかったら教えてちょ

738:nobodyさん
09/12/30 13:50:50
cronを毎分使いたいならやっぱり有料鯖借りないとダメなのかな~

739:nobodyさん
09/12/30 13:53:47
俺の借りてる鯖のcron使って君タチのボット動かしてあげようか????

740:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/30 14:20:02
>>739
それ、今からやるところですよwww
webからセットアップできるcronのフロントエンドをphpで自作しているので完成次第公開します。

741:nobodyさん
09/12/30 15:37:46
わっふるわっふる

742:nobodyさん
09/12/30 15:55:25
わっふるわっふる

743:nobodyさん
09/12/30 16:14:07
わっふるわっふる

744:nobodyさん
09/12/30 17:12:51 tKJERMBp
735です。
FileQでのcronの動かし方を間違えてレスしてました。
正しいコマンドはこうです。
これは僕の例ですが、index.phpにボットのプログラムを書きpublic_htmlフォルダにアップしました。
*****の部分はアカウント名です。

/usr/local/bin/php /home/*****/public_html/index.php

まず
/usr/local/bin/php
と入力し、半角スペースを入れてから動かしたいファイルの/home/から始まるパスを入力します。

745:nobodyさん
09/12/30 21:48:07
FileQ使ってるけど
php /home/ユーザー名/public_html/PHPの入ってるディレクトリ名/ファイル名.php
cd /home/ユーザー名/www/PHPの入ってるディレクトリ名; /usr/local/bin/php ファイル名.php
の2通り試してみたらどっちも同じように動いてるよ

746:nobodyさん
09/12/30 22:03:34
↑はコマンド欄に直で入力ね

747:nobodyさん
09/12/30 23:40:14
>>744
>>745

取り合えずcron動くのならおk

748:nobodyさん
09/12/31 00:57:09
URLリンク(www.youtube.com)
URLリンク(www.youtube.com)
オリンピックフィギュアスケートのメダルを左右する重要なポイント
URLリンク(plaza.rakuten.co.jp)
wrong edgeに付いて
URLリンク(plaza.rakuten.co.jp)


749:nobodyさん
09/12/31 06:14:13
FileQにPHPをアップしてもエラーが出る…。
他のサーバにアップしたPHP(FileQにアップしたものと中身は同じ)は問題なく動くのに。

750:nobodyさん
09/12/31 09:04:58
>>749
どのフォルダにアップした?
FFFTPとかのアップローダー使った?

751:nobodyさん
10/01/01 09:53:36
>>749
サイトからコピペしたときによくあたるんだけど、、文字エンコーディング関連でエラーが出る事がある。
¥がそのままの時はバックスラッシュに変換してみて。linux環境での実話。
SJISをviで読み込ませたら¥記号のままでエスケープできずに狂ったことがあった。
FedoraはUTF8だったので
:%s/¥/\\/g
:set fileencoding=utf8
で保存し直した。

752:nobodyさん
10/01/01 11:29:43
>>750
アップローダー(CyberDuck)を使って、パブリック_htmlへアップロードした。


>>751
うーん見た感じ\とかエンコードとかは大丈夫みたいなんだが…。でも返信ありがとう。

753:nobodyさん
10/01/01 15:27:24
>>752
エラーの文をコピペしてみれ
スクリプトの記述ミスがいけないのか、文字化けなのか、そもそもそこのサーバーのPHPで使えない関数が含まれてるのか

754:nobodyさん
10/01/01 23:15:29
今のcronの主流は

・cron-job消された!手間かけるの面倒!
→FileQ

・cron-job消された!手間をかけるのは厭わない
→GAE

・そもそもcron-job使ってません^^
→自鯖とか各自の鯖のcron

・cron?なにそれこわい
→PC起動したまま延々とリロード

かな?

755:nobodyさん
10/01/02 19:48:02
PC起動したまま延々リロードしたときの電気代と月々の鯖代はどっちがかかるんだろう…

756:nobodyさん
10/01/03 00:06:15
cronjob.deがあるじゃん

757:nobodyさん
10/01/03 05:35:49
GAEでいろいろやってみたがland.toと@pagesは安定してるね
zeroweb(happy888.net)だと、うまく時間内にキャッチできてない→反応しない
昔から借りてる某レンタル鯖は反応するけどその後2回ほどreplyしてしまうし
鯖によって本当にマチマチ…
ちなみにどの間隔も変わらない感じした

758:nobodyさん
10/01/03 10:03:12
FileQにうpした際に出るエラー

Fatal error: Call to undefined function curl_init() in /home/tre666/public_html/***/***.php on line 46

46行目は $ch = curl_init();
やっぱcurlが使えないってことでおk?

759:nobodyさん
10/01/03 10:04:31
アカウント名消し忘れたwww まいっか

760:nobodyさん
10/01/03 10:11:34
そう
curl未対応だな。FileQは

761:nobodyさん
10/01/03 13:37:31
URLリンク(twitter.com)
トレ君か よろしく

762:nobodyさん
10/01/03 15:48:44
cron job、アカウント云々じゃなくてサービスのサーバー自体がおかしいみたい
今朝、持ってる全てのアカウントが消されてて別のメアドでアカウント取ったんだが、新しいcronを設定する端から消されて行くw
アカウント取れたからには個人を特定されて弾かれてる訳ではないだろうし
BOT本体だけでなく、30分に一回フォロー用phpを回すだけのアカウントも消されていたのもそのせいかも

763:nobodyさん
10/01/03 18:45:10
>>761
変な汗でた よろしくお願いします

FileQを諦めるかwebcronにするか自力で設定するか…
1日数回の定時postはwebcronにしてたんだけど、リプライはさすがに消費量が激しいので無理だな


764:nobodyさん
10/01/03 21:45:57
TL反応のプログラムをcron(サーバーのを使用)で動かそうとしたらこんなエラーメールが届きました
Warning: simplexml_load_string(): Entity: line 1: parser error : Space required after the Public Identifier in /home/***/public_html/***/***.php on line 34

Warning: simplexml_load_string(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /home/***/public_html/***/***.php on line 34

Warning: simplexml_load_string(): ^ in /home/***/public_html/***/***.php on line 34

Warning: simplexml_load_string(): Entity: line 1: parser error : SystemLiteral " or ' expected in /home/***/public_html/***/***.php on line 34

34行目は
$XML = simplexml_load_string($result);
です。
cronjob.deを使ってみても動いている気配がありません。ブラウザでアクセスすると別に何もエラーは出ないのですが。
XMLの読み込みに問題があるのでしょうか?
どうしたらいいのかわからずお手上げ状態です

765:nobodyさん
10/01/03 22:00:13
>>764
"または'のエスケープ処理を忘れていませんか?

766:nobodyさん
10/01/03 22:13:34
>>765
" や ' を \" や \' にすればいいのでしょうか?

767:nobodyさん
10/01/03 22:33:27
>>762
cron-jobは、日本のBotで負荷が異常に増えたのに対して、~.jp規制をかけているようです。
phpなどの実行URLか、登録メールアドレスが日本のドメインの場合強制排除しているとか。

ソースはほかの開発者さんのツイートなので曖昧ですが、~.jpを使っていない私が
全く規制されていないのも納得できました。

768:nobodyさん
10/01/03 23:21:18
まあ頻繁に話題に出て皆一斉にそれ使ってりゃ規制されんのも当然か。

769:nobodyさん
10/01/04 01:31:21
>>345>>352と全く同じ状況なんだが対処法がさっぱりわからない
出来てる人はどうやってるんだろうか…?

770:nobodyさん
10/01/04 01:59:32
エラーはなんて出るの?

771:769
10/01/04 02:12:01
俺に聞いてると仮定して答えるけど
エラーは出てない、ポストも問題ない、ただin_reply_to_status_idが付与されないだけなんだ
Basic認証の時は出来てたんだけどなぁ

772:nobodyさん
10/01/04 03:03:11
>>771
自分はこれで出来てるけどどうだろう
$req = $to->OAuthRequest($host,array("status"=>$aaa,"in_reply_to_status_id"=>"$bbb"));

773:769
10/01/04 07:01:43
"in_reply_to_status_id"=>$bbb を "in_reply_to_status_id"=>"$bbb" に変えたら出来た!
単純な話で情けないな…。>>772ありがとう

774:nobodyさん
10/01/04 09:56:27
なんだそりゃ。型によって処理分けたりしてるんかね

775:nobodyさん
10/01/04 10:13:46
sutatusは基本文字列だから通ってもidは基本数値型だから蹴るみたいな?
どっちにしろ送るときゃ文字列なのにおかしなことをしてるな。
しかも黙って蹴ってるってのがなんだかやな感じだな。

776:nobodyさん
10/01/04 10:48:00
>>767
land.toとかだと~.jpじゃないけど消されるよね
単純に~.jpで弾いてるわけだもないのかな?

777:nobodyさん
10/01/04 11:43:15
FileQでcron設定してみたんだがリプライしても沈黙したまんまだ。
手動なら動くということはファイル自体は問題ないんだよな…?
なにがあかんの……

778:nobodyさん
10/01/04 13:20:42
cronjob.deって、登録申込したあとメール来るのにどれくらいかかる?
1日とか待たなきゃいけないのかな…
全然来ないのでちゃんと申込出来てるのかわかんなくなって来た

779:nobodyさん
10/01/04 16:20:35
>>778
メールはすぐ来た。が、その後すぐアカウントロックされてしまった。
cron-jobでロックされた人が流れてるからかもしれん
>776
自分は.comドメインだけど鯖がロリポ
鯖IPかアクセスしたIPで日本かどうか判断してるのかも

780:778
10/01/04 17:00:18
>>779
違うメアドで登録してみたら今度はすぐに来た
今のところアカロックはされてないみたいだけど
cron-job.orgのときみたいにログイン出来なくなっちゃったの?

781:nobodyさん
10/01/04 19:08:24
Gmailで登録してるけどcron-job.orgもcronjob.deも垢消されてないぞ
ただもうcron-job.orgは設定するそばから消えるけど

>>777
コマンド欄にURLそのまま打ち込んでないか?
ちょっと上の方見て来い

782:nobodyさん
10/01/04 19:46:04
cron-job、ログインできないのにちゃんと回ってるみたいでTL反応とかし続けてる…
同じ状況の奴いる?

783:nobodyさん
10/01/04 19:51:34
>>648
>>649
あなた方のやり取りなかったら、ゴール目前で諦めてた。ありがとう。

784:nobodyさん
10/01/04 19:53:07
phpだけじゃマルコフ無理なん

785:nobodyさん
10/01/04 20:57:33
FileQで外部サイトのphp回せる?
curl使えない?何のこと?とか思ってたらリプライ用のファイルも回せないってことなんだよな?
お金払っちゃったぜ/(^O^)\

786:nobodyさん
10/01/04 22:02:45
>>782
うちのとこもそう。
まったくいじれないのにそのまま動いてるから移行もできない状態…
とりあえず自然にオフになるの待ってる。

787:nobodyさん
10/01/04 22:06:20
cron-job.org設定ではerfolgreichってなっているけれど動いてない。
誰か助けて

788:nobodyさん
10/01/04 22:24:40
>>345>>352は俺です。
>>769
掘り返してくれてありがとう

>>772
ありがとう出来たよ!
型が違うのかと思ってintvalかませたりとかは試してたんだけど単純な話は単純な話だったんだな…

789:nobodyさん
10/01/04 22:27:08
botみかけたけれどcron-job.org今調子わるいのか?

790:nobodyさん
10/01/04 22:29:00
むしろ今のcron-job.orgは絶好調

791:nobodyさん
10/01/04 22:31:20
>>790
それはギャグで言っているのか? 

792:nobodyさん
10/01/04 22:57:17
うちのは問題なしだけど、蹴られないうちにファイル名変えようかな…botていうフォルダだから
向こうに用途悟られて消されかねないし

793:779
10/01/04 23:07:46
自分はcron-jobはログインできるんだけど
2つ動かしてたのがどうしても1つしか設定できなくなった
それで.deでアカウント作ったけど速攻でロックされた
deで表示された文を翻訳すると再登録するな+問題あると訴えるみたいな感じだったから
それはねーおwと思いつつ再登録してない

他にもcronサービスあるから皆が上手く分散できるといいんだが…

794:nobodyさん
10/01/04 23:27:24
cronも大事なんだが、リプライのOAuth化で躓いてる…
色々削ったり位置を変えてみたけどお手上げだ

795:nobodyさん
10/01/04 23:30:47
>>794
あーおなじ
定時ポストのみ対応できてつまずいた

796:nobodyさん
10/01/04 23:48:55
定時postとリプライはOAuth対応出来たけどTLに反応が上手くいかん
まあそれ以前にcron探しでbot止まってるから意味ないけどな…

797:nobodyさん
10/01/05 00:18:46
あいまいでよくわからんが具体的にどの辺でつまってんだ?

798:nobodyさん
10/01/05 00:25:47
webcron.orgからFileQにしてみたが、
ここは凄いな。1分間隔で動くし1年で1000円ぐらいだし
cronの使い方がよくわからなかったが、
>>744>>745の書き込みですんなりできた。

799:nobodyさん
10/01/05 00:36:34
>>797
795だけど私は実行してもエラー出ないけどリプライをしてくれない状態
自分で組んだのですがAPIでは動いてくれているので、恐らく組み込みがうまくできていないのではないかと…

800:nobodyさん
10/01/05 00:47:23
>>797
794です。自分も>>799と同じくエラーが出ずAPIの状態…
curlを削ってもいいと聞いたので少しずつ削ってその都度試してみたけど駄目だった

801:nobodyさん
10/01/05 00:47:51
FileQいいなと思うけどcurlが駄目ってとこで引っかかるのが辛いな

802:nobodyさん
10/01/05 01:37:59
curlだけじゃなく他にもダメなのありそうだしな。

803:nobodyさん
10/01/05 01:38:48
OAuthは認証した後はbasic認証後と同じようにAPIに投げればいいのかな

804:nobodyさん
10/01/05 03:15:16
リプライとかTLはポスト部分だけOAuthに投げてそれ以外は以前のままで使ってる

805:nobodyさん
10/01/05 04:34:41
SDNさんのOAuthでのAPI偽装スクリプト使わせてもらおうと思ったんだけど
PHPでOAuthを使う準備の所で、test.php叩いても真っ白い画面でソースも何も出てこないエラーになる
使ってる鯖はステップサーバーでPHP5、対応してないスクリプトなのかと思ったけど
他の同じような環境の鯖で叩くと

・ソ
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /usr/home/akairin5/public_html/twitterOAuth.php on line 21

というエラーが帰ってくる
しかし特に閉じ忘れなども無い気がするんだけど……

誰か同じようなエラーで対応した人いませんですか
色々と考えたけど、自分の経験値では完全に詰みました……

806:nobodyさん
10/01/05 04:35:41
ふああああああああああああああああああああああああorz
しくじったアカウント消し忘れたorz
うう、見なかったことにorz
でも助言お願いしますorz

807:nobodyさん
10/01/05 04:50:40
ここはうっかりさんが多いインターネットですね

808:nobodyさん
10/01/05 09:46:47
>>805
どんまいとしか言えないwww
けど自分も真っ白のページが出てくることがたまにある

809:nobodyさん
10/01/05 10:34:19
>>805
文字コード違うとか?

810:805
10/01/05 11:35:24
どんまいありがとうございますorz

>>809
最初にDLしたものをそのままUPしたらだめだったので、
文字コードをUTF-8、改行コードも念のためLF固定にして再UPしたんだけどダメで、
更に.htaccess置いてサーバーの方で改行コードを固定してもダメでした。

SDNさんのHP注意書きの様に、スクリプトのバージョン違いかとも思って
2度ほど該当バージョンの物をDLし直したんですがダメでした。

白くなるエラーは私も何度か遭遇して、その度に閉じ忘れとかが原因な事が多かったので
今回もそうなのかなぁと思ったのですが……
配布されているものに間違いがあるとは見た限り思えなくて…

ステップサーバーのPHP注意に、白くなるエラーは、PHP5に対応してないスクリプトの可能性アリ
というのがあったので、疑っても見ましたが、それも無いと思いますし……

謎です

とりあえず、自分でも、OAuth調べ中ですが、お心当たりある方居ましたら
ご助言お願いしますorz

811:nobodyさん
10/01/05 12:04:38
うちのOAuthはよくサスペンドにされるんだけど…なんか問題あんのかなあ

812:nobodyさん
10/01/05 14:17:40
ウチはSDNさんのところを参考に
定期発言もリプライも全部OAuth認証に変えてみたけど、設置もその後も順調だ
やっぱりサーバーとかの環境によってだいぶ差があるんだな

813:nobodyさん
10/01/05 19:05:30
>>782 ノシ

814:nobodyさん
10/01/05 21:16:43
こんなとこ見つけたんだけど、使ってる人いる?

URLリンク(mywebcron-com.loopiasecure.com)

815:nobodyさん
10/01/05 22:09:45
>>814
cron-job.orgがダメになってそこに移った
@ページだとほとんど動かなかったから、他の鯖に変えたら動きだした
たまに起動しないけど無料なら想定の範囲内だと思う

816:nobodyさん
10/01/05 22:23:38
あんまり広まるとまた規制されそうだが…
SetCronJobでぐぐると幸せになれるかもしれない

ところで、bardothodolさんのスクリプトが元のリプライソースでcurl使わずにOAuth化できますか?
2つあるpost関数のうち下方にあるcurlは削れてちゃんとクライアント名が変わったんだけど、
上の関数と$usernameと$passwordを削ったらpostできなかったんで、OAuth化できたのかできてないのか分からない状態です

こんな状態だけどクライアント名変えるだけでいいっていうならソースとか晒すけど…
FileQを使いたいので curl使わずにOAuth化できればいいな
どなたかご助言願います

817:nobodyさん
10/01/05 22:36:06
あと少しで完成なんだけどTLに反応するやつだけ上手くいかない…


$oyasumi = array("台詞1","台詞2","台詞3");
$tadaima = array("台詞1","台詞2","台詞3");

if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if(preg_match( "/おやすむ|おやすみなさい|おやすみます|寝る|寝ます/u", $var )){
$key = array_rand($oyasumi);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}

if(preg_match( "/ただいま|今.*帰ってき/u", $var )){
$key = array_rand($tadaima);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}

ここで下の反応語句いれても上ので反応してしまう
色々なところで調べたりいじったりしたんだけどちょっと症状が違うのか上手いこといかない
馬鹿らしいこと聞いているとは思うんですが手がつけれないので…
誰かわかる方いたらお願いします

818:nobodyさん
10/01/05 22:56:20
>>817
中カッコが足りなくて閉じ切ってないのでなんともいえない。
しいていえばpreg_matchがおかしいんじゃない?
あとはちゃんとマッチしてるか確認するために
if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if(preg_match( "/おやすむ|おやすみなさい|おやすみます|寝る|寝ます/u", $var )){

echo "oyasumi <br>";
$key = array_rand($oyasumi);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;

echo "$post $message<br>";
tweet($message ,$username,$password);
}
if(preg_match( "/ただいま|今.*帰ってき/u", $var )){

echo "tadaima <br>";
$key = array_rand($tadaima);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;

echo "$post $message<br>";
tweet($message ,$username,$password);
}

こんな感じでecho入れてブラウザ上で動かしてちゃんと反応するか調べる。ちゃんと動いていれば
oyasumi
台詞1 @reply_name 台詞1
みたいに出力されるはず

819:nobodyさん
10/01/05 22:56:35
twitterOAuth.php自体にcurlが使われてるからSDNさんのとこの方法でOAuthにするとFileQでは動かせなくなっちゃうのかな…
FileQにみんなでcurl使えるように嘆願するか?w

それとスレチだけどなんで日本には外国みたいなwebcronサービスがないんだろ
お金かかってもいいからあったら便利なのに

820:nobodyさん
10/01/05 23:02:52
>>817
「ただいま」の $post = $oyasumi[$key];
「おやすみ(oyasumi)」になってるよ

あと、

$oyasumi = array("台詞1","台詞2","台詞3");
$tadaima = array("台詞1","台詞2","台詞3");

if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if(preg_match( "/おやすむ|おやすみ|おやすみます|寝る|寝ます/u", $var )){
$key = array_rand($oyasumi);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}
if(preg_match( "/ただいま|今.*帰ってき/u", $var )){
$key = array_rand($tadaima);
$post = $tadaima[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}
}
}
$i--;
}

↑閉じ方をこうしてみた。
直るかどうかはこの前後のソース次第かもしれないけど…

821:nobodyさん
10/01/05 23:06:38
>818
早速ありがとう!
ソース変なところからだった…ごめんなさい。
$i = count($XML)-1;
$j = 0;
while($i >= $j) {
$var = $XML->status[$i]->text;
$reply_name = $XML->status[$i]->user->screen_name;
$name = $XML->status[$i]->user->name;

省略(さっきのソース)

}
}
$i--;
}
長いから省略しました。
これで閉じ切ってるかな…?

とりあえず教えてもらった方法やってまた頑張ってみます!

822:nobodyさん
10/01/05 23:11:35
>820
うわっ!本当だ…すっごい恥ずかしいこれ
そこ直したら戻った気がする。一応返してきたからこれで様子見ます!
本当ありがとう…

823:nobodyさん
10/01/05 23:18:50
>>819
リプライソースからcurlを消せばいいと思ってた…
そうか twitterOAuth.php自体にcurlがあったorz

5分間隔でいいならSet~とかでいけるけど、やっぱ5分だと取得漏れが多い気がする
そしてwebcronでリプライ動かしたら破産する
自分で設定するしかないか

824:nobodyさん
10/01/05 23:22:23
>>728あたりが安定した国内のcronサービスを作ってくれる とかいう夢を一瞬見た
無料は申し訳ないからできればカンパとかしたい

825:nobodyさん
10/01/05 23:22:50
>>823
GAEは?

826:nobodyさん
10/01/05 23:30:51
ググッたらこんなんあったけど、まだ試してない
URLリンク(blog.makotokw.com)

827:nobodyさん
10/01/05 23:37:52
>>825
GAEにしようとしたんだが、Google App Engine Launcherを起動すると
See the logfire 'C:\~GoogleAppEngineLauncher.exe.log' for details
というエラーが出るから積んだよ
再インストールしてもエラー中のlogを消してもだめだった
問題は山積みだ…

828:nobodyさん
10/01/05 23:54:54
logの中身みたの?

829:nobodyさん
10/01/06 01:25:16
>>828
logの中はこんな感じのが何行か…

Traceback (most recent call last):
File "GoogleAppEngineLauncher.py", line 42, in <module>
File "wx\_core.pyc", line 7913, in __init__
File "wx\_core.pyc", line 7487, in _BootstrapApp
File "launcher\app.pyc", line 53, in OnInit
File "launcher\app.pyc", line 97, in _CreateModels
File "launcher\maintable.pyc", line 35, in __init__
File "launcher\maintable.pyc", line 86, in _LoadProjects
File "launcher\project.pyc", line 63, in ProjectWithConfigParser
File "launcher\project.pyc", line 260, in _LoadFromConfigParser
File "ConfigParser.pyc", line 520, in get
ConfigParser.NoOptionError: No option 'name' in section: '1'

さっぱりなのでweb上のcronに頼ることにするよ
聞いてくれてありがとう

830:nobodyさん
10/01/06 15:02:29
オプションのnameがないんじゃね?

831:DAWNTO_Windy-melt ◆Windy/f9HNwg
10/01/06 15:53:39
>>824
わざわざありがとうございます。
本格的に設計開始しましたが、あったらうれしい機能など教えていただけると開発が早く進みます

832:nobodyさん
10/01/06 20:41:01
>>831

横レスだけど
cronjobみたいなシンプルなコンパネがあるとうれしいな

833:nobodyさん
10/01/07 02:21:36
>>831
楽しみにしてます
かなりのユーザーがいくと思うので負担が大きいかもしれませんが…

cron-job.orgのようにCtrlで時間を細かく選択できたら便利かと思います
時間は1~2分間隔希望です

834:nobodyさん
10/01/07 02:37:41
>>831
もし有料にする場合は、銀行振込にも対応してほしい。
クレカ無いから…。

835:nobodyさん
10/01/07 09:20:32
この流れはひどい

836:nobodyさん
10/01/07 10:59:33
bot製作とは程遠いな

837:nobodyさん
10/01/07 12:01:35
ド素人の質問ですみません。
Kotobuki Lab.さんのページを参考にしてGAEでcronを実行したいのですが
プロジェクト名すら作成例と同じにして丸コピしているのに、うまくいきません。
同じページを参考にしてうまくいった方はいますか?
変えているのはtestcronServlet.javaの11行目、testcronServletをTestcronServlet
にしたのと、botのURLだけです。
現在Logsでは2分おきにWarning No handlers matched this URL.が出っ放し、
Cron Jobsでも常にon time failedとなっています。←これがどういう状態なのかもいまいちつかめてません…
ぐぐったら海外で同じ状態のひとを見つけたのですが、具体的な解答はなされていないようなので、
どうか助言をお願いします。

838:nobodyさん
10/01/07 13:07:48
>>837
そのページ見てGAEにチャレンジしたけどうまくいったよ
○○Serblet.javaのファイル名は頭1文字目が大文字じゃないと上手くいかなかった気がする

839:nobodyさん
10/01/07 13:08:57
スペルミスってた
Ser「b」letじゃなくてSer「v」letね…

840:nobodyさん
10/01/07 14:39:50
>>837
Warning No handlers matched this URL.
ってことはURLが間違ってるって事じゃないのかな
アドレス間違ってるかもしくはGAEからのアクセス弾いちゃってるとかじゃない?

841:nobodyさん
10/01/07 15:21:15
>>837>>840
プログラムのURLが合ってても、cron.xmlの方で指定間違えてたら
Warning No handlers matched this URL.って出るよ
>>837はもう一度パス見直してみ

842:nobodyさん
10/01/07 23:18:40
>>814
全然動かないんだが...

843:nobodyさん
10/01/07 23:26:01
FileQとphpだけで人間によく間違えられるbot作った俺が通りますよー

844:nobodyさん
10/01/07 23:57:56
>>843
自慢したいだけなら二度と来ないでください

845:nobodyさん
10/01/08 00:42:38
>>844
リプライ返しはあいさつに対してのみ行う場合なら人間っぽいbot簡単に作れるよー。

まず「つぶやき収集bot」を作って、あらゆるツイートを収集し、リプライツイートや時々内容のツイートを取り除きテキストファイルに順に格納していく。

時々内容のツイートを取り除く方法は、まずニュースサイトの記事をyahooの形態素解析APIを使って名詞を抜き出し辞書を作っておく。
そして「つぶやき収集bot」が収集したツイートも形態素解析し名詞を抜き出し、あらかじめ作った辞書を検索しその名詞が見つかればそのツイートは取り除く。

あとはテキストファイルに格納したツイートを適当に抜き出ししゃべらせる。

846:nobodyさん
10/01/08 00:47:33
問題は人間の質問に答えられるbotをどう作るかだろう。
あるいは人間とマトモな会話ができるbot。

これはかなり時間がかかりそうだ。

847:nobodyさん
10/01/08 01:51:52
手間をかけずに楽しめるbotを作る方がおもしろい。

848:nobodyさん
10/01/08 02:14:44
自分に向けられた発言への類推は難しいよな。
品詞ごとに分けておおまかな意味を推測させようかと考えてはみたが

>>846
マトモに会話してるように見えるbotなら人工無脳にいくつかあるけど
あれらを今から作るってのは手間だしマルコフ連鎖で繋げてそれっぽく見せるのがせいぜいだろうな。
辞書登録してやるとどうしても反応できるワードには限りがあるし。
本気で知能やろうとするとと個人でやるには大変だ。

849:nobodyさん
10/01/08 02:48:09
さくらサーバーでTLに反応するPHPのcron動かしてる人っていますか?
リプライとかは平気なのにTL反応のcronだけ削除されてしまいます
中身は銀さんのをほぼ丸写ししただけ。なにが悪いんだろう?


850:nobodyさん
10/01/08 04:10:34
>>849
cronの実行間隔が短すぎるんじゃねーの?

851:nobodyさん
10/01/08 04:35:57
>>850
リプライは3分おきで動いてるのにTLは10分にしても消されました
もっと長くすれば大丈夫かもしれないけどTL反応の間隔が10分以上では遅すぎるし・・・

852:nobodyさん
10/01/08 04:58:44
さくらに聞けよ

853:nobodyさん
10/01/08 05:32:19
>>851
周期が1時間以内だと、消される方が正常
3分で消えないっておかしいな

854:nobodyさん
10/01/08 06:00:29
>>853
そうなのか・・・じゃあさくらサーバー使ってる人でもcronは別な所で動かしてるってことなんですかね?
リプライは平気なのにTLはダメっていうのが不思議だけど、諦めて他の方法で動かすことにします

855:nobodyさん
10/01/08 08:05:52
>>848
俺の目標は、ある人が人間と思ってフォローした人たちが全員botだった、という状況を作ることなのだよ。

856:nobodyさん
10/01/08 08:14:21
遅くなりましたが>>837です
>>841さんのいうcron.xmlでの指定ミスが原因だったようで、urlのところを直したら
すんなり動いてくれました。web.xmlからURLを確認する過程自体をすっとばしていたという、
なんともお粗末な理由でした…
助言をくださった方、ありがとうございます。botが動いて感激です。

857:nobodyさん
10/01/08 10:56:08
cron-job.orgからGAEに変えたんだけど、
GAEのログにファビコンが無いっていうエラーが出まくる
何かファイル追加してファビコンを指定すればいいらしいんだけど
具体的な方法がわからない…どこかに参考になるサイトとかないかな?

858:nobodyさん
10/01/08 12:15:40
>>854
さくらだけど消されてないよ。
GAEで動かしてるからかな?

>>857
ブラウザでアクセスするのやめる


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch