*ゴーストからウェブ拍手を送る方法 [#ccf142a1]

ゴーストのinputboxから、開発者サイトのウェブ拍手へメッセージを送る方法です。~
YAYAとSSPの最新版を想定しています。

下のスクリプトは、パラメータが[[patipati>http://www.gnbnet.com/patipati/]]用になっています。ほかのウェブ拍手には、

 _parameters = "com=%(_ghostprefix + SUBSTR(reference0,0,_cutoff))"

この行を変更することで対応可能です。


 ///////////// ゴーストマスタに一言フォーム
 OnShowWebclapForm
 {
 	// \![open,inputbox,OnSendWebclap,0,] をスクリプト中に入れると、フォームが表示される。
 	// ↓は表示例
		
 	"\t\u\s[10]\h\s[5]\![open,inputbox,OnSendWebclap,0,]ウェブ拍手を送れるえ。\u\w9\w950文字までだぞ。\e"
 
 }
 
 OnSendWebclap
 {
 	//////////////////////////////////////////
 	// あなたの環境にあわせて設定 ↓
 	//////////////////////////////////////////
 	
 	// patipati 用 設定(2007.8.7版)
 	// 配布ページ http://www.gnbnet.com/patipati/
 	
 	// ウェブ拍手のURL
 	_webclapurl  = 'http://your.server.com/patipati/index.cgi'
 	
 	// (どのゴーストから送られたかを判別するための)プレフィックス文字列
 	_ghostprefix = 'FROM_GHOST(test):'
 	
 	// 何文字まで送れるかの制限(文字数)
 	_cutoff = 50
 	
 	
 	/* ここから先は基本的にトークを追加するだけ! */
 	
 	// メッセージを収納する変数
 	_msg = REPLACE( _msg, '[', '\[' )
 	_msg = REPLACE( _reference0, '[', '\[' )
 	
 	// パラメータ作成
 	_parameters = "com=%( _ghostprefix + SUBSTR(_msg,0,_cutoff) )"
 	
 	
 	// 文字数制限をかける
 	if STRLEN(_msg) > TOINT(_cutoff)
 	{
 		"\![open,inputbox,OnSendWebclap,0,%(SUBSTR(_msg,0,_cutoff))]" // ここはさわらない
 		--
 		"\u\s[10]\h\s[9]送れるん、\w5%(_cutoff)文字までやねん。\w9\nもうちょっと短くしてな?\u\w9\w9すまんなー。\e"
 		/* ここに_cutoff文字以内にしてねというメッセージを並べる */
 	}
 	elseif (reference0 != 'timeout')
 	{
 		"\![execute,http-post,%(_webclapurl),--param=%(_parameters),--async=WEBCLAP,--param-charset=Shift_JIS]\e"
 		/* これがウェブ拍手メッセージを送る本体。いじらない */
 	}
 	else
 	{
 		"\u\s[10]\h\s[9]ほな、\w5また気が向いたらよろしくな。\u\w9\w9ん。\e"
 		/* ここにタイムアウト時のメッセージを並べる */
 	}	
 }
 
 OnExecuteHTTPComplete
 {
 	if reference1 == 'WEBCLAP'
 	{
 		"\u\s[10]\h\s[5]送ったえ。\u\w9\w9ありがとうだ。\e"
 		/* きちんと送れた場合のメッセージを並べる */
 	}
 
 }
 
 OnExecuteHTTPFailure
 {
 	if reference1 == 'WEBCLAP'
 	{
 		"\u\s[10]\h\s[4]アカン、\w5送れへんかった。\u\w9\w9%(reference4)だそうだ。\e"
 		/* 送れなかった場合のメッセージを並べる。%(reference4)は送れない原因 */
 	}
 
 }


SSPの\![execute,http-post,...]を使っているため、古いSSPやCROW・Materiaでは動作しません。~
それらの環境で動作させるためには、櫛ヶ浜やぎ様の[[httpc.dll>http://www.geocities.jp/poskoma/]]を使ったうえで、~
ウェブ拍手側のスクリプトを、getメソッドで受信できるように改造する必要があります。~
ちょっと面倒…。


*** 修正履歴 [#r36b891e]

-2007/8/8 - 拍手テキストに「]」が含まれているとき、スクリプトがトークに漏れる不具合の対策を追加。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS