使用Graph API 2.2匹配好友ID

时间:2014-12-14 23:27:22

标签: facebook-graph-api

我开始开发一款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毫无意义。

1 个答案:

答案 0 :(得分:2)

你可能已经知道很多东西了,但我认为如果我从头开始只是为了让思路保持一致,那将是最好的。

用户ID

目前有两种可供用户使用的ID

  • 全球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玩家的朋友也在玩