【Twitter】 BOT製作支援スレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/27(日) 14:15:59ID:Dz08qoo4[公式] http://twitter.com/
[Twitter 開発ブログ 日本語版] http://twitterjp.blogspot.com/
*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
0792nobodyさん
2010/01/04(月) 22:57:17ID:???向こうに用途悟られて消されかねないし
0793779
2010/01/04(月) 23:07:46ID:???2つ動かしてたのがどうしても1つしか設定できなくなった
それで.deでアカウント作ったけど速攻でロックされた
deで表示された文を翻訳すると再登録するな+問題あると訴えるみたいな感じだったから
それはねーおwと思いつつ再登録してない
他にもcronサービスあるから皆が上手く分散できるといいんだが…
0794nobodyさん
2010/01/04(月) 23:27:24ID:???色々削ったり位置を変えてみたけどお手上げだ
0796nobodyさん
2010/01/04(月) 23:48:55ID:???まあそれ以前にcron探しでbot止まってるから意味ないけどな…
0797nobodyさん
2010/01/05(火) 00:18:46ID:???0798nobodyさん
2010/01/05(火) 00:25:47ID:???ここは凄いな。1分間隔で動くし1年で1000円ぐらいだし
cronの使い方がよくわからなかったが、
>>744>>745の書き込みですんなりできた。
0799nobodyさん
2010/01/05(火) 00:36:34ID:???795だけど私は実行してもエラー出ないけどリプライをしてくれない状態
自分で組んだのですがAPIでは動いてくれているので、恐らく組み込みがうまくできていないのではないかと…
0800nobodyさん
2010/01/05(火) 00:47:23ID:???794です。自分も>>799と同じくエラーが出ずAPIの状態…
curlを削ってもいいと聞いたので少しずつ削ってその都度試してみたけど駄目だった
0801nobodyさん
2010/01/05(火) 00:47:51ID:???0802nobodyさん
2010/01/05(火) 01:37:59ID:???0803nobodyさん
2010/01/05(火) 01:38:48ID:???0804nobodyさん
2010/01/05(火) 03:15:16ID:???0805nobodyさん
2010/01/05(火) 04:34:41ID:???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
というエラーが帰ってくる
しかし特に閉じ忘れなども無い気がするんだけど……
誰か同じようなエラーで対応した人いませんですか
色々と考えたけど、自分の経験値では完全に詰みました……
0806nobodyさん
2010/01/05(火) 04:35:41ID:???しくじったアカウント消し忘れたorz
うう、見なかったことにorz
でも助言お願いしますorz
0807nobodyさん
2010/01/05(火) 04:50:40ID:???0810805
2010/01/05(火) 11:35:24ID:???>>809
最初にDLしたものをそのままUPしたらだめだったので、
文字コードをUTF-8、改行コードも念のためLF固定にして再UPしたんだけどダメで、
更に.htaccess置いてサーバーの方で改行コードを固定してもダメでした。
SDNさんのHP注意書きの様に、スクリプトのバージョン違いかとも思って
2度ほど該当バージョンの物をDLし直したんですがダメでした。
白くなるエラーは私も何度か遭遇して、その度に閉じ忘れとかが原因な事が多かったので
今回もそうなのかなぁと思ったのですが……
配布されているものに間違いがあるとは見た限り思えなくて…
ステップサーバーのPHP注意に、白くなるエラーは、PHP5に対応してないスクリプトの可能性アリ
というのがあったので、疑っても見ましたが、それも無いと思いますし……
謎です
とりあえず、自分でも、OAuth調べ中ですが、お心当たりある方居ましたら
ご助言お願いしますorz
0811nobodyさん
2010/01/05(火) 12:04:38ID:???0812nobodyさん
2010/01/05(火) 14:17:40ID:???定期発言もリプライも全部OAuth認証に変えてみたけど、設置もその後も順調だ
やっぱりサーバーとかの環境によってだいぶ差があるんだな
0814nobodyさん
2010/01/05(火) 21:16:43ID:???ttps://mywebcron-com.loopiasecure.com/
0815nobodyさん
2010/01/05(火) 22:09:45ID:???cron-job.orgがダメになってそこに移った
@ページだとほとんど動かなかったから、他の鯖に変えたら動きだした
たまに起動しないけど無料なら想定の範囲内だと思う
0816nobodyさん
2010/01/05(火) 22:23:38ID:???SetCronJobでぐぐると幸せになれるかもしれない
ところで、bardothodolさんのスクリプトが元のリプライソースでcurl使わずにOAuth化できますか?
2つあるpost関数のうち下方にあるcurlは削れてちゃんとクライアント名が変わったんだけど、
上の関数と$usernameと$passwordを削ったらpostできなかったんで、OAuth化できたのかできてないのか分からない状態です
こんな状態だけどクライアント名変えるだけでいいっていうならソースとか晒すけど…
FileQを使いたいので curl使わずにOAuth化できればいいな
どなたかご助言願います
0817nobodyさん
2010/01/05(火) 22:36:06ID:???$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);
}
ここで下の反応語句いれても上ので反応してしまう
色々なところで調べたりいじったりしたんだけどちょっと症状が違うのか上手いこといかない
馬鹿らしいこと聞いているとは思うんですが手がつけれないので…
誰かわかる方いたらお願いします
0818nobodyさん
2010/01/05(火) 22:56:20ID:???中カッコが足りなくて閉じ切ってないのでなんともいえない。
しいていえば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
みたいに出力されるはず
0819nobodyさん
2010/01/05(火) 22:56:35ID:???FileQにみんなでcurl使えるように嘆願するか?w
それとスレチだけどなんで日本には外国みたいなwebcronサービスがないんだろ
お金かかってもいいからあったら便利なのに
0820nobodyさん
2010/01/05(火) 23:02:52ID:???「ただいま」の $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--;
}
↑閉じ方をこうしてみた。
直るかどうかはこの前後のソース次第かもしれないけど…
0821nobodyさん
2010/01/05(火) 23:06:38ID:???早速ありがとう!
ソース変なところからだった…ごめんなさい。
$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--;
}
長いから省略しました。
これで閉じ切ってるかな…?
とりあえず教えてもらった方法やってまた頑張ってみます!
0822nobodyさん
2010/01/05(火) 23:11:35ID:???うわっ!本当だ…すっごい恥ずかしいこれ
そこ直したら戻った気がする。一応返してきたからこれで様子見ます!
本当ありがとう…
0823nobodyさん
2010/01/05(火) 23:18:50ID:???リプライソースからcurlを消せばいいと思ってた…
そうか twitterOAuth.php自体にcurlがあったorz
5分間隔でいいならSet〜とかでいけるけど、やっぱ5分だと取得漏れが多い気がする
そしてwebcronでリプライ動かしたら破産する
自分で設定するしかないか
0824nobodyさん
2010/01/05(火) 23:22:23ID:???無料は申し訳ないからできればカンパとかしたい
0826nobodyさん
2010/01/05(火) 23:30:51ID:???ttp://blog.makotokw.com/2010/01/03/oauth%E5%AF%BE%E5%BF%9C%E3%80%81curl%E3%81%AA%E3%81%97%E3%81%A7%E5%8B%95%E3%81%8Fphp-twitter-library-php-twient%E3%82%92%E5%85%AC%E9%96%8B/
0827nobodyさん
2010/01/05(火) 23:37:52ID:???GAEにしようとしたんだが、Google App Engine Launcherを起動すると
See the logfire 'C:\〜GoogleAppEngineLauncher.exe.log' for details
というエラーが出るから積んだよ
再インストールしてもエラー中のlogを消してもだめだった
問題は山積みだ…
0828nobodyさん
2010/01/05(火) 23:54:54ID:???0829nobodyさん
2010/01/06(水) 01:25:16ID:???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に頼ることにするよ
聞いてくれてありがとう
0830nobodyさん
2010/01/06(水) 15:02:29ID:???0831DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/06(水) 15:53:39ID:???わざわざありがとうございます。
本格的に設計開始しましたが、あったらうれしい機能など教えていただけると開発が早く進みます
0833nobodyさん
2010/01/07(木) 02:21:36ID:???楽しみにしてます
かなりのユーザーがいくと思うので負担が大きいかもしれませんが…
cron-job.orgのようにCtrlで時間を細かく選択できたら便利かと思います
時間は1〜2分間隔希望です
0835nobodyさん
2010/01/07(木) 09:20:32ID:???0836nobodyさん
2010/01/07(木) 10:59:33ID:???0837nobodyさん
2010/01/07(木) 12:01:35ID:???Kotobuki Lab.さんのページを参考にしてGAEでcronを実行したいのですが
プロジェクト名すら作成例と同じにして丸コピしているのに、うまくいきません。
同じページを参考にしてうまくいった方はいますか?
変えているのはtestcronServlet.javaの11行目、testcronServletをTestcronServlet
にしたのと、botのURLだけです。
現在Logsでは2分おきにWarning No handlers matched this URL.が出っ放し、
Cron Jobsでも常にon time failedとなっています。←これがどういう状態なのかもいまいちつかめてません…
ぐぐったら海外で同じ状態のひとを見つけたのですが、具体的な解答はなされていないようなので、
どうか助言をお願いします。
0838nobodyさん
2010/01/07(木) 13:07:48ID:???そのページ見てGAEにチャレンジしたけどうまくいったよ
○○Serblet.javaのファイル名は頭1文字目が大文字じゃないと上手くいかなかった気がする
0839nobodyさん
2010/01/07(木) 13:08:57ID:???Ser「b」letじゃなくてSer「v」letね…
0840nobodyさん
2010/01/07(木) 14:39:50ID:???Warning No handlers matched this URL.
ってことはURLが間違ってるって事じゃないのかな
アドレス間違ってるかもしくはGAEからのアクセス弾いちゃってるとかじゃない?
0841nobodyさん
2010/01/07(木) 15:21:15ID:???プログラムのURLが合ってても、cron.xmlの方で指定間違えてたら
Warning No handlers matched this URL.って出るよ
>>837はもう一度パス見直してみ
0843nobodyさん
2010/01/07(木) 23:26:01ID:???0845nobodyさん
2010/01/08(金) 00:42:38ID:???リプライ返しはあいさつに対してのみ行う場合なら人間っぽいbot簡単に作れるよー。
まず「つぶやき収集bot」を作って、あらゆるツイートを収集し、リプライツイートや時々内容のツイートを取り除きテキストファイルに順に格納していく。
時々内容のツイートを取り除く方法は、まずニュースサイトの記事をyahooの形態素解析APIを使って名詞を抜き出し辞書を作っておく。
そして「つぶやき収集bot」が収集したツイートも形態素解析し名詞を抜き出し、あらかじめ作った辞書を検索しその名詞が見つかればそのツイートは取り除く。
あとはテキストファイルに格納したツイートを適当に抜き出ししゃべらせる。
0846nobodyさん
2010/01/08(金) 00:47:33ID:???あるいは人間とマトモな会話ができるbot。
これはかなり時間がかかりそうだ。
0847nobodyさん
2010/01/08(金) 01:51:52ID:???0848nobodyさん
2010/01/08(金) 02:14:44ID:???品詞ごとに分けておおまかな意味を推測させようかと考えてはみたが
>>846
マトモに会話してるように見えるbotなら人工無脳にいくつかあるけど
あれらを今から作るってのは手間だしマルコフ連鎖で繋げてそれっぽく見せるのがせいぜいだろうな。
辞書登録してやるとどうしても反応できるワードには限りがあるし。
本気で知能やろうとするとと個人でやるには大変だ。
0849nobodyさん
2010/01/08(金) 02:48:09ID:???リプライとかは平気なのにTL反応のcronだけ削除されてしまいます
中身は銀さんのをほぼ丸写ししただけ。なにが悪いんだろう?
0851nobodyさん
2010/01/08(金) 04:35:57ID:???リプライは3分おきで動いてるのにTLは10分にしても消されました
もっと長くすれば大丈夫かもしれないけどTL反応の間隔が10分以上では遅すぎるし・・・
0852nobodyさん
2010/01/08(金) 04:58:44ID:???0854nobodyさん
2010/01/08(金) 06:00:29ID:???そうなのか・・・じゃあさくらサーバー使ってる人でもcronは別な所で動かしてるってことなんですかね?
リプライは平気なのにTLはダメっていうのが不思議だけど、諦めて他の方法で動かすことにします
0856nobodyさん
2010/01/08(金) 08:14:21ID:???>>841さんのいうcron.xmlでの指定ミスが原因だったようで、urlのところを直したら
すんなり動いてくれました。web.xmlからURLを確認する過程自体をすっとばしていたという、
なんともお粗末な理由でした…
助言をくださった方、ありがとうございます。botが動いて感激です。
0857nobodyさん
2010/01/08(金) 10:56:08ID:???GAEのログにファビコンが無いっていうエラーが出まくる
何かファイル追加してファビコンを指定すればいいらしいんだけど
具体的な方法がわからない…どこかに参考になるサイトとかないかな?
0859nobodyさん
2010/01/08(金) 12:18:38ID:???さくらの人が消されたのはcronの方か。
勘違いしてた
0860nobodyさん
2010/01/08(金) 17:10:10ID:voJUVX7VSDNさんを参考にして、定時はいけたんだけどリプライとTLがいまいちなんだ。
エラーも出ないでクライアント名とかリプライ元つきで返してくれているんだけど、
なんか叩くとめっちゃ返してくる…
前に答えたやつにも重複して返すし、tmpがうまく読めてないんかな。
初心者ですまない…元々銀次さんの所のコピペに頼りきりだったからどうしてすれば良いかわからないんだ。
教えてくれると凄く幸せになれるんだが…
0861nobodyさん
2010/01/08(金) 17:41:13ID:???銀さんとこのリプライソースでいいんだな?
リプライソースの中の
$ch = curl_init();
(中略)
curl_close($ch);
を全部消して、function tweetをSDNさんとこのソースに
tweetの引数は$message以外を削除、って感じで行けると思う
もちろん細かいところは適宜修正してくれ
0862nobodyさん
2010/01/08(金) 17:57:17ID:voJUVX7Vありがと。
でもごめん、その通りにしたら
<?xml version="1.0" encoding="UTF-8" ?>
- <hash>
<request>/statuses/update.xml</request>
<error>Incorrect signature</error>
</hash>
て@ページでエラーでたんだけどorz
function tweetの中が間違ってるんかな。
それともrequire_onceの場所がおかしいとか…?
もう訳わからんよ…細かいところの修正が出来てないからかな。
頭悪くてごめんな。
一回貼ったほうがわかりやすい?
0864nobodyさん
2010/01/08(金) 18:13:36ID:???あーごめん
$ch = curl_init();
(中略)
curl_close($ch);
は消さなくてもいいや(OAuth認証でTL取得しない場合は)
消した場合(OAuth認証でTLを取得する場合)は
$XML = simplexml_load_string($result);
のところも変えないと駄目
0865nobodyさん
2010/01/08(金) 18:32:53ID:voJUVX7Vお、ごめん長くて貼れなくて苦戦してた…
$XML = simplexml_load_string($result);
の部分なんだけど、ごめんどういじれば良い?
0866nobodyさん
2010/01/08(金) 18:44:15ID:???if(!empty($line)){
$last_id = $line;
}else{
$cnt = "1";
}
$consumer_key = "consumer_key"; // Consumer keyの値
$consumer_secret = "consumer_secret"; // Consumer secretの値
$access_token = "access_token"; // Access Tokenの値
$access_token_secret = "access_token_secret"; // Access Token Secretの値
// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
// TwitterからGETする
if(($cnt != null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("count"=>$pcount,"since_id"=>$last_id),"GET");
}else if(($cnt != null)&&($last_id == null)){
$req = $to->OAuthRequest($host,array("count"=>$cnt),"GET");
}else if(($cnt == null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("since_id"=>$last_id),"GET");
}else{
$req = $to->OAuthRequest($host,array(),"GET");
}
$XML = simplexml_load_string($req);
0867nobodyさん
2010/01/08(金) 18:45:34ID:???$pcountになってるところは$cntで…orz
0868nobodyさん
2010/01/08(金) 20:09:05ID:voJUVX7Vうわーごめん、何かほんと頭悪いみたい。
TLとかリプライいじってみたけど、返事しないわ…orz
そもそも基本的なこと間違えてる気がしてならない…
ちょっと基本的な事勉強してくるわ、協力してくれてありがと。
0869nobodyさん
2010/01/08(金) 23:45:40ID:???さくらで勝手に削除されたのもそのせいだと思う
問題はその重いスクリプトを多くの人が参考にしてるってことだ
0870nobodyさん
2010/01/09(土) 00:01:26ID:???アクセストークンと認証トークンの取得までいけた。
で、APIアクセスしようとおもったら
Incorrect signatureっていわれた
これってoauth_signatureの作り方が間違ってるのかな?
0871nobodyさん
2010/01/09(土) 00:08:52ID:???自分もその表示が出て、対処方法が全然判らなかったから
一度全部消して、また最初からやり直したらいけたよ。
全然参考になってないけど…体験者より。
0873nobodyさん
2010/01/09(土) 00:15:30ID:???0874nobodyさん
2010/01/09(土) 00:19:34ID:???しかし、話題性があるから薄っぺらな内容でも
凄い事のようにマスコミが持ち上げてくれる。
0875nobodyさん
2010/01/09(土) 00:26:56ID:???直したらTweetできたやったあああああああ
0876nobodyさん
2010/01/09(土) 01:43:50ID:???PHPにアクセスするとしょっちゅうタイムアウトエラーが出るんだけど、これもそのせいかな?
そのおかげでcronがちゃんと動いていてもポストされないみたいなんだ
0877nobodyさん
2010/01/09(土) 02:05:23ID:???869じゃないけどたぶんそのせいだと思う。
cron-jobはただ単に指定したURLを叩くだけだったから、特に削除されるとかないし組み合わせ的には最適だったと思うよ。
0878nobodyさん
2010/01/09(土) 04:04:37ID:???//ポスト部分の関数
// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret,$message);
function tweet($username,$password,$id)
{
$message = urlencode($message);
$ch = curl_init();
★$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>"$message"),"POST");
curl_close($ch);
}
header("Content-Type: application/xml");
echo $req;
という風にしたら「Fatal error: Call to a member function OAuthRequest() on a non-object in★の行」というエラーが出てきてしまう…。
OAuthでリプライできてる方、ポスト部分はどうなってますでしょうか。
鯖はロリポでPHP5みたいです。
0879nobodyさん
2010/01/09(土) 04:05:19ID:???見にくくてすいません…
0880nobodyさん
2010/01/09(土) 11:14:41ID:???function tweet$username,$password,$id)を、
function tweet($consumer_key,$consumer_secret,$access_token,$access_token_secret,$message,$to)にするか、
$toをfunction内に書けば多分エラーが出なくなるはず
urlencodeは書いておいたほうがいいかもしれないけど、とりあえずcurlは書かなくておk
でもこれだといちいち呼び出さなきゃいけないから、適当なところに$toと$reqを書いたほうが楽だし軽くなると思う
0881nobodyさん
2010/01/09(土) 12:06:30ID:???無差別でフォローしてない相手にもリプライするbotが目に付くようになったね。
ああいうつまんないことで反感買って印象悪くするのは避けたいもんだね。
0882nobodyさん
2010/01/09(土) 12:08:43ID:???話しかけられた時、指定した単語が入ってないと「もう一回言って?」みたいな反応させたいんだけど、
こういう時はどうすればよいですか。
0885882
2010/01/09(土) 12:59:27ID:???0886nobodyさん
2010/01/09(土) 15:19:11ID:???「ライブラリを読み込む」の部分をSDNさんの「twitterOAuth.phpを読み込む」に
「Twitterからタイムラインを取得」をSDNさんの「例えば、TLを取得するのなら」に
それぞれ変更してるんだけど
Warning: array_reverse() [function.array-reverse]: The argument should be an array in /home~.php on line 33
($reply = array_reverse($reply);の行)
Warning: Invalid argument supplied for foreach() in /home~.php on line 41
(foreach($reply as $rep){ の行)
というエラーが出る。これってTLが読み込めてないってことなのかな?
もしかしたら全然見当違いなことしてるかもしれない・・・
0887nobodyさん
2010/01/09(土) 15:55:13ID:???反応しないようにするにはどうしたらいいのでしょうか…
if( $screen_name == $username){ //POSTが自分のPOSTだった場合にサブルーチンから抜ける
return;
}
if( preg_match("/\@$username/",$text)){
//POST内容に「/」で囲まれた中で書かれた文字列(この場合$username=@botのアカウント(自分へのリプライ))を探し、あった場合に次の処理に入る。無かったら対応する括弧以降へ飛ぶ
if( preg_match("/RT/",$text)){ //POST内に「RT」があるかどうか調べる
return; //「RT」がPOST内にあったので、処理を中断してサブルーチンから抜ける
}
ここらへんを変更するのかな?と思って色々触ってるのですが、どうしてもできません…
0888nobodyさん
2010/01/09(土) 17:27:25ID:???ありがとうございます。
ttp://mini.bitter.jp/oauth_reply.txt
アドバイスを見ながら書いてみたものが上のURLの物になります($toをfunction tweet()の下に入れてみました)
が、このようにすると
XML パースエラー: 要素が見つかりません。
URL: http://〜oauth_reply.php
行番号: 1, 列番号: 1:
というエラーが出てきてしまいます。このエラーでググってみてもイマイチこの場合と結びつかないというか…。
0889nobodyさん
2010/01/09(土) 20:41:00ID:???0890nobodyさん
2010/01/09(土) 21:58:48ID:???どうしたもんかな…
0891nobodyさん
2010/01/09(土) 22:17:16ID:???<?php
$username = "1111";
$key = "3333";
$consumer_key = "4444";
$consumer_secret = "5555";
$access_token = "6666";
$access_token_secret = "7777";
$filename = "data/data.dat";
$host = "http://twitter.com/statuses/mentions.xml";
$fp = @fopen($filename,'rb') or die("ファイルが開けません");
flock($fp, LOCK_EX);
$line = fgets($fp, 64);
fclose($fp);
if(!empty($line)){
$last_id=$line;
}else{
$cnt = "1";
}
$XML = getObjOAuth($host,$cnt,$last_id,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret);
0892nobodyさん
2010/01/09(土) 22:18:02ID:???$i = count($XML)-1;
$j = 0;
while($i >= $j) {
$var = $XML->status[$i]->text;
$com = ereg_replace("\@$username", "", $var);
$id= $XML->status[$i]->id;
$reply_name = $XML->status[$i]->user->screen_name;
$name = $XML->status[$i]->user->name;
$message = serif($reply_name,$name,$com);
//かえって来た値がnullじゃない場合のみ投稿する
if ($message != null){
tweetOAuth($message,$id,$key,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret);
}
$i--;
}
$string = $XML->status[0]->id;
if(!empty($string)){
$dat = (string)$string;
file_put_contents($filename,$dat,LOCK_EX);
}
function serif($reply_name,$name,$com){
(省略)
}
■ このスレッドは過去ログ倉庫に格納されています