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

友人のプロファイル ID を引数として渡して makePost 関数を呼び出しています。これが私が試みていることです。

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 Library を使用して投稿リクエストを作成しているため、jquery を含めることを忘れないでください。

于 2013-07-05T09:02:27.777 に答える