Question

It used to be that the response from a request gave us an array of request ids (as described here http://developers.facebook.com/docs/reference/dialogs/requests/) but it seems now the response variable returns two items insead 'to' and 'request'. To being a comma delimited string of user ids and request being a request id. Is this correct? I have seen nothing about this anywhere but it is the behavior I am seeing currently.

Update Here is a super simplified version of my call:

FB.ui({method: 'apprequests', message: 'My Great Request'}, requestCallback);
function requestCallback(response) {
    for(var key in response){
        console.log(key);
        console.log(response[key]);
    }
}

When I make a request to one person the variable response has two keys: request and to. Request is a request id, to is the id of the person I'm sending the request to. If I make a call to the graph api using the provided request id, however, I find that the user under both 'to' and 'from' are equal to the sender's name and fbid.

Alternatively, if I request to multiple people request is equal to a single request id and to is an array containing all the fbids of the users that had requests sent to them. When I make a call to the graph api, however, I once more find that both 'to' and 'from' contain the user id and name of the requesting user.

Was it helpful?

Solution

I faced similar issue yesterday. Had to fix my code. But today request_ids were back in the response. So I updated the code again. But this time to work with both type of objects.

I found the documentation here (move down to the "Performance improvements" section) http://developers.facebook.com/blog/post/569/

But it still doesn't explains why they reverted the change today. Or was it accidently released yesterday.

OTHER TIPS

As in the documentation, the new callback will receive an object (response) that contains an array (request_ids) of request ids:

{
  "request_ids": [
    0: [request_id]
    1: [request_id]
    ...
  ]
}

So I suppose you can loop using this modified code:

function requestCallback(response) {
    for( var k in response.request_ids ) {
        console.log(k);
        console.log(response.request_ids[k]);
    }
}

There is already a bug filed here http://developers.facebook.com/bugs/129565473812085

There is no clear information yet whether the response is really changed or its a bug.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top