使用js sdk在facebook中向用户的朋友发送通知

时间:2013-07-03 06:39:41

标签: javascript facebook api sdk

我正在尝试使用facebook canvas app上的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);
  });
}

此人未收到通知。

1 个答案:

答案 0 :(得分:1)

问题在于它不是正常的访问令牌,这里的访问令牌将是你的app id和app secret的组合,用“|”分隔符号。 您还需要将数据作为数组发送,而不是作为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 Library发出帖子请求,所以不要忘记包含jquery。