0

我正在使用JavaScript API從我的FB頁面獲取牆貼。是否可以從我的Facebook頁面獲取牆貼

$(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賬戶。

任何幫助將不勝感激。

回答

0

對於一個Facebook頁面it's很容易,你需要的是一個應用程序訪問令牌

Facebook的軟件開發工具包將使用應用程序令牌自動如果沒有用戶登錄,但您也可以添加訪問令牌。不過要小心,請勿使用簡單的方法來創建一個應用程序令牌,這僅僅是一個應用程序ID和App祕密的組合:

var accesstoken = APPID + '|' + APPSECRET; 

現在,如果你使用的是一個用JavaScript客戶端,您的應用程序上每個人都能看到祕密,這很糟糕。我建議使用PHP來實現這一點,無論是使用PHP SDK還是簡單的CURL調用。如果你真的想只用JavaScript,只要訪問的第一個環節我張貼,並檢查瞭如何使用圖形API調用生成一個應用程序令牌:

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

用戶配置文件it'sa很多困難,因爲你確實需要一個用戶令牌。甚至一個擴展用戶令牌只有60天有效。之後,您需要手動刷新它。但用戶配置文件不應該用於那個。

+0

但我猜用戶需要登錄一次才能生成此訪問令牌。對 ? – VMN 2014-10-20 07:34:51

+0

用戶令牌:是。如果用戶未登錄,則SDK應使用App令牌。但我不會指望它,因爲你不需要登錄一個應用程序令牌,所以你最好使用PHP來獲取這個feed。例如: – luschn 2014-10-20 07:36:47

+0

:http://www.devils-heaven.com/extended-page-access-tokens-curl/ - 這就是你可以如何使用curl和圖形api。 – luschn 2014-10-20 07:37:14

相關問題