我正在尝试使用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);
});
}
此人未收到通知。
答案 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。