-
Notifications
You must be signed in to change notification settings - Fork 2
RESTbot API
The original instructions are minimalistic, they just deal with establishing a connection and exiting a bot.
Except for establishing a connection, the original REST API is as follows:
Call http://your-host-where-RESTbot-lives.com:9080/<command_name>/<session_id>
while on the POST data, you put the actual parameters.
Establishing a connection will give you the <session_id>
using cURL:
curl http://localhost:9080/establish_session/<RESTbot password> -d first=<BotFirstName> -d last=<BotLastName> -d pass=<md5'ed bot password>
RESTbot password: the default is simply pass
.
This will return a session identification key.
curl http://localhost:9080/exit/<session_id>
where session_id is the session identification key received on the previous call.
Returns:
<restbot><disposed>true</disposed></restbot>
Parameters: key
curl http://localhost:9080/avatar_key/<session_id>/ -d key=d2cdf457-5027-4887-abd8-573c62a85226
Returns:
<restbot><name>Gwyneth Llewelyn</name></restbot>
Parameters: name
curl http://localhost:9080/avatar_key/<session_id>/ -d name=Gwyneth%20Llewelyn
Returns:
<restbot><key>d2cdf457-5027-4887-abd8-573c62a85226</key></restbot>
Parameters: key
curl http://localhost:9080/avatar_online/<session_id>/ -d key=d2cdf457-5027-4887-abd8-573c62a85226
Returns:
<restbot><online>False</online></restbot>
Parameters: key
curl http://localhost:9080/avatar_profile/<session_id>/ -d key=d2cdf457-5027-4887-abd8-573c62a85226
Returns:
True In RL I work for Beta Technologies: [https://betatechnologies.info](https://betatechnologies.info/)
What should I say more? I'm 40 and in a stable relationship, currently living in Portugal, at Europe's westernmost tip. 0488b909-b5d7-dd58-fe96-600a801d6c6f 00000000-0000-0000-0000-000000000000 7/31/2004 I'm accused by immersionists of being an augmentist; and augmentists believe I'm an immersionist. But I'm really just a virtual girl in a virtual world, enjoying this space just like you :)
Second Life mirrors the real life. The good and the bad of it.
Email me at gwyneth.llewelyn@gwynethllewelyn.net
... and in real life, I'm the European Operations Manager for Beta Technologies.
Joaz Janus: A rose by any other name would render so slowly
Distorted image? Well, I'm using a viewer that likes it! Resident 71416a9e-25a2-6e95-f96f-31bfb88ea7bc False True True http://gwynethllewelyn.net/
Parameters: key
curl http://localhost:9080/avatar_profile/<session_id>/ -d key=d2cdf457-5027-4887-abd8-573c62a85226
Returns:
<restbot>
<groups>
<group>
<name>Fashion Consolidated</name>
<key>0726f59a-ca0c-9e73-7c1e-075c5242eb5b</key>
<title>FashConnoisseur</title>
<notices>True</notices>
<powers>SendNotices, ReceiveNotices, VoteOnProposal</powers>
<insignia>349d1efa-176d-9995-a3f2-ffd4f61cc0e3</insignia>
</group>
<group>
<name>Neufreistadt</name>
<key>1436766e-2212-1062-fe69-f43b0095c890</key>
<title>Neufreistadter</title>
<notices>True</notices>
<powers>18446744073709551615</powers>
<insignia>31c58113-f7e7-f282-acf8-6265acab8285</insignia>
</group>
<group>
...
</group>
</groups>
</restbot>
Function unknown. Seems to have no parameters.
Apparently is tied to an internal garbage collector or deals with specific applications for Pleiades.
curl http://localhost:9080/dilation/<session_id>
Returns:
<restbot><dilation>0,9987054</dilation></restbot>
where the value is the current sim's dilation.
curl http://localhost:9080/sim_stat/<session_id>
Returns:
0,9964779 459 210 0 0 0 45 44,90754 2 82 2 2 0 20 0 31 29 0 0 0 0 0 106 22,24652 0,009069572 0,2268104
0,1629531
0,1085776
The commands below are new and manually added.
Used to set the avatar to an active group, using the group UUID. Returns active group and, in parenthesis, the group's role that is shown on the title.
Can be set to NULL key (00000000-0000-0000-0000-000000000000) to unset group.
curl http://localhost:9080/group_key_activate/<session_id> -d key=150829ee-a295-4ef6-3965-9f5c77ac3b52
Returns:
<restbot><active>Beta Technologies (Beta Technologies)</active></restbot>
Used to set the avatar to an active group, using the group name. Returns active group and, in parenthesis, the group's role that is shown on the title.
curl http://localhost:9080/group_name_activate/<session_id> -d name=Beta%20Technologies
Returns:
<restbot><active>Beta Technologies (Beta Technologies)</active></restbot>
Sends messages in Group IM Chat (on any group the 'bot has joined). Returns just if the message was sent or not.
Parameters are the UUID key for the group and a text message (urlencoded)
curl http://localhost:9080/group_im/<session_id> -d key=<group UUID> -d message="This%20is%20a%20test"
Returns:
<restbot><message>message sent</message></restbot>
Returns the whole inventory of this avatar. With an empty key, it starts from the root folder; add a folder key to just list that folder instead
Parameters: key for the folder where it should start
curl http://localhost:9080/list_inventory/<session_id> -d key=<folder UUID>
Returns:
<restbot>
<inventory>
<item>
<name>...</name>
<itemid>...</itemid>
</item>
...
</inventory>
</restbot>
Returns information from a single item in the inventory of this avatar.
Parameters: key for the item ID
curl http://localhost:9080/list_item/<session_id> -d key=<item ID>
Returns:
<restbot>
<item>
<AssetUUID>251ff15a-25c5-ebd7-ea13-c45e4e520f23</AssetUUID>
<PermissionsOwner>---</PermissionsOwner>
<PermissionsGroup>---</PermissionsGroup>
<AssetType>Texture</AssetType>
<InventoryType>Texture</InventoryType>
<CreatorID>d2cdf457-5027-4887-abd8-573c62a85226</CreatorID>
<Description>(No Description)</Description>
<GroupID>00000000-0000-0000-0000-000000000000</GroupID>
<GroupOwned>False</GroupOwned>
<SalePrice>10</SalePrice>
<SaleType>Not</SaleType>
<Flags>0</Flags>
<CreationDate>19-06-2009 18:20:35</CreationDate>
<LastOwnerID>00000000-0000-0000-0000-000000000000</LastOwnerID>
</item>
</restbot>
Transfers a single item from the inventory of this avatar to another avatar.
Parameters: itemID
for the item ID to give
avatarKey
for the recipient's avatar UIID
curl http://localhost:9080/list_item/<session_id> -d itemID=<item ID> -d avatarKey=<avatar UUID>
Returns:
<restbot>
<item>
<name>BetaTech_OV_RGB</name>
<assetType>Texture</assetType>
<itemID>6e89002b-6788-ecc5-c314-95f795b08cd8</itemID>
<avatarKey>d2cdf457-5027-4887-abd8-573c62a85226</avatarKey>
</item>
</restbot>
Creates a notecard on the 'bot's inventory with name, text, and optionally an attachment (for some reasons the attachment seems to be broken)
Parameters: name
(name for the notecard; if empty, a default name will be selected)
notecard
(text for the notecard's content; not tested with UTF-8 and special formatting yet)
key
(itemID for the attachment)
curl http://localhost:9080/create_notecard/<session_id> -d name=<string> -d notecard=<string> -d key=<item UUID>
Returns:
<restbot>
<notecard>
<ItemID>f2890f40-44ba-d123-0709-ec73ca42f237</ItemID>
<AssetID>093dea8c-8231-8515-decc-0f13ee0abada</AssetID>
<name>Notecard name</name>
</notecard>
</restbot>
Shows the current simulator name and the actual position of the 'bot.
Parameters: none
curl http://localhost:9080/location/<session_id>
Returns:
<restbot>
<location>
<CurrentSim>Beta Technologies (216.82.45.92:13000)</CurrentSim>
<Position><103.0242, 211.2815, 30.03234></Position>
</location>
</restbot>
Teleports 'bot to a specific simulator and a position (x,y,z) inside that sim. Position coordinates are floats.
Parameters: sim
for the simulator name (spaces should work fine if properly quoted)
x, y, z
Position inside the simulator to teleport to
curl http://localhost:9080/goto/<session_id> -d sim=<string> -d x=<float> -d y=<float> -d z=<float>
Returns:
<restbot><teleport>Beta Technologies</teleport></restbot>
Contributed by jonafree
Gets a list of primitives in the neighbourhood of the 'bot, in a certain radius.
Parameters: type
(it will do a partial search on the prim name; leave empty to retrieve all prims; it's case-sensitive)
radius
(in meters around the avatar)
curl http://localhost:9080/nearby_prims/<session_id> -d type=<string> -d radius=<float>
Returns:
<restbot>
<nearby_prims>
<prim>
<name>{0}</name>
<pos>{1},{2},{3}</pos>
</prim>
</nearby_prims>
</restbot>