セカンドライフとインターネットとの連携
オブジェクトを右クリックしTouchすると、インターネットのhttp://www.aipiro.com/lsltips/index25.phpへ
アクセスし、そこで得られた情報を表示します。
下記のスクリプトを使います。
key requestid;
default { touch_start(integer total_number){ requestid = llHTTPRequest("http://www.aipiro.com/lsltips/index25.php", [HTTP_METHOD, "POST",HTTP_MIMETYPE, "application/x-www-form-urlencoded"], ""); } http_response(key request_id, integer status, list metadata, string body){ if (request_id == requestid) llWhisper(0, body); } } |
llHTTPRequest関数 一番目のパラメータ : アクセスするURL 二番目のパラメータ : HTTPリクエスト情報(HTTP_METHOD 、HTTP_MIMETYPE、HTTP_BODY_MAXLENGTH 、HTTP_VERIFY_CERT ) 三番目のパラメータ : POSTパラメータと値 |
http_responseイベント 一番目のパラメータ : アクセスが成功した場合は、llHTTPRequest の戻り値が返ります。エラーの場合はNULL_KEY が返ります。 二番目のパラメータ : HTTP code (like 404 or 200)エラーコードが入ります。 三番目のパラメータ : メタデータ 四番目のパラメータ : レスポンスのbody(最大2049バイトまで) |
インターネット側においたindex25.phpの内容はこんな簡単なものです。
<? echo "The time of going to work of Aipiro is 22:00. " ; ?> |
<補足>
このサンプルスクリプトでは行っていませんが、POSTやGETでパラメータを渡すことも可能なので、
LSLからWEBサイトの情報を更新!なんてこともできます。
LSL側で
llHTTPRequestの最後の引数に"param1=XXX¶m2=YYYY"と指定し、
PHP側で
$parameter1 = $_POST["param1"];
$parameter2 = $_POST["param2"];
という感じで取得できます。(parameter1にはXXXが、parameter2にはYYYが入ります。)
また、ヘッダー情報にオブジェクト情報が入るのでオーナー名などを取得することもできます。
このTipsを利用してSL内でアンケート調査してます。SLでアンケートにご協力ください。