1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="REST/RPC sample">
      <Require feature="opensocial-0.8" />
  </ModulePrefs>
  <Content type="html">
    <![CDATA[
<!-- ALm6fM3VC37Rbric3ihF9MdU5NnLZn5UomLQ94PXd3nzDVpfGTL-mBDGdo7mMYYYACVSwgIOC-VAgajula83nlrFV-2v_bO4Uwj-ALp3SPbOfl1K1qn8zaPwVfLyXQ0_HGLiyyOdaQL- -->        <script>
          // Sends a signed makeRequest to a specified remote server for testing purposes
          function sendSignedRequest() {
            var params = {};
          params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
          params["OAUTH_SERVICE_NAME"] = "HMAC";  //This is the critical part which forces the use of HMAC
          params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
          params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
          params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({ "test" : "1\"23" });
        
          var url = document.getElementById('url').value;
          gadgets.io.makeRequest(url, showResponse, params);
          };
          
        // Displays the response data
        function showResponse(response) {
          document.getElementById('response').innerHTML = response.text;
        };
        
        // Loads the VIEWER ID and saves a token to appData
        function init() {
          var someToken = {'hash' : {'key' : 'value', 'key2' : 2}, 'integer' : 1241};
          var json = gadgets.json.stringify(someToken);

          var req = opensocial.newDataRequest();
          req.add(req.newUpdatePersonAppDataRequest("VIEWER", 'token', json));
          req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.OWNER), "me");
          req.send(function(data) {
            document.getElementById('os_id').innerHTML = data.get("me").getData().getId();
          });
        }
      
        gadgets.util.registerOnLoadHandler(init);
        </script>
        <p>Your ID is: <span id='os_id'></span></p>
        <p>To send a request to your server, in order to verify signed makeRequest, enter a URL and click 'Send'.</p>
        <input type="text" name="url" id="url" /> <a href='javascript:void(0);' onclick='sendSignedRequest();'>Send</a>
        <p>Server response text:</p>
        <p id='response'></p>
      ]]> 
  </Content>
</Module>