Difference between revisions of "HTTP API/LSL Helper Functions"

From SmartBots Developers Docs
Jump to: navigation, search
 
Line 3: Line 3:
 
<syntaxhighlight lang="lsl">
 
<syntaxhighlight lang="lsl">
 
/**
 
/**
Send SmartBots HTTP API command.
+
* Send SmartBots HTTP API command.
 
*/
 
*/
 
smartbotsAPI(string command, list params) {
 
smartbotsAPI(string command, list params) {
Line 28: Line 28:
 
   llHTTPRequest("https://api.mysmartbots.com/api/bot.html",
 
   llHTTPRequest("https://api.mysmartbots.com/api/bot.html",
 
     [HTTP_METHOD,"POST"], queryString);
 
     [HTTP_METHOD,"POST"], queryString);
 +
}
 +
 +
/**
 +
* Send request to SmartBots API and expect the JSON response.
 +
*/
 +
smartbotsAPIJSON(string command, list params) {
 +
    smartbotsAPI(command, params + ["dataType", "json"]);
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Latest revision as of 14:35, 14 October 2019

The following functions will help you controlling bots from LSL scripts.

/**
* Send SmartBots HTTP API command.
*/
smartbotsAPI(string command, list params) {
  // You need to adjust the vars below:
  string sbApiKey = "...";
  string sbBotName = "...";
  string sbBotAccessCode = "...";

  // Populate the query data
  list query = [
    "action="  + command,
    "apikey="  + llEscapeURL(sbApiKey),
    "botname=" + llEscapeURL(sbBotName),
    "secret="  + llEscapeURL(sbBotAccessCode)
  ];

  integer i;
  for(i = 0; i<llGetListLength(params); i += 2) {
    query += [ llList2String(params, i) + "=" + llEscapeURL(llList2String(params, i+1)) ];
  }

  string queryString = llDumpList2String(query, "&");
 
  llHTTPRequest("https://api.mysmartbots.com/api/bot.html",
    [HTTP_METHOD,"POST"], queryString);
}

/**
* Send request to SmartBots API and expect the JSON response.
*/
smartbotsAPIJSON(string command, list params) {
    smartbotsAPI(command, params + ["dataType", "json"]);
}

Usage example:

smartbotsAPI("im", [
  "slname", "Glaznah Gassner",
  "message", "Hello in-world!"
]);