我开始开发一款Facebook游戏,而且我立即在理解中遇到了一些问题。我希望有一个明智的人可以让我直截了当。
像大多数游戏一样,我希望能够邀请其他人加入,然后知道他们何时加入。
我正在使用Graph Api 2.2版本 - 据我所知,版本1.0将于2015年4月关闭。我在这里遇到的问题是ID /标签是临时的'所以匹配它们会有问题。
使用此功能,我可以请求已安装该应用的朋友列表。 (大)。我(应该)收到这些玩家的ID列表。然后我可以向他们发送一个AppRequest,它会提示他们加载游戏。 (好到目前为止)。
此时我们假设有一个以上的朋友都加载了游戏。还假设我在我的服务器上有一些后端处理,所以每个朋友都可以对服务器说'#34;我已经加载了游戏,我知道我的'识别这些朋友ID"。
在游戏中,我想要显示我现在的朋友列表,这些朋友实际上正在运行游戏 - 现在。这是可能的,因为服务器知道每个人的ID和我的ID,所以它可以说"这里是你认识的朋友......"
我希望你还在关注我。
Graph API 2.2也可以同时请求 (a)我自己的身份证(??) (b)我朋友的身份证。 - 可以匹配并在同一时间到期。 (是的,我知道这个是可能的)
(a)可能吗?即使它是,它是与临时朋友ID匹配的ID,或者是可用于不同目的的另一种类型的ID。 (例如我读到taggableFriend ID不能用于appRequests)。
如果不可能,任何人都可以向我解释正确的方法吗?
在我看来,在Graph API 1.0的剩余时间里,你不会遇到这些问题 (a)您可以使用FQL界面获取自己的ID, 和(b)ID是永久性的,因此您可以将它们存储在数据库中以节省这些匹配问题。 例如,在Api 1.0中,应用程序的每个运行实例都可以通过仅请求它自己的Facebook所有者的ID来逃脱。 (没朋友)。 - 只要朋友在过去的某个时刻被问过。你自己的服务器有足够的信息可以匹配它们并说'#34;我知道这些ID仍然是你的朋友"。
但是我如何在Graph API 2.0中做到这一点?
我在2015年4月之前没有完成游戏,因此使用较旧的API毫无意义。
答案 0 :(得分:2)
你可能已经知道很多东西了,但我认为如果我从头开始只是为了让思路保持一致,那将是最好的。
用户ID
目前有两种可供用户使用的ID
大多数(如果不是所有)应用程序都应该使用应用程序作用域ID。
用户好友
只要您申请user_friends
权限,您就会获得使用该应用程序的朋友列表。
Invitable Friends API
只要您的应用是画布上的游戏,您就会收到一个完整的用户朋友列表,您可以通过邀请令牌邀请他们。这些令牌是临时的,可以在请求对话框中使用。
现在,您的游戏正在运行,/me/friends
列表会返回
{
"data": [
],
"summary": {
"total_count": 5000
}
}
所以,目前没有朋友在游戏中。您使用来自/me/invitable_friends
的邀请令牌邀请朋友加入,其中一位朋友加入。
Recall `/me/friends`
{
"data": [
{
"name": "phwd friend lastname",
"id": "app-scoped-id-1"
}
],
"paging": {
"next": "https://graph.facebook.com/v2.2/me/friends..."
},
"summary": {
"total_count": 5000
}
}
所以app-scoped-id-1
(这将是一个数字)是您朋友的应用范围ID。这不应该改变。
所以你要存储的ID是
/me?fields=id
当前玩家/me/friends?fields=id
玩家的朋友也在玩