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

【Twitter】 BOT製作支援スレ

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2009/09/27(日) 14:15:59ID:Dz08qoo4
見当たらなかったので立ててみた

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

*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
0853nobodyさん2010/01/08(金) 05:32:19ID:???
>>851
周期が1時間以内だと、消される方が正常
3分で消えないっておかしいな
0854nobodyさん2010/01/08(金) 06:00:29ID:???
>>853
そうなのか・・・じゃあさくらサーバー使ってる人でもcronは別な所で動かしてるってことなんですかね?
リプライは平気なのにTLはダメっていうのが不思議だけど、諦めて他の方法で動かすことにします
0855nobodyさん2010/01/08(金) 08:05:52ID:???
>>848
俺の目標は、ある人が人間と思ってフォローした人たちが全員botだった、という状況を作ることなのだよ。
0856nobodyさん2010/01/08(金) 08:14:21ID:???
遅くなりましたが>>837です
>>841さんのいうcron.xmlでの指定ミスが原因だったようで、urlのところを直したら
すんなり動いてくれました。web.xmlからURLを確認する過程自体をすっとばしていたという、
なんともお粗末な理由でした…
助言をくださった方、ありがとうございます。botが動いて感激です。
0857nobodyさん2010/01/08(金) 10:56:08ID:???
cron-job.orgからGAEに変えたんだけど、
GAEのログにファビコンが無いっていうエラーが出まくる
何かファイル追加してファビコンを指定すればいいらしいんだけど
具体的な方法がわからない…どこかに参考になるサイトとかないかな?
0858nobodyさん2010/01/08(金) 12:15:40ID:???
>>854
さくらだけど消されてないよ。
GAEで動かしてるからかな?

>>857
ブラウザでアクセスするのやめる
0859nobodyさん2010/01/08(金) 12:18:38ID:???
あ、すまん。
さくらの人が消されたのはcronの方か。
勘違いしてた
0860nobodyさん2010/01/08(金) 17:10:10ID:voJUVX7V
ごめん、OAuthの話に戻るんだけどさ
SDNさんを参考にして、定時はいけたんだけどリプライとTLがいまいちなんだ。
エラーも出ないでクライアント名とかリプライ元つきで返してくれているんだけど、
なんか叩くとめっちゃ返してくる…
前に答えたやつにも重複して返すし、tmpがうまく読めてないんかな。
初心者ですまない…元々銀次さんの所のコピペに頼りきりだったからどうしてすれば良いかわからないんだ。
教えてくれると凄く幸せになれるんだが…
0861nobodyさん2010/01/08(金) 17:41:13ID:???
>>860
銀さんとこのリプライソースでいいんだな?
リプライソースの中の

$ch = curl_init();
(中略)
curl_close($ch);

を全部消して、function tweetをSDNさんとこのソースに
tweetの引数は$message以外を削除、って感じで行けると思う
もちろん細かいところは適宜修正してくれ
0862nobodyさん2010/01/08(金) 17:57:17ID:voJUVX7V
>>861
ありがと。
でもごめん、その通りにしたら
<?xml version="1.0" encoding="UTF-8" ?>
- <hash>
<request>/statuses/update.xml</request>
<error>Incorrect signature</error>
</hash>
て@ページでエラーでたんだけどorz
function tweetの中が間違ってるんかな。
それともrequire_onceの場所がおかしいとか…?
もう訳わからんよ…細かいところの修正が出来てないからかな。
頭悪くてごめんな。
一回貼ったほうがわかりやすい?
0863nobodyさん2010/01/08(金) 18:02:23ID:???
>>862
見た方が早いことは早いかも
0864nobodyさん2010/01/08(金) 18:13:36ID:???
>>862
あーごめん
$ch = curl_init();
(中略)
curl_close($ch);
は消さなくてもいいや(OAuth認証でTL取得しない場合は)

消した場合(OAuth認証でTLを取得する場合)は
$XML = simplexml_load_string($result);
のところも変えないと駄目
0865nobodyさん2010/01/08(金) 18:32:53ID:voJUVX7V
>>864
お、ごめん長くて貼れなくて苦戦してた…
$XML = simplexml_load_string($result);
の部分なんだけど、ごめんどういじれば良い?
0866nobodyさん2010/01/08(金) 18:44:15ID:???
SDNさんとこのをそのまま使うんならこんな感じかな。ソース汚いけど
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
>>867
うわーごめん、何かほんと頭悪いみたい。
TLとかリプライいじってみたけど、返事しないわ…orz
そもそも基本的なこと間違えてる気がしてならない…
ちょっと基本的な事勉強してくるわ、協力してくれてありがと。
0869nobodyさん2010/01/08(金) 23:45:40ID:???
銀次さんのとこの方法は重くなるからcronに向かないな。
さくらで勝手に削除されたのもそのせいだと思う

問題はその重いスクリプトを多くの人が参考にしてるってことだ
0870nobodyさん2010/01/09(土) 00:01:26ID:???
自分でOAuthの実装してたんだけど、
アクセストークンと認証トークンの取得までいけた。
で、APIアクセスしようとおもったら
Incorrect signatureっていわれた

これってoauth_signatureの作り方が間違ってるのかな?
0871nobodyさん2010/01/09(土) 00:08:52ID:???
>>870
自分もその表示が出て、対処方法が全然判らなかったから
一度全部消して、また最初からやり直したらいけたよ。
全然参考になってないけど…体験者より。
0872nobodyさん2010/01/09(土) 00:09:55ID:???
>>871
マジか・・・
0873nobodyさん2010/01/09(土) 00:15:30ID:???
ついったは人工無能の分野でも研究対象になんのかな
0874nobodyさん2010/01/09(土) 00:19:34ID:???
ぜんぜんならない、効率悪い。

しかし、話題性があるから薄っぺらな内容でも
凄い事のようにマスコミが持ち上げてくれる。
0875nobodyさん2010/01/09(土) 00:26:56ID:???
シグネチャ作るときのURLが固定だったのが原因だった
直したらTweetできたやったあああああああ
0876nobodyさん2010/01/09(土) 01:43:50ID:???
>>869
PHPにアクセスするとしょっちゅうタイムアウトエラーが出るんだけど、これもそのせいかな?
そのおかげでcronがちゃんと動いていてもポストされないみたいなんだ
0877nobodyさん2010/01/09(土) 02:05:23ID:???
>>876
869じゃないけどたぶんそのせいだと思う。
cron-jobはただ単に指定したURLを叩くだけだったから、特に削除されるとかないし組み合わせ的には最適だったと思うよ。
0878nobodyさん2010/01/09(土) 04:04:37ID:???
>>860-868あたりを読んで自分なりに実装したんだけどちっとも動いてくれない…。

//ポスト部分の関数


// 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:???
>>878
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:???
プログラミングができなくても〜を参考にbot作ってます。
話しかけられた時、指定した単語が入ってないと「もう一回言って?」みたいな反応させたいんだけど、
こういう時はどうすればよいですか。
0883nobodyさん2010/01/09(土) 12:27:07ID:???
>>882
話しかけられた内容に指定ワードがあるかを検索したらいいだけだと思うが
0884nobodyさん2010/01/09(土) 12:55:12ID:???
>>882
phaさんが設置したbot用掲示板に書いてある
すこしはログ見るとかしてみないか?
08858822010/01/09(土) 12:59:27ID:???
本当だ、ちゃんと見てなかった・・・失礼しました
0886nobodyさん2010/01/09(土) 15:19:11ID:???
8bitさんのスクリプトをOAuthで動かしたくていろいろ弄ってるんだけどうまくいかない
「ライブラリを読み込む」の部分を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:???
自分宛以外のリプレイで「@nantoka こんにちわ」という文にbotが「こんにちわ」に
反応しないようにするにはどうしたらいいのでしょうか…

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:???
>>880
ありがとうございます。
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:???
oAuthにむりに固執しなくていいんじゃない?
0890nobodyさん2010/01/09(土) 21:58:48ID:???
6月以降はベーシック認証が「非推奨」になるんだっけ
どうしたもんかな…
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:???
>>891の続き

$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){
(省略)
}
0893nobodyさん2010/01/09(土) 22:19:03ID:???
>>892の続き

//OAuth経由でTwitterに投稿する
function tweetOAuth($message,$id,$key,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret){
require_once("twitterOAuth.php");
$message = mb_convert_encoding($message, "UTF-8","ASCII,JIS,UTF-8,EUC-JP,SJIS");
// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
// TwitterへPOSTする。パラメーターは配列に格納する
$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message,"in_reply_to_status_id"=>"$id"),"POST");
}

//OAuth経由でTwitterから取得
function getObjOAuth($host,$cnt,$last_id,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret){
require_once("twitterOAuth.php");
// OAuthオブジェクト生成
$to = new TwitterOAuth($host,$consumer_key,$consumer_secret,$access_token,$access_token_secret);
// TwitterからGETする
if(($cnt != null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("count"=>$cnt,"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");
}
$req_array = simplexml_load_string($req);
return $req_array;
}
?>
0894nobodyさん2010/01/09(土) 22:31:57ID:???
>>887
8bitnoteさんとこのスクリプトだと思うけどそこは関係ないよ
その下の
elseif( preg_match("/眠い/",$text)){ //上記で調べた自分へのリプライがなかった場合にこの処理に移る。POST内容に眠いが含まれていたら次の処理に移る
の前に@が含まれるpostを弾く処理を入れればいいはず
08958882010/01/10(日) 01:00:53ID:???
>>891-893
ソースありがとうございます!
891さんのソースをコピペして動かしてみた結果、Arrayという文字だけはPOSTしてくれるようになりました。
もうちょっとどうにかしてこようとおもいます。
ありがとうございました!
0896nobodyさん2010/01/10(日) 01:20:14ID:???
>>894
回答ありがとうございます
このPHPにはbotへの@リプライとTLから特定単語を拾ってリプライする動きを書いてます
@が含まれるpostを弾くと、このbotへのリプライに反応する事ができなくなってしまいます…
また

if( $screen_name != $username){ //POSTが自分のPOSTではなかった場合にサブルーチンから抜ける
return;
}

を打ってみたのですがやはりエラーが出ました
0897nobodyさん2010/01/10(日) 01:56:39ID:???
>>896
「botへのリプライ以外の」@を弾くだけだから大丈夫なはずだけど…
ちなみにうちではこんな感じで、反応語のチェックはswitchで書いてる

if( $screen_name == $username){ //POSTが自分のPOSTだった場合にサブルーチンから抜ける
return;
}if( preg_match("/\@$username/",$text)){ //POST内容にry
(略)
}elseif(! preg_match("/^[0-5]{0,1}$/",$now_g)){ //botが寝てる0〜5時台でなければTL反応させる
switch(true){
case preg_match("/\@/",$text) : return; //他の人への@ならサブルーチンから抜ける←これでbot宛以外のリプライには反応しない
break;
(略)
default : return;
break;
}
}
else{return;}
0898nobodyさん2010/01/10(日) 05:42:07ID:???
>>891の通りにやってみたら、PHPにアクセスすると真っ白の画面が出るようになってしまった
エラー表示されないから何が何だか・・・
0899nobodyさん2010/01/10(日) 05:42:42ID:???
>>891の
$username = "1111";
$key = "3333";
が何だかわからないんだけど、ごめん参考元?ってなにになるのかな?
0900nobodyさん2010/01/10(日) 10:42:09ID:???
>>899
えっ
0901nobodyさん2010/01/10(日) 12:03:57ID:???
>>899
ごめん$key要らない・・・
自分は複数BOT作ってて複数でも使いまわせるようにしてるんで、その名残だ
要らないところ削除して直したつもりが残ってたみたい
0902nobodyさん2010/01/10(日) 12:17:50ID:???
>>898
>>891のソースにはどこにも出力命令が無いんだから
ブラウザでアクセスして何も表示されないのは当たり前だろ
0903nobodyさん2010/01/10(日) 16:18:50ID:???
>>902
ごめん。真っ白になるだけでポストしないからどこかにエラーが出るはずだと思ったんだけど
さっき確認したら今まで普通に動いていた別のスクリプトでも同じ現象が起こった
そっちは弄ってないから原因は>>891ではないみたい
0904nobodyさん2010/01/10(日) 23:13:36ID:???
自動フォロー返し時にDM送るようにしてるんだけど
たまにフォローだけしてDM送られなかったりフォロー失敗してDMだけ送られたりする
この問題解消するときってどうすりゃいいのかな
0905nobodyさん2010/01/11(月) 17:34:10ID:???
すみません初心者で簡単な質問ですが、分かる方は教えて頂けると助かります…
(例)「おかえり、今日の夕飯は○○ですよ」
という文章で、○○の部分をランダムで変えたいのですがプログラムが分かりません

$mesi = array("和食","洋食","中華");

と書いて、

$mes['night'] = array( //夜の時間に発言
"おかえり、今日の夕飯は $mesi ですよ");

とやっているのですが、「おかえり、今日の夕飯はArrayですよ」と表示されてしまいます
0906DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/11(月) 17:40:24ID:???
>>905
> $mesi = array("和食","洋食","中華");
>
> と書いて、
>
> $mes['night'] = array( //夜の時間に発言
> "おかえり、今日の夕飯は $mesi ですよ");

$mesi = array("和食","洋食","中華");
$num = array_rand($mesi,1);
$mes['night'] = array(
"おかえり、今日の夕飯は $mesi[$num] ですよ");

でいいと思う。
0907nobodyさん2010/01/11(月) 18:02:52ID:???
>>906
早い回答ありがとう!
ついでに聞いておきたいんですが、$num = array_rand($mesi,1);の1ってなんの意味?
この中から1つ選ぶ…って事?
0908nobodyさん2010/01/11(月) 18:07:19ID:???
つ公式PHPマニュアル
0909nobodyさん2010/01/11(月) 18:12:07ID:???
API叩いた後に応答情報あるでしょ。
それが正しく帰ってきてればOKでいいじゃん。
0910nobodyさん2010/01/11(月) 18:25:16ID:???
php叩いても成功した時はなにも文章が出てきません…
そしてまた行き詰ったんだが、>>906やり方でやってみたら
ときどき何もランダム単語表示されない時がある…
「おかえり、今日の夕飯は ですよ」
みたいな感じ
0911nobodyさん2010/01/11(月) 18:36:05ID:???
飯抜きだったんだよ
0912nobodyさん2010/01/11(月) 23:35:54ID:???
だれうま
0913nobodyさん2010/01/11(月) 23:48:16ID:???
>>910だが、自力でどうにかなった
>>906の方法じゃないけどなぜか出来たのでこれで十分だ
0914nobodyさん2010/01/12(火) 01:54:55ID:???
自己解決したままじゃなくてどうやって解決したまで書かないと
0915nobodyさん2010/01/12(火) 06:32:37ID:???
>>849ですが8bitさんのスクリプトを使ってみたらさくらでもcron消されませんでした
GAEやろうとして行き詰まってたところだったから助かった!
0916nobodyさん2010/01/12(火) 19:19:52ID:???
@をもらうとおみくじを返す系のbotを製作中の初心者です。
phpを2分おきにGAEのcronで叩いてるんですが、タイムアウトにひっかかっているらしく、
たとえば30分以内の@に対しおみくじを返すように設定しても15回中5〜8回程度しか返って来ません。
これを「ひとつの@につきひとつのリプライを返す」というふうに、php側で処理することは可能でしょうか?
GAEのtask queuesも試してみたんですが、This queue is empty.と出て動きません。
きっと非常に初歩的なミスをしているのだと思いますが、どちらかについてご存知の方は
ご助言をお願いしますorz
0917nobodyさん2010/01/12(火) 19:59:34ID:???
リプライしても無視し続けたらボットだってバレるかな?
0918nobodyさん2010/01/12(火) 21:19:02ID:???
>>916
重くなってる処理はないか確認してみる
GAEはだいたい4~8秒くらいでタイムアウトになるからその分処理を軽くしなければならないよ

まあ晒せる範囲でソース晒してみたら
0919nobodyさん2010/01/12(火) 23:28:49ID:???
>>916
同文の投稿制限にひっかかってるとかもあるんじゃないのか
0920nobodyさん2010/01/14(木) 15:32:58ID:???
投稿関係でうまくいかないときって、連投規制に引っかかってることが多いよ
0921nobodyさん2010/01/14(木) 19:33:13ID:???
ttp://www.setcronjob.com/って今
@pages使ってる人だと動き不安定?
一度削除して登録し直そうとしてもタイムエラー出るんだが…
0922nobodyさん2010/01/14(木) 22:14:43ID:???
>>921
さくらでもタイムエラー出る…
0923nobodyさん2010/01/14(木) 22:16:36ID:???
サーバー自体がおかしいのかね
demoでログインしたらサーバーのcp.phpが入ってた
チェック中なのかな?明日には直ってくれるといいね
0924nobodyさん2010/01/14(木) 22:16:37ID:???
途中送信した。
今まで調子よかったのになんで急に…入金したばっかりなのに
0925nobodyさん2010/01/14(木) 22:51:55ID:???
SetCronJobはもう、このURLに達することができません。 誤り: 接続は外で調節しました。
有料垢だろうがjpドメインの鯖を規制してるっぽい。
0926nobodyさん2010/01/14(木) 22:57:00ID:???
えええ金取ってそれって詐欺じゃん
0927nobodyさん2010/01/14(木) 23:06:05ID:???
垢自体は凍結されてないので@PAGEからXREAに変えたら使えた。
0928nobodyさん2010/01/14(木) 23:11:02ID:???
申し訳ございません。 現在、一般向け無料サーバーの募集は行っておりません。 次期募集をお待ち下さい。

XREA…(´・ω:;.:...
0929nobodyさん2010/01/14(木) 23:27:59ID:???
完全に金かけずにやるのはもう厳しいな
0930nobodyさん2010/01/14(木) 23:30:28ID:???
>>845
詳しい作り方をblogとかに公開すればアクセス稼げるよきっと
0931nobodyさん2010/01/15(金) 00:30:49ID:???
URL転送サービスでURL変えて登録だと動かない?
0932nobodyさん2010/01/15(金) 01:11:26ID:???
GAE使えば無料じゃないか
0933DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/15(金) 01:56:33ID:???
どうも。cronのクローン作るとか言っていた香具師です。
sendmail,postfixが言う事を聞かないのでメールに頼らない認証方法を確立したいのですが、どうすれば良いでしょう…(人任せ)
せっかくTwit専用なのだしtwitterのアカウント経由で認証するのもありだと思います。
そうすれば管理もtitter経由で可能になりますし。
いかがでしょう。
0934nobodyさん2010/01/15(金) 01:59:48ID:???
SetCronJobの有料垢だけど、管理者からメールきてて
jpドメインでも使えるようにする案と、場合によっては返金するよって内容のものだった。
自分は自力で使えるようになったけど一応、対応はしてくれるみたいでちょっと安心した
0935nobodyさん2010/01/15(金) 02:03:03ID:???
無料でもjpドメイン使えるようになって欲しいな…
0936nobodyさん2010/01/15(金) 13:49:35ID:???
phaさんのリプライスクリプトにGAEを組み合わせて使ってるんだけど、
スクリプト中の「何分以内にもらったリプライを読み込む」を2分に、GAEのcronファイルも2分毎に更新にしてあるんだけど、どうも取りこぼしがあるみたいなんだよね。
そういうもん?
0937nobodyさん2010/01/15(金) 14:01:44ID:???
そうでもない
0938nobodyさん2010/01/15(金) 14:08:56ID:???
>>936
GAEが誤差があるからな
$limittime = $now - $cron * 60;
ここを変えれば良い
自分は62にしてる
それでも取りこぼしはあるけどね
あまり秒数を増やすと今度は2重投稿しちゃうよ
0939nobodyさん2010/01/15(金) 15:58:06ID:???
ttp://www.onlinecronjobs.com/
アメリカのでこんなの見つけたけど、使えない?
0940nobodyさん2010/01/15(金) 16:38:38ID:???
@pages使いでFree Web Cron Serviceでcron設定してるんだけど
一切反応しない…
5分間隔と20分間隔にしているんだけど何が原因なんだろう
0941nobodyさん2010/01/15(金) 17:04:16ID:???
今人間と会話できるbot作ってるんだけど、アルゴリズムが難しいんだ。
特に感情を持たせるにはどうすればいいかアイディアをくれないか?

一応疑問文に応答するアルゴリズムは大方できてるんだ。
問題は人間らしい感情をどうやって持たせるかなんだ。
0942nobodyさん2010/01/15(金) 19:36:41ID:???
>>938
おーありがとう!
ためしてみますー
0943nobodyさん2010/01/15(金) 19:42:55ID:???
>>941
そいつに死ねと言ったら死ぬかな?
0944DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/15(金) 22:00:57ID:???
>>941
感情のパラメータを作成して、単語ごとにエモーショナルレベルを設けて喜、哀、憂、怒などに数値を加算して表現してはいかがか
0945nobodyさん2010/01/15(金) 22:07:19ID:???
date_default_timezone_set('Asia/Tokyo');
$today = getdate();
$day1 = (55-date(z));

で日付取得と残り日数を計算して
今日は${today['mon']}月${today['mday']}日です。〜〜まであと".$day1."日です
っていうカウントダウンをポストしているんだが、定期だとうまく行くんだがリプレイだと日付が取得できないんだ。
リプライに対応するためにはソース書きなおさなきゃだめなのかな?
0946nobodyさん2010/01/15(金) 22:25:00ID:???
なんでリプライだと日付が取得できんの?
0947nobodyさん2010/01/15(金) 23:08:29ID:???
今日は${today['mon']}月${today['mday']}日です。〜〜まであと".$day1."日です
今日は月日です。〜〜まであと日です。
ってなるんだ。
理由は私が聞きたい\(^O^)/
0948nobodyさん2010/01/15(金) 23:32:27ID:???
両脇に半角スペース入れてみたら?
私も同じような事なった事あるけど、半角スペース入れたら直ったよ
0949DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/15(金) 23:49:40ID:???
>>947
""でくくらなくてよくないか?
""の中に直接変数を書き込めなかったっけ
"〜〜まであと$day日です"でおkだったと思う
0950nobodyさん2010/01/16(土) 00:08:39ID:???
>>947
引数が渡ってないとかじゃないかな
取得をまるっとユーザー関数の内側に入れてみてはどうだろう

見当違いだったらごめん
0951nobodyさん2010/01/16(土) 10:17:49ID:???
>>947
その中の変数を取得してから表示するまで処理ごとに表示してみればいんでないの。
0952nobodyさん2010/01/16(土) 10:18:47ID:???
変数のセットが関数外で、表示は関数内なのにglobal宣言してないとかはよくある話。
レス数が950を超えています。1000を超えると書き込みができなくなります。