Difference between revisions of "HTTP API/Bot Commands/get balance"
From SmartBots Developers Docs
Line 20: | Line 20: | ||
<syntaxhighlight lang="lsl"> | <syntaxhighlight lang="lsl"> | ||
− | |||
− | |||
− | + | string sbApiKey="..."; | |
− | + | string sbBotName="OneSmartBot Resident"; | |
− | + | string sbBotAccessCode="kY9ngUTy4oB"; | |
− | + | ||
− | llHTTPRequest("http://api.mysmartbots.com/api/bot.html", | + | key httpReq=NULL_KEY; |
− | + | ||
+ | default { | ||
+ | |||
+ | touch_start(integer total_number) { | ||
+ | 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); | ||
+ | } | ||
+ | |||
+ | // This event is required only if you want to process the SmartBots's reply | ||
+ | http_response(key request_id, integer status, list metadata, string body) { | ||
+ | if(request_id!=httpReq) return; | ||
+ | |||
+ | // Store result here | ||
+ | string result; | ||
+ | string resulttext=""; | ||
+ | string action=""; | ||
+ | integer balance = 0; | ||
+ | |||
+ | // Parse server reply | ||
+ | list pairs=llParseString2List(body,["&"],[]); | ||
+ | integer i=0; | ||
+ | for(i=0;i<llGetListLength(pairs);i++) { | ||
+ | list keyv=llParseString2List(llList2String(pairs,i),["="],[]); | ||
+ | string keyname=llList2String(keyv,0); | ||
+ | string value=llUnescapeURL(llList2String(keyv,1)); | ||
+ | |||
+ | //Store the result values. | ||
+ | if(keyname=="result") result=value; | ||
+ | if(keyname=="resulttext") resulttext=value; | ||
+ | if(keyname=="action") action=value; | ||
+ | if(keyname=="balance") balance=(integer)value; | ||
+ | } | ||
+ | |||
+ | if(result=="FAIL") { | ||
+ | llOwnerSay("Command '"+action+"' failed: "+resulttext); | ||
+ | } else { | ||
+ | //Say the bot's balance. | ||
+ | llOwnerSay("Your bot has L$" + (string)balance); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 09:19, 21 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="kY9ngUTy4oB";
key httpReq=NULL_KEY;
default {
touch_start(integer total_number) {
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);
}
// This event is required only if you want to process the SmartBots's reply
http_response(key request_id, integer status, list metadata, string body) {
if(request_id!=httpReq) return;
// Store result here
string result;
string resulttext="";
string action="";
integer balance = 0;
// Parse server reply
list pairs=llParseString2List(body,["&"],[]);
integer i=0;
for(i=0;i<llGetListLength(pairs);i++) {
list keyv=llParseString2List(llList2String(pairs,i),["="],[]);
string keyname=llList2String(keyv,0);
string value=llUnescapeURL(llList2String(keyv,1));
//Store the result values.
if(keyname=="result") result=value;
if(keyname=="resulttext") resulttext=value;
if(keyname=="action") action=value;
if(keyname=="balance") balance=(integer)value;
}
if(result=="FAIL") {
llOwnerSay("Command '"+action+"' failed: "+resulttext);
} else {
//Say the bot's balance.
llOwnerSay("Your bot has L$" + (string)balance);
}
}
}
<< return back to Bot commands
(Miss an API call or parameter? Submit your request in forum)