Difference between revisions of "HTTP API/Bot Commands/get balance"

From SmartBots Developers Docs
Jump to: navigation, search
Line 23: Line 23:
 
string sbApiKey="...";
 
string sbApiKey="...";
 
string sbBotName="OneSmartBot Resident";
 
string sbBotName="OneSmartBot Resident";
string sbBotAccessCode="kY9ngUTy4oB";
+
string sbBotAccessCode="...";
  
 
key httpReq=NULL_KEY;
 
key httpReq=NULL_KEY;

Revision as of 13:16, 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="...";

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)