• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:TwitterのBotをEasyBotter2.0+@Pagesの無料)

TwitterのBotをEasyBotter2.0+@Pagesの無料サーバで運用しています。

このQ&Aのポイント
  • 自動フォロー返し時にリプライを送る方法に関して質問です。
  • フォローしたユーザーに対してランダムなリプライを送りたいですが、現在はDしか送信されません。
  • PHPの基礎知識がなく、解決方法を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 EasyBotter2.0のソースを覗いてみました。  自動フォロー返しで処理をしようとしているのであれば、autoFollow関数に改造を加えているのかと思われますが、ランダムなリプライを送りたいのであれば、これはデータをテキストファイルから読みだしている形ですがpostRandom関数(というより実際に発言データをランダムに抽出しているmakeTweet関数)の方も参照してみてはいかがでしょうか。  質問に書かれているソースのように、単に$valueに複数のステータスを入れても、setUpdateの先でランダムで取り出してくれるわけではないので、ランダムなリプライはできません。(というか、setUpdateの先では$value["status"]は単一の文字列としか扱っていないので、ここに複数の文字列を入れようとしても意味ありません。  ランダムにリプライするなら$value["status"]に設定する以前に複数データから1個のデータをランダムに取り出しておく必要があります。 例えばrand関数を用いて $rnd_reply = array( 0 =>"@{$rscreen_name} A", "@{$rscreen_name} B", "@{$rscreen_name} C", "@{$rscreen_name} D" ); $value = array(); $value["status"] = $rnd_reply[rand(0,3)]; とするのも一つの方法です。

xxdaiadxx
質問者

お礼

ありがとうございました!!できました!! 今回のことでかなり勉強になりました~。 完成形はこんな感じになりました。 //■■フォローした時にリプライを送る■■ foreach($followList as $rscreen_name){ $rnd_reply = array( 0 =>"@{$rscreen_name} A", "@{$rscreen_name} B", "@{$rscreen_name} C", "@{$rscreen_name} D" ); $value = array(); $value["status"] = $rnd_reply[rand(0,3)]; $response = $this->setUpdate($value); $result = $this->showResult($response); $results[] = $result; }

その他の回答 (1)

回答No.1

どうしてこれでランダムに出力できると判断しているのか謎ですが、Dしか出ないのは実質的に配列にDしか格納されていないからです。同じキーで代入したら、新しいものが順番に上書きされるので、最後のものしか残りません。 $value = array( "status"=>"@{$rscreen_name} A", "@{$rscreen_name} B", "@{$rscreen_name} C", "@{$rscreen_name} D", ); のように2番目以降のキーを省略するか、 $value = array( "status1"=>"@{$rscreen_name} A", "status2"=>"@{$rscreen_name} B", "status3"=>"@{$rscreen_name} C", "status4"=>"@{$rscreen_name} D", ); のように違うキーを使う必要があります。

xxdaiadxx
質問者

お礼

早速のご回答ありがとうございます! よく分からないなりにも、前者の方は試した(つもり)のですが、 その時は動かなかったので、もう一度これで正確にやってみます。 (Dの後の,が無かったかも・・・) それでダメだったら後者の方でやってみて、ちょっと 様子を見たいと思います。 ありがとうございました!!

xxdaiadxx
質問者

補足

magicalpassさんの回答を両方共、2日間ずつ試しましたがダメでした。 エラーは出ませんが、出力をしない状態です。 現在は以前のように、一つのリプライパターンで正常に動いています。 ですので、引き続き募集させていただければ幸いです。

関連するQ&A