0

Facebookのウォールにコンテンツを投稿するために投稿されたコードを使用しています。

FB.init({appId:'my app id'、status:true、cookie:true、xfbml:true、oauth:true})
    $('#share_button')。click(function(e){
        if($('#textfield')。val()!='Whats Happening' && $('#textfield')。val()!=''){
            var lin = window.location.href;
            FB.login(function(response){
                if(response.authResponse){
                    console.log( "ユーザーはアプリケーションに接続しています。");
                    var accessToken = response.authResponse.accessToken;
                    var fbURL = "https://graph.facebook.com/me/feed?access_token=" + accessToken;
                    $ .ajax({
                        url:fbURL、
                        データ: "message =" + $('#textfield')。val()+ "&picture = MyUrl / images / logo.png&name = FutureZoom&link = MyUrl"、
                        タイプ:'POST'、
                        成功:関数(resp){
                            $('#ValidationMessage')。html('投稿はあなたのウォールで共有されました!')
                                                   .css('color'、'green');
                            setTimeout(function(){
                                $('#ValidationMessage')。html('');
                            }、3000);
                        }、
                        エラー:関数(リクエスト、ステータス、エラー){
                            alert( "Facebookエラー:\ n" + request.responseText +'\n'+ステータス+'\n'+エラー);                            
                        }
                    });
                }
            }、{スコープ:'publish_stream'});
        }
        そうしないと {
            $('#ValidationMessage')。html('共有するものを書いてください!')
                                   .addClass('red');
        }
    });

上記はFirefoxブラウザでは正常に機能していますが、問題はIEとChromeにあります。Chromeでは、上記のコードは壁にコメントを投稿しますが、戻ると、成功ではなくエラーブロックに入ります。以下は、Chromeでのエラーです。

Facebook Error:
{
    "id": "100002506055900_30229318964214"
}
parseerror
SyntaxError: Unexpected token:

そしてIEでは何も起こりません。コメントを投稿したり、エラー/成功ブロックで戻ったりすることはありません。

理由は何でしょうか?

4

1 に答える 1

1

ユーザーのタイムラインに何かを投稿するためにAJAX呼び出しを行う代わりに、代わりにFB.apiFacebookJavaScriptSDKの関数を使用する必要があります。プロセスを簡素化します。

FB.api('/me/feed', 'post', { message: body, picture: pic }, function(response) {
  if ( !response || response.error ) {
    alert('Error occured');
  } else {
    alert('Post ID: ' + response.id);
  }
});

JS呼び出しのドキュメントは、http://developers.facebook.com/docs/reference/javascript/FB.api/で確認できます。

この方法を使用すると、コードをかなり減らすことができます。

于 2012-05-30T08:53:24.417 に答える