Difference between revisions of "HTTP API/Bot Commands/get balance"
From SmartBots Developers Docs
m |
|||
Line 21: | Line 21: | ||
<syntaxhighlight lang="lsl"> | <syntaxhighlight lang="lsl"> | ||
− | string sbApiKey="..."; | + | string sbApiKey = "..."; |
− | string sbBotName="OneSmartBot Resident"; | + | string sbBotName = "OneSmartBot Resident"; |
− | string sbBotAccessCode="..."; | + | string sbBotAccessCode = "..."; |
− | key httpReq=NULL_KEY; | + | key httpReq = NULL_KEY; |
− | //Get posted data's value. | + | // Get posted data's value. |
− | //This function is from http://wiki.secondlife.com/wiki/Http_response | + | // This function is from http://wiki.secondlife.com/wiki/Http_response |
string get_post_value(string content, string returns) { | string get_post_value(string content, string returns) { | ||
− | list params = | + | list params = llParseString2List(content,["&"],[]); |
integer index = ~llGetListLength(params); | integer index = ~llGetListLength(params); | ||
Line 36: | Line 36: | ||
list values; | list values; | ||
− | //Loop through the parameters. | + | // Loop through the parameters. |
while (++index) { | while (++index) { | ||
list parsedParams = llParseString2List(llList2String(params, index), ["="], []); | list parsedParams = llParseString2List(llList2String(params, index), ["="], []); | ||
Line 48: | Line 48: | ||
return llList2String(values, found); | return llList2String(values, found); | ||
} else { | } else { | ||
− | return " | + | return ""; |
} | } | ||
} | } | ||
+ | |||
default { | default { | ||
− | + | // When the owner touches the object. | |
− | //When the owner touches the object. | + | |
touch_start(integer total_number) { | touch_start(integer total_number) { | ||
if(llDetectedKey(0) != llGetOwner()) { | if(llDetectedKey(0) != llGetOwner()) { | ||
− | + | llInstantMessage(llDetectedKey(0), "Only my owner can use me!"); | |
− | + | return; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
+ | |||
+ | //Set up the parameters we'll send to SmartBots. | ||
+ | string params = llDumpList2String([ | ||
+ | "action=" + "get_balance", | ||
+ | "apikey=" + llEscapeURL(sbApiKey), | ||
+ | "botname=" + llEscapeURL(sbBotName), | ||
+ | "secret=" + llEscapeURL(sbBotAccessCode) | ||
+ | ], "&"); | ||
+ | |||
+ | httpReq = llHTTPRequest("http://api.mysmartbots.com/api/bot.html", [HTTP_METHOD,"POST"], params); | ||
} | } | ||
//Get the SmartBots reply from the server. | //Get the SmartBots reply from the server. | ||
http_response(key request_id, integer status, list metadata, string body) { | http_response(key request_id, integer status, list metadata, string body) { | ||
− | if(request_id!=httpReq) return; | + | if(request_id! = httpReq) { return; } |
− | //Parse the SmartBots reply. | + | // Parse the SmartBots reply. |
string action = get_post_value(body, "action"); | string action = get_post_value(body, "action"); | ||
string result = get_post_value(body, "result"); | string result = get_post_value(body, "result"); | ||
Line 82: | Line 82: | ||
string balance = get_post_value(body, "balance"); | string balance = get_post_value(body, "balance"); | ||
− | |||
if(result=="FAIL") { | if(result=="FAIL") { | ||
+ | // If the command failed. | ||
llOwnerSay("Command '"+action+"' failed: "+resulttext); | llOwnerSay("Command '"+action+"' failed: "+resulttext); | ||
− | |||
} else { | } else { | ||
− | llOwnerSay("Your bot | + | // If the command was a success. |
+ | llOwnerSay("Your bot's balance is L$" + balance); | ||
} | } | ||
} | } |
Revision as of 08:51, 23 December 2016
Returns avatar L$ balance.
Variables
The following table shows input values (you send them with the API call) and returned output values.
Variable | Required | Description | ||
---|---|---|---|---|
Input basic parameters: | ||||
action | yes | = get_balance | ||
apikey | yes | Your personal developer's API key. | ||
botname | yes | Your bot's SL login. | ||
secret | yes | Bot access code of your bot. | ||
dataType | optional | Set to "json" to get JSON reply instead of URL-encoded string | ||
custom | optional | The custom data (string) to be passed back to caller script. This value will be returned back to the caller in HTTP response. | ||
Input: | ||||
command takes no input parameters | ||||
Output: | ||||
(to be received in http_response LSL event, see docs for details) | ||||
result | OK - command completed successfully FAIL - command failed | |||
resulttext | Detailed reason for the failure. | |||
custom | The value from input "custom" parameter. See above. | |||
balance | The balance of the bot |
Example
Requesting the avatar's balance from LSL:
string sbApiKey = "...";
string sbBotName = "OneSmartBot Resident";
string sbBotAccessCode = "...";
key httpReq = NULL_KEY;
// Get posted data's value.
// This function is from http://wiki.secondlife.com/wiki/Http_response
string get_post_value(string content, string returns) {
list params = llParseString2List(content,["&"],[]);
integer index = ~llGetListLength(params);
list keys;
list values;
// Loop through the parameters.
while (++index) {
list parsedParams = llParseString2List(llList2String(params, index), ["="], []);
keys += llUnescapeURL(llList2String(parsedParams, 0));
values += llUnescapeURL(llList2String(parsedParams, 1));
}
//Return our parameter or "FAIL".
integer found = llListFindList(keys, [returns]);
if(~found) {
return llList2String(values, found);
} else {
return "";
}
}
default {
// When the owner touches the object.
touch_start(integer total_number) {
if(llDetectedKey(0) != llGetOwner()) {
llInstantMessage(llDetectedKey(0), "Only my owner can use me!");
return;
}
//Set up the parameters we'll send to SmartBots.
string params = llDumpList2String([
"action=" + "get_balance",
"apikey=" + llEscapeURL(sbApiKey),
"botname=" + llEscapeURL(sbBotName),
"secret=" + llEscapeURL(sbBotAccessCode)
], "&");
httpReq = llHTTPRequest("http://api.mysmartbots.com/api/bot.html", [HTTP_METHOD,"POST"], params);
}
//Get the SmartBots reply from the server.
http_response(key request_id, integer status, list metadata, string body) {
if(request_id! = httpReq) { return; }
// Parse the SmartBots reply.
string action = get_post_value(body, "action");
string result = get_post_value(body, "result");
string resulttext = get_post_value(body, "resulttext");
string balance = get_post_value(body, "balance");
if(result=="FAIL") {
// If the command failed.
llOwnerSay("Command '"+action+"' failed: "+resulttext);
} else {
// If the command was a success.
llOwnerSay("Your bot's balance is L$" + balance);
}
}
}
<< return back to Bot commands
(Miss an API call or parameter? Submit your request in forum)