MySpace Open Platform

A Place For Developers

Welcome Developers!

in

Welcome!

in

Example code from DevJam Seattle

Last post 03-17-2008 7:23 AM by Shrimpy Doodle. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 03-15-2008 3:01 PM

    • Chris
    • Top 150 Contributor
    • Joined on 02-06-2008
    • Posts 27
    • MDP Team

    Example code from DevJam Seattle

     Here is the code from our breakout session that stores key value pairs in App Data;

     

        <script>
           
            var catBreeds = ["Persian","American Shorthair","Abysinian",
            "Egypian Mow","Manx"
            ];
           
            var container;
           
            function init()
            {
                container = opensocial.Container.get();
               
                var dataRequest = container.newDataRequest();
               
                var personRequestParams = {};
               
               
                var ownerRequest = dataRequest.newFetchPersonRequest(
                    opensocial.DataRequest.PersonId.OWNER
                );
               
                var viewerRequest = dataRequest.newFetchPersonRequest(
                opensocial.DataRequest.PersonId.VIEWER);
               
                var ownerFriendsRequest = dataRequest.newFetchPeopleRequest(
                    opensocial.DataRequest.Group.OWNER_FRIENDS
                );
               
                dataRequest.add(ownerRequest,'ownerProfile');
                dataRequest.add(ownerFriendsRequest,'ownerFriends');
                dataRequest.add(viewerRequest,'viewerProfile');
               
                dataRequest.send(init_callback);
               
                   
            }
           
            function init_callback(response)
            {
               
                if(response.hadError())
                {
                    output("Ooops! Response error");
                }
                else
                {
                    var ownerProfileResponse = response.get('ownerProfile');
                   
                    var ownerProfile = ownerProfileResponse.getData();
                    var ownerFriends = response.get('ownerFriends').getData();
                    var viewerProfile = response.get('viewerProfile').getData();
                   
                    output("Hello, " + ownerProfile.getField(
                        opensocial.Person.Field.NAME
                    ));
                   
                    output("Here are your friends!");
                   
                    var request = container.newDataRequest();
                    var i = 0;
                   
                    ownerFriends.each(
                    function(thisFriend)
                    {
                        output("This friend is..." + thisFriend.getField(
                        opensocial.Person.Field.NAME));
                       
                        var tempReq = container.newUpdatePersonAppDataRequest(
                       
                        opensocial.DataRequest.PersonId.VIEWER,
                       
                        thisFriend.getField(opensocial.Person.Field.NAME),
                       
                        "Egyptian Mow"
                        );
                       
                        request.add(tempReq,"Temp_" + i++);
                   
                       
                    }
                    );
                   
                    request.send(mycallback);
                   
                }
            }
           
            function mycallback(response)
            {
                var request = container.newDataRequest();
               
                var appDataRequest = request.newFetchPersonAppDataRequest(
                opensocial.DataRequest.PersonId.VIEWER,"");
               
                request.add(appDataRequest,'myappdata');
               
                request.send(mycallback2);
            }
           
            function mycallback2(response)
            {
                var appData = response.get('myappdata').getData();
               
                appData.each(function(thisAppData){
                    var tempVariable = "";
                });
            }
           
            function output(message)
            {
                document.getElementById("output").innerHTML += "<br>"
                + message;
            }
           
           
            init();
           
        </script>
       
        <div id="output"></div>   
     

    Filed under:
  • 03-16-2008 2:05 AM In reply to

    Re: Example code from DevJam Seattle

    Hi Chris - please can you get someone to post an ActionScript version of setting app data?

    I just want to let the user set their background color of a Flash App to match their site.

    I ( + other guys on this forum)  have managed to read app data in AS but not been able to set any.

    Thanks

    Eddie 

  • 03-16-2008 10:54 PM In reply to

    • Dave
    • Top 25 Contributor
    • Joined on 02-05-2008
    • Posts 137

    Re: Example code from DevJam Seattle

    Hi Eddie, I think in the short term you can't set data from Flash. Flash doesn't support PUT.

    It is in theory possible to hack PUT using sockets to implement a custom httpclient. But I haven't tried it and it typically requires some crossdomain settings specifically to allow the socket (at least from what I can remember when I tried it with amazon s3).

    The other way is to make a signed Flash makeRequest call to your server, validate the call, and then do the set from there..

    If anyone wants to try hacking a httpclient I'd be up for helping. I tried it once with amazon s3, so I have some code to start from.


  • 03-17-2008 1:55 AM In reply to

    Re: Example code from DevJam Seattle

     Thanks for the reply Dave. In short I'm not that clever unfortuneatly. Eddie

  • 03-17-2008 7:23 AM In reply to

    Re: Example code from DevJam Seattle

    I might be interested in hacking it, IF their is no rest api provided which makes no sense... So probably not.  

Page 1 of 1 (5 items)