图形API - 使用NODE JS无效的POST

时间:2013-12-31 16:59:47

标签: node.js facebook-graph-api post

这个问题耗费了我所有的时间,所以我真的需要你的帮助。

我会直截了当地说:

为了创建和添加朋友,我正在使用NODE JS请求模块。当我创建一个事件时,我会存储id以在另一个POST中使用它,这反过来会将朋友添加到事件中。

两个帖子都在GRAPH API Explorer中工作。第一个创建事件,第二个将朋友添加到事件中。

在我的APP中,我能够创建事件并获取ID,但是当我运行第二个POST时,它给出了以下答案:

{"message":"An access token is required to request this resource.","type":"OAuthException","code":104}}

它没有多大意义,因为我使用完全相同的标记,我已经在Graph Explorer中测试了一百次!

POST语法应该是正确的,因为我在GRAPH EXPLORER中测试了很多次。权限不应该是问题,但正如我所说......我不知道还有什么问题可以解决!

请帮助我,因为我真的不知道我还能做什么!

CODE

  var message = "&name=" + sender_name + " is inviting you for " + event_type + " via my app" + "&privacy_type=CLOSED&start_time=" + date_ics + "-0000";
  var url = 'https://graph.facebook.com/me/events?access_token=' + access_token;


  console.log(url+message);

  var a = request({
    url: url,
    method: 'POST',
    body: message
  }, function (err, res, body) {
    if (!err && res.statusCode == 200) {
      obj = JSON.parse(body);
      event_id = obj.id;
      console.log(event_id);


        var message = "/invited?users=" + recipients_fb_id;
        var url = 'https://graph.facebook.com/' + event_id;
        console.log(url+message);

        //PROBLEM STARTS HERE!
        request({
          url: url,
          method: 'POST',
          body: message
        }, function (err, res, body) {
          if (!err && res.statusCode == 200) {
            console.log(body);

          }else{

            console.log("Erro: " + res.statusCode + body);
          }
        });

    }
  });

1 个答案:

答案 0 :(得分:0)

在您的第二个请求中,您不包括访问令牌 - 这需要包含在所有请求中。

另外,为什么不将所有参数放入url var而不是使用消息?

var message = "";
var url = 'https://graph.facebook.com/' + event_id + "/invited?users=" + recipients_fb_id + "&access_token=" + access_token;
console.log(url);