Facebook API v2.0 introduced the invitable_friends
edge.
An example response from a GET request to this edge is:
{
"data": [
{
"id": "AVkgK9fLFxasdvXNbDV_gYogR6lXa9SKLnH...",
"name": "Anita Sujarit",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t1.0-1/c0.0.50.50/p50x50/1470158_10201991701127909_302023572_t.jpg"
}
}
}
}
Looking closely at that ID, it's not a normal Facebook user id. Instead it's an Invite Token; this token is passed to the Requests Dialog as a value for the to
parameter.
The invite token, returned on each of the friend objects as the value of a field named id, is a unique (per user and per game) string of variable length. The invite token is subject to expiration, and may change between game sessions. It is therefore not advisable to cache these results, or to try to assign them to a given person.
The friends
edge now only returns friends already using the app
My problem is that I now have no way to cross-reference which friends I have invited and which have accepted.
Previously, I would have stored a friends id as I sent them an invite, and, at some later point, checked this against a list of friends playing the game, but now this isn't possible for several reasons:
Actual Question: Has anybody devised a way of determining, from users that have been invited, which have accepted that invite please?
Go to Account – > Edit Friends and select “Invite Friends” from the right sidebar. Now click “View all Invites” and sort the list by “Joined.” What you see is a list of people who have accepted your invitation to join Facebook but may not have responded to your friend request yet.
Requests will now be accessed either through your game bookmarks on the left-hand side of your home screen or a link that will appear titled "You Have Game Requests" (pictured above)when you have requests from any of the games you play, according to a post on the Facebook blog.
If notification is missing, then invited person should navigate to https://developers.facebook.com/requests/ and accept invite there. At the bottom it should say "1 developer request". Click through to that and approve the app, and you should be good to go.
Tap in the top right of Facebook. Scroll down and tap Settings. Below Security, tap Apps and Websites. Below Games and App Notifications, tap Turn Off or Turn On.
As far as I understood the reference you provided:
You can start requesting invite_token
s which I assume you are already able to do.
As answer you get this per invitable_friend
:
{
"id": "AVlzYTkXshfBqLe58zR9tY5dZ7L0wltTUkWKT0Z5V87zkwv-39...", // Invite Token
"name": "Guy Cross",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/623782_622770420_2109148508_q.jpg"
}
}
}
The page mentions earlier how to do requests in general:
FB.ui({method: 'apprequests',
message: 'YOUR_MESSAGE_HERE',
to: 'USER_ID, USER_ID, INVITE_TOKEN' // It says invite token
}, function(response){
console.log(response);
});
Look at the line with to
: You can put invite tokens in there.
Now the response looks like this:
{
request: 'REQUEST_OBJECT_ID'
to:[array of USER_IDs]
}
There you got your user ids.
If you go further and either need more informations or want to see who accepted, then you have two options:
GET https://graph.facebook.com/me/apprequests?access_token=[USER ACCESS TOKEN]
To check who invited him, you can do check the request_object_id
with http://graph.facebook.com/{REQUEST_OBJECT_ID}?access_token=USER_ACCESS_TOKEN
of the recieving user and the following response will be:
{
"id": "REQUEST_OBJECT_ID",
"application": {
"name": "APP_DISPLAY_NAME",
"namespace": "APP_NAMESPACE",
"id": "APP_ID"
},
"to": {
"name": "RECIPIENT_FULL_NAME",
"id": "RECIPIENT_USER_ID"
},
"from": {
"name": "SENDER_FULL_NAME",
"id": "SENDER_USER_ID"
},
"message": "ATTACHED_MESSAGE",
"created_time": "2014-01-17T16:39:00+0000"
}
if you go with the user access token from the sender you get this:
{
"id": "REQUEST_OBJECT_ID",
"application": {
"name": "APP_DISPLAY_NAME",
"namespace": "APP_NAMESPACE",
"id": "APP_ID"
},
"from": {
"name": "SENDER_FULL_NAME",
"id": "SENDER_USER_ID"
},
"message": "ATTACHED_MESSAGE",
"created_time": "2014-01-17T16:39:00+0000"
}
To prevent this, you can specify the user id of the recieving user and get the same answer as from the receiver: https://graph.facebook.com/{REQUEST_OBJECT_ID}_{USER_ID}?access_token={APP_ACCESS_TOKEN}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With