0
<script>
  function postToWall() {
    var params = {};
    params['message'] = 'hello visit lol';
    params['name'] = 'cazzo frega';
    params['link'] = 'http://apps.facebook.com/xxxxxxxxxxxxxxxx/';
    params['picture'] = 'http://2.gravatar.com/avatar/7da5bead8xxxxxxxxxxxxxx75bac';
    params['description'] = 'test di frase';

    FB.api('/me/feed', 'post', params, function(response) {
      if (!response || response.error) {
        alert('lol');
      } else {
        alert('ok');
      }
    });
  }
</script>

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({ 
    appId:xxxxxxxxxxxxxxx, cookie:true, 
    status:true, xfbml:true
  });
</script>
<a href="javascript:postToWall()">click</a>

Facebook のウォールにメッセージを投稿すると、ボックス ダイアログが表示されます。しかし、自動で取得したい場合は、クリックしないでください。私は whit body onload="javascript:fucntion(); を試しましたが、エラーが発生しました... 何か考えはありますか?

4

4 に答える 4

3

Facebook 開発者アプリが自分のウォールに公開する許可を与えていれば、任意のユーザー ウォールに公開できます。

ユーザーは、アプリケーションにログインしている間、パーミッション (scope:Publish_stream) へのアクセスを許可できます。ここでパーミッションを指定する必要があります。サンプル コードは次のとおりです。

<div id="fb-root"></div>

<script type="text/javascript>
var appid = $('#FB_appId').val();
var appsecret = $('#FB_secretkey').val();
        window.fbAsyncInit = function () {
            FB.init({
                appId: appid, // App ID
                status: true, // check login status
                cookie: true, // enable cookies to allow the server to access the session
                xfbml: true  // parse XFBML
            });


        };

        // Load the SDK Asynchronously
        (function (d) {
            var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
            if (d.getElementById(id)) { return; }
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            ref.parentNode.insertBefore(js, ref);
        } (document));



                    FB.login(function (response) {
                        if (response.authResponse) {
                            alert(response.authResponse.userID);


                        } else {

                            console.log('User cancelled authorization');
                        }
                    }, { scope: 'publish_stream' });


</script>

ここで、ログインしたユーザーの userId を取得できます。

次に、applicationId と applicationsecretkey を次のように渡して、AppLication アクセストークンを取得する必要があります。

string accesstoken = new System.Net.WebClient().DownloadString("https://graph.facebook.com/oauth/access_token?client_id= fbappId &client_secret= fbsecretkey &grant_type=client_credentials");

これで 4 つのパラメーターが得られました

  • ユーザーID
  • アクセストークン
  • アプリ ID
  • アプリシークレット

これらのパラメーターを使用して、次のように彼のウォールに投稿できます。

        $.ajax({
                type: 'POST',
                url: 'https://graph.facebook.com/' + fb_userid + '/feed?method=post',
                data: {
                    access_token: fb_accesstoken,
                    message: 'Hello world! My first post'
                },
                success: function (data) {

                   alert(data.Id);
                },
                error: function (data) {

                    alert('Failed to post  to facebook');
                },
                dataType: "jsonp"
            });

成功関数は Facebook 投稿 ID を返します。

于 2013-03-21T14:20:45.487 に答える
0

「stream_publish」権限を要求していることを確認する必要があります。取得している場合は、上記のコードを使用して自動公開できます。許可なく、青いダイアログがポップアップ表示されます。

于 2012-05-03T17:48:43.830 に答える
0

javascriptを介してFB.ui()イベントを使用すると、ポップアップダイアログが表示されると思います。PHPによるグラフAPIを介してコンテンツを投稿しようとするかもしれません。最初にstream_publish権限を取得し、これを使用してAJAX呼び出しを実行します。

この例をご覧ください:http://www.facebook.com/pages/Helper-Component-Community/222933037808340?sk = app_412923142052609

于 2012-05-03T18:42:04.653 に答える
0

あなたが置く必要があります

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>

上に:)................................

于 2013-02-19T07:57:17.080 に答える