是否可以从我的Facebook页面获取墙上的帖子

时间:2014-10-20 06:36:47

标签: facebook-graph-api facebook-javascript-sdk facebook-php-sdk

我正在使用Javascript API从我的FB页面获取墙贴。如下所示。

$(document).ready(function(){

   window.fbAsyncInit = function() {
       FB.init({
               appId      : 'xxxxxxxxxxxxxxxxxx',
               xfbml      : true,
               version    : 'v2.1'
       });

       FB.getLoginStatus(function(response) {
         if (response.status === 'connected') {
            //console.log('Logged in.');
        }
         else {
             FB.login(function(response) {
               if (response.authResponse) {
                 var access_token =   FB.getAuthResponse()['accessToken'];
                 console.log(response);
                 FB.api('/153466xxxxxxxx/posts', function(response) {
                 console.log(response);
                 });

               } else {
                 console.log('User cancelled login or did not fully authorize.');
               }
             }, {scope: ''});
         }
       });
   };

   (function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
});

但是,这需要用户登录并允许该应用程序的权限。我是否有可能使用PHP FB SDK从我的帐户中获取墙上帖子并在我的网页上显示它而不要求用户登录他们的Fb帐户。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于Facebook页面来说非常简单,只需应用访问令牌

如果没有用户登录,Facebook SDK将自动使用App Token,但您也可以添加Access Token。但要小心,不要使用简单的方法来创建App令牌,这只是App ID和App Secret的组合:

var accesstoken = APPID + '|' + APPSECRET;

现在,如果您在客户端上使用JavaScript,那么每个人都可以看到您的App Secret,这非常糟糕。我建议使用PHP,使用PHP SDK或简单的CURL调用。如果您真的只想使用JavaScript,只需访问我发布的第一个链接,并查看如何使用Graph API调用生成应用程序令牌:

GET /oauth/access_token?
     client_id={app-id}
    &client_secret={app-secret}
    &grant_type=client_credentials

对于用户配置文件来说要困难得多,因为你需要一个用户令牌。甚至扩展用户令牌也只有60天有效。之后,您需要手动刷新它。但无论如何都不应该使用用户配置文件。