|
|
(9 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | The SWebService class allows you to contact servers you control via HTTP[S] and GET or POST data strings.
| + | This page has moved to: https://docs.sine.space/v/scripting/client-scripting/network/swebservice |
− | | + | |
− | ==Whitelisting==
| + | |
− | To prevent Space users from unintentionally becoming part of a DDoS botnet, the Space client will first check for a file on a domain before allowing communications with the domain. If this file cannot be found, it will no longer communicate with that domain until the user logs.
| + | |
− | | + | |
− | To setup your server for communication with space, in the root of your domain, on the port you are using, place a file named 'sinewave.space.scripting.txt' containing 'SPACE_OK'. E.g. http://somewhere.com/sinewave.space.scripting.txt - if this file is not present, you will be unable to use scripting to communicate with the domain. ''Note: you should use HTTPS for all API calls if you want these to work reliably in WebGL. You may also need to implement a CORS policy in your webserver headers.''
| + | |
− | | + | |
− | ==Members==
| + | |
− | {{ScriptFunction|void|Get|(string url, Action<SWebResponse> onComplete);|Performs a HTTP[S] GET against URL and returns the contents as a SWebResponse|5 = local value1 = "SomeValue1"<br>
| + | |
− | local value2 = "SomeValue2"<br>
| + | |
− | local sentData = "http://www.someplace.net/someScript.php?variable1=" .. value1 .. "&variable2=" .. value2<br>
| + | |
− | <br>
| + | |
− | local response = function(data)<br>
| + | |
− | if data.Error == "" or data.Error == nil then<br>
| + | |
− | Space.Log(data.Response)<br>
| + | |
− | end<br>
| + | |
− | end<br>
| + | |
− | <br>
| + | |
− | webService.Get(sentData, response)<br>
| + | |
− | -- NOTE: variable1 and variable2 would match Get variables in someScript.php.}} | + | |
− | | + | |
− | {{ScriptFunction|void|Post|(string url, string data, Action<SWebResponse> onComplete);|Performs a HTTP[S] POST against URL using data as a post string and returns the contents as a SWebResponse|5 = local value1 = "SomeValue1"<br>
| + | |
− | local value2 = "SomeValue2"<br>
| + | |
− | local url = "http://www.someplace.net/someScript.php"<br>
| + | |
− | local sentData = "variable1=" .. value1 .. "&variable2=" .. value2<br>
| + | |
− | <br>
| + | |
− | local response = function(data)<br>
| + | |
− | if data.Error == "" or data.Error == nil then<br>
| + | |
− | Space.Log(data.Response)<br>
| + | |
− | end<br>
| + | |
− | end<br>
| + | |
− | <br>
| + | |
− | webService.Post(url, sentData, response)<br>
| + | |
− | -- NOTE: variable1 and variable2 would match Post variables in someScript.php.}}
| + | |
− | | + | |
− | {{ScriptFunction|SResource|GetImage|(string url);|Returns a valid SResource for a image on a remote domain that can be used via e.g. [[Scripting/SMaterial]]. While the image loads, it will be a white pixel that will be substituted with the real image once loaded.|5 = local webService = Space.WebServices<br>
| + | |
− | <br>
| + | |
− | -- PresenterCube is a cube object attached to the script in Object References<br>
| + | |
− | local presenter = Space.Host.GetReference("PresenterCube")<br>
| + | |
− | local meshRenderer = presenter.MeshRenderer<br>
| + | |
− | <br>
| + | |
− | local webImage = webService.GetImage("http://someplace.net/someImage.png")<br>
| + | |
− | meshRenderer.material.SetTexture("_MainTex", webImage)<br>
| + | |
− | -- Displays webImage on the cube's albedo (_MainTex) slot}}
| + | |
− | | + | |
− | {{Scripting Navbox}}
| + | |