私は現在、Facebook JavaScriptSDKとScoresAPI(https://developers.facebook.com/docs/score/)で遊んでいます。スコアを保存(投稿)するための小さなアプリケーションを作成しましたが、スコアを削除したいと思います。それらを投稿(保存)すると正常に機能します。
私のコードは次のようになります:
var deleteHighScoreUrl = 'https://graph.facebook.com/'+facebook.user.id+'/scores?access_token='+facebook.application.id+'|'+facebook.application.secret;
jQuery.ajax(
{
type: 'DELETE',
async: false,
url: deleteHighScoreUrl,
success: function(data, textStatus, jqXHR)
{
console.log('Score deleted.');
}
});
「facebook」変数は、私のアプリケーションデータを保持するオブジェクトです。HTTP POSTの場合は正常に機能しますが、HTTP DELETEの場合、Firebug(Firefox 10の場合)で「NetworkError:400BadRequest」という応答が返されます。Firefoxが最初にHTTPOPTIONSを送信するのを見て(HTTP DELETEの使用が許可されているかどうかを確認するため)、このエラーが発生するので、GoogleChromeで同じことを試しました。GoogleChromeは実際のHTTPDELETEを送信し、それが次を返します。
「XMLHttpRequestは https://graph.facebook.com/USER_ID/scores?access_token=APP_ID|APP_SECRETを読み込めません。OriginMY_DOMAINはAccess-Control-Allow-Originで許可されていません」。
これは古典的なクロスドメインの問題だと思いますが、どうすれば解決できますか?Facebookアプリケーション( https://developers.facebook.com/apps )にドメインを追加しました。Facebookには「ユーザーのスコアを削除する」という段落があります。それで、スコアを(どういうわけか)削除することが可能でなければなりませんか?