【问题标题】:How to get a list of friends the user invited in a Facebook app with Requests 2.0如何使用 Requests 2.0 获取用户在 Facebook 应用程序中邀请的朋友列表
【发布时间】:2011-05-17 18:03:39
【问题描述】:

我正在使用新的 Requests 2.0 (http://developers.facebook.com/docs/reference/dialogs/requests/)

所以我设置了所有东西并且工作正常 - 我只剩下一个问题。当用户选择 50 个朋友邀请到我的应用程序时。我需要的是这些受邀者的用户 ID(因此用户不能再次邀请他们)。

我现在要做的是通过这样的调用获取每个用户 ID: $data = $facebook->api('/'.$request_id.'/'); $user_id = $data['to']['id'];

所以我循环遍历所有 50 个 $request_id 并获取用户的 id。

但是这当然非常慢,因为我做了 50 个请求(有时它根本不起作用......)。那么有没有更好的方法从新的 Requests 2.0 对话框中获取受邀用户 id ???

【问题讨论】:

  • 不,实际上就是这样。您可以使用batch api 来最小化请求。
  • 嗯,我检查了批处理 api - 但有 20 个请求的限制,所以这也不是一个解决方案。我还检查了 fql (developers.facebook.com/docs/reference/fql),但没有请求表(或者我错过了什么?)。无论如何,我简直不敢相信我是唯一一个有同样问题的人???

标签: facebook request


【解决方案1】:

在这个阶段,似乎没有替代策略来循环遍历所有 request_id。
为什么不尝试将您从对话框返回的 request_ids 拆分为较小的组,并可能在处理组之间放置一个短暂的暂停......或者再次利用批处理请求在请求之间稍微暂停一下。这些请求需要一些时间 - 您必须禁用对话框的触发器,直到您完成 request_ids 处理,然后将这些用户 IDS 添加到 exclude_ids 属性。

如果您限制您的用户只向每个用户发送一个请求,您也可以考虑仅在请求得到响应时管理您的请求... 您允许用户根据需要向任意数量的用户发送任意数量的请求 - 然后当该请求得到响应时,您会循环遍历 THAT 用户未完成的请求并删除来自同一用户的请求,类似于您上面提到的:

$data = $facebook->api('/'.$request_id.'/','DELETE');

【讨论】:

    【解决方案2】:

    我所做的是获取用户的朋友列表,然后使用从请求信息中获得的用户 ID 查找朋友姓名。

    【讨论】:

      【解决方案3】:

      只需在一次调用中检查所有请求的完整详细信息:

      https://graph.facebook.com/?access_token=<ACCESS TOKEN>&ids=<CSV LIST OF THE REQUEST IDS>

      【讨论】:

        猜你喜欢
        • 2015-07-29
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多