1

我是 facebook 发帖的新手,但在使用用户帐户离线发布但无法使用公司页面离线发布时取得了一些成功。

我通过自己的个人 Facebook 帐户创建了自己的“Facebook 应用程序”,称为“尼克海报应用程序”。我已经为我的个人页面和公司页面的应用授予了三个权限(offline_access、read_stream、publish_stream)。我通过对每个帐户执行这些步骤来做到这一点...

Creating the app...
1.       Login to facebook with the account you want linked to the app
2.       Follow this link http://www.facebook.com/developers/apps.php#!/developers/createapp.php
3.       Create your app and take a note of you App Id and your App secret Id.

Giving the correct rights to the app and getting the access_token..
Method 1:
1.       Get the account in question to login to facebook
2.       However you like, direct the user to this link (replacing <App-Id> with the App Id of the created app) https://graph.facebook.com/oauth/authorize?client_id=<App-Id>&scope=offline_access,read_stream&redirect_uri=http://www.facebook.com/connect/login_success.html
3.       Take a note of the result of the “code” querystring.
4.       Goto this url (replace “&lt;APP-ID>” with you appId and “&lt;APP-SECRET>” with your apps secret id and “&lt;code>” with the copied code)
https://graph.facebook.com/oauth/access_token?client_id=<APP-ID>&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=<APP-SECRET>&code=<code>
5.       Copy what you see, minus the expires querystring.  That is your access_token.

在我拥有两个帐户的访问令牌后,我使用此代码发布帖子。

<!-- FACEBOOK -->        
<div id="fb-root"></div>
<script>
    (function () {
        var e = document.createElement('script');
        // replacing with an older version until FB fixes the cancel-login bug
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        //e.src = 'scripts/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    } ());
</script>
<!-- END-OF-FACEBOOK -->
<script>
    //initialise
    window.fbAsyncInit = function () {
        FB.init({
            appId: '351023398277068',
            status: true, // check login status
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true, // parse XFBML
            oauth: true // Enable oauth authentication
        });
    };
    function sendPost(inMessage) {
        var opts = {
            message: inMessage,
            access_token: '<SAVED-TOKEN>'
        };

        FB.api('/me/feed', 'post', opts, function (response) {
            if (!response || response.error) {
                alert('Posting error occured');
            }
            else {
                alert('Success - Post ID: ' + response.id);
            }
        });
    }

</script>

当使用参数“测试帖子”执行“sendPost”命令时,它将适用于我的个人帐户(前提是我将 access_token 放在适当的位置)。这对我的公司页面不起作用,我不知道为什么(我确实把我的 access_token 放在了适当的位置)。

Facebook 也没有很好地记录这一点,并且很难取得进展,有没有人明白为什么这对公司页面不起作用?

先感谢您。

4

1 回答 1

0

您可以设置“to”参数以定位您希望发布到的页面,“如果您希望将页面作为应用程序发布到您的页面,则需要管理页面权限。

<div id="msg"></div>
<script>
// uid is the id of the page or user you wish to post to.
      function feedthis2(uid) {

        // calling the API ...
        var obj = {
        method: 'feed',
        to: ''+uid+''    
        };

        function callback(response) {
          document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
        }

        FB.ui(obj, callback);
      }
    feedthis2('AnotherFeed'); // to http://facebook.com/anotherfeed
    //feedthis2('135669679827333');
</script>
于 2012-04-11T16:10:05.803 回答