对fb messenger API的GET请求不起作用

时间:2016-08-02 23:24:32

标签: node.js api facebook-messenger

所以我已经向FB的API提出了几个帖子请求并且它们工作正常,其中一个POST实际上在控制台中吐出了我应该通过的用户ID,如果我想得到关于如果我想重新使用它来发布它在其他地方使用不同的API。

因此,我们的想法是让用户配置文件重用它。

遵循文档:HERE

手动完成时一切都很好,因为我通过这样做得到了我需要的信息:

suppy

但是如果在我的代码中这样做:

curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=PAGE_ACCESS_TOKEN"

我得到关于uri没有被正确传递的投诉,我没有得到任何打印到控制台:

这是日志:

function getUserProfile (sender) {
    request({
         method : "GET",
         uri    : "https://graph.facebook.com/v2.6/" + sender + "?",
         qs     : {
            fields:"first_name,last_name,profile_pic,locale,timezone,gender",
            access_token : FB_PAGE_ACCESS_TOKEN   
         },
         json   : true
     }
 );
}
console.log('fb user GET Request: ', request);

我错过了什么?任何指针都会很棒。

编辑:

我找到了一篇SO HERE并尝试了解决方案,但日志仍然不可见。

我使用heroku作为服务器但我在日志中看不到来自GET请求的任何对象。我应该能够通过console.log看到我得到了什么吗?

这些是要求:

> node app.js
 fb user GET Request:  function request(uri, options, callback) {
  if (typeof uri === 'undefined') {
     throw new Error('undefined is not a valid uri or options object.')
  } 
  var params = initParams(uri, options, callback) 
  if (params.method === 'HEAD' && paramsHaveRequestBody(params)) {
     throw new Error('HTTP HEAD requests MUST NOT include a request body.')
   } 
   return new request.Request(params)
 }

1 个答案:

答案 0 :(得分:0)

看起来你正在为请求对象定义他的选项,但是不清楚你是如何执行http请求的。

你可以试试吗?

options = {
         method : "GET",
         uri    : "https://graph.facebook.com/v2.6/" + sender + "?",
         qs     : {
            fields:"first_name,last_name,profile_pic,locale,timezone,gender",
            access_token : FB_PAGE_ACCESS_TOKEN   
         },
         json   : true
     }

然后使用此选项执行请求

request(options, callback).end()