SOLVED Method to access "other user" items



  • Hello,

    Is there a way to access the items another user has in his inventory?
    We are looking for something similar to https://getbraincloud.com/apidocs/apiref/#capi-useritems-getuseritem but for another user.


  • brainCloud

    Hi Claudiu,

    It's possible to do this using cloud script... you just need to impersonate the other user...

    Here's an example script that does this - caveat, it only returns the first page of user items.

    Create the script, and set it's test parameters to:

    {
      "profileId": "www-xxx-yyy-zzzz-123456"
    }
    

    (Note - you'll of course want to replace profileId with an id of a user that you want to test with.)

    And here's the code...

    var response = {};
    
    // We need to impersonate another user to make this call
    var otherSession = bridge.getSessionForProfile( data.profileId );
    var otherUserItemsProxy = bridge.getUserItemsServiceProxy( otherSession );
    
    // Now, request the page of items from that proxy
    var context = {
      "pagination": {
        "rowsPerPage": 50,
        "pageNumber": 1
      },
      "searchCriteria": {},
      "sortCriteria": {
        "createdAt": 1
      }
    };    
    var includeDef = true;
    
    var itemResult = otherUserItemsProxy.getUserItemsPage( context, includeDef );
    
    if (( itemResult.status == 200) && ( itemResult.data.results.count > 0 )) {
        response.items = itemResult.data.results.items;
    } else {
        response.items = [];
    }
    
    response;
    

    For convenience I've attached an export of the script. You can import this script into your app from the Design | Cloud Code | Scripts screen.

    Hope that helps!

    Paul.

    RetrieveAnotherUsersItems.ccjs


Log in to reply