0

我正在尝试在 Facebook 画布应用程序上使用 js sdk 向用户的朋友发送通知,但我在控制台中得到了这个

POST https://graph.facebook.com/16542203957691/notifications? 400 (OK) jquery.min.js:140
c.extend.ajax jquery.min.js:140
c.extend.post jquery.min.js:133
makePost ec2-34-41-111-91.ap-southwest-8.compute.amazonaws.com/:69
onclick

我正在调用 makePost 函数,将朋友的个人资料 ID 作为参数传递给它,这就是我正在尝试的

function makePost(personid){
  var accesstoken =   FB.getAuthResponse()['accessToken'];
  var address = "https://graph.facebook.com/" + personid + "/notifications?";
  var tempdata = {};
  tempdata['access_token'] = accesstoken;
  tempdata['href'] = "";
  tempdata['template'] = "You have earned 5 credits, Click here to redeem";
  jQuery.post(address, {json: JSON.stringify(tempdata)}, function(data){
      console.log(data);
  });
}

该人没有收到通知。

4

1 回答 1

1

问题是它不是正常的访问令牌,这里的访问令牌将是您的应用程序 ID 和应用程序密码的组合,由“|”分隔 象征。您还需要将数据作为数组而不是 json 对象发送。

所以这就是工作代码的样子。

function makePost(personid){
  var address = "https://graph.facebook.com/" + personid + "/notifications";
  var tempdata = {};
  tempdata['access_token'] = appId + "|" + appSecret;
  tempdata['href'] = "";
  tempdata['template'] = "You have earned 5 credits, Click here to redeem";
  jQuery.post(address, tempdata , function(data){
      console.log(data);
  });
}

PS:我正在使用 Jquery 库来发出帖子请求,所以不要忘记包含 jquery。

于 2013-07-05T09:02:27.777 回答