get_balance
Returns the bot’s avatar L$ balance.
string params = llDumpList2String([
"action=" + "get_balance",
"apikey=" + llEscapeURL(sbApiKey),
"botname=" + llEscapeURL(sbBotName),
"secret=" + llEscapeURL(sbBotAccessCode)
], "&");
httpReq = llHTTPRequest("https://api.mysmartbots.com/api/bot.html", [HTTP_METHOD,"POST"], params);Variables
The following table shows input values (you send them with the API call) and returned output values.
Input basic parameters
Variable | Required | Description |
|---|---|---|
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
This command has no additional input parameters.
Output
(To be received in *http_response* LSL event, see docs for details)
Variable | Description |
|---|---|
result | OK - command completed successfully |
resulttext | Detailed reason for the failure |
custom | The value from input "custom" parameter. See above |
balance | The L$ balance of the bot |
Example
This example script requests the bot's avatar balance from LSL and demonstrates how to parse HTTP API replies using the get_post_value function.
string sbApiKey = "...";
string sbBotName = "OneSmartBot Resident";
string sbBotAccessCode = "...";
key httpReq = NULL_KEY;
// Get posted data's value.
string get_post_value(string content, string returns) {
list params = llParseString2List(content, ["&"], []);
integer index = ~llGetListLength(params);
list keys;
list values;
while (++index) {
list parsedParams = llParseString2List(llList2String(params, index), ["="], []);
keys += llUnescapeURL(llList2String(parsedParams, 0));
values += llUnescapeURL(llList2String(parsedParams, 1));
}
integer found = llListFindList(keys, [returns]);
if (~found) {
return llList2String(values, found);
} else {
return "";
}
}
default {
touch_start(integer total_number) {
if (llDetectedKey(0) != llGetOwner()) {
llInstantMessage(llDetectedKey(0), "Only my owner can use me!");
return;
}
string params = llDumpList2String([
"action=" + "get_balance",
"apikey=" + llEscapeURL(sbApiKey),
"botname=" + llEscapeURL(sbBotName),
"secret=" + llEscapeURL(sbBotAccessCode)
], "&");
httpReq = llHTTPRequest("https://api.mysmartbots.com/api/bot.html",
[HTTP_METHOD, "POST"], params);
}
http_response(key request_id, integer status, list metadata, string body) {
if (request_id != httpReq) return;
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") {
llOwnerSay("Command '" + action + "' failed: " + resulttext);
} else {
llOwnerSay("Your bot's balance is L$" + balance);
}
}
}