如何在Facebook请求对话框中获取用户ID

时间:2011-11-24 03:04:52

标签: facebook facebook-graph-api

我想要做的是获取请求ID并插入我的数据库。我的请求对话框运行良好,但问题是我无法获得'TO'用户ID http://developers.facebook.com/docs/reference/dialogs/requests/,但我仍然无法获取请求用户ID。

这是我的编码:

         function newInvite(){
            //var user_ids = document.getElementsByName("user_ids")[0].value;
           FB.ui({ 
                    method : 'apprequests',
                    title: 'X-MATCH',
                    message: 'Come join US now, having fun here',                       
            },                      
            function getMultipleRequests(requestIds) {
              FB.api('', {"ids": requestIds }, function(response) {
                console.log(response);
              });
            }                   
            );
        }

对此有何解决方案?

万万感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您是否有效启用请求2.0?

如果您已启用,则可以轻松获取用户ID,如此

{
    request: ‘request_id’
    to:[array of user_ids]
}

在回调函数中,您可以使用

response.request获取请求ID

response.to获取用户ID数组

请注意,如果您使用请求2.0,请求ID格式将是这样的

<request_object_id>_<user_id>

如果您没有启用它,那么您只能获取请求ID数组,并且需要再次进行api调用以获取用户ID

<强>编辑:

FB.ui({
        method : "apprequests",
        title : "your title",
        message : "your msg"
      },
      function(response)  {
          var receiverIDs;
          if (response.request)  {
              var receiverIDs = response.to;  // receiverIDs is an array holding all user ids
          }
      }
);

然后你可以使用数组“receiverIDs”进行进一步的处理

例如,我向用户ID发送了一个ID为“1234”,“5678”

的请求

回复将是这样的:

{
    request: ‘1234567890’   // example,
    to:['1234', '5678'] 
}

在请求2.0中,完整的请求ID将如下所示

1234567890_1234
1234567890_5678

警告:如果您使用请求2.0,FB doc会告诉您自己管理和删除请求, 记得删除上面的id,如果直接删除请求'123456789',所有带有此前缀的完整请求ID都将被删除。

=============================================== ===================

如果您尚未启用请求2.0,请按照文档页面上的代码查看如何通过api调用获取用户ID

function getMultipleRequests(requestIds) {
  FB.api('', {"ids": requestIds }, function(response) {
    console.log(response);
  });
}

这些方法的响应格式如下:

{
   "id": "[request_id]",
   "application": {
      "name": "[Application Name]",
      "id": "[Application ID]"
   },
   "to": {
      "name": "[Recipient User Name]",
      "id": "[Recipient User ID]"
   },
   "from": {
      "name": "[Sender User ID]",
      "id": "[Sender User Name]"
   },
   "message": "[Request Message]",
   "created_time": "2011-09-12T23:08:47+0000"
}

你可以实现api调用的回调,并通过response.to.id

获取谁是接收者