2015-11-17 72 views
0

我有一個使用PHP製作的Web應用程序,當我提交特定表單時,我想發佈到我的Facebook粉絲頁面。 你可以看到下面的代碼:Facebook SDK - 以編程方式獲取訪問令牌

$appId = "..."; 
    $appSecret = "..."; 
    $version = "v2.5"; 

    $fb = new Facebook\Facebook([ 
     'app_id' => $appId, 
     'app_secret' => $appSecret, 
     'default_graph_version' => $version, 
    ]); 

    $accounts = $fb->get("/me/accounts"); 
    $pages = $accounts->getGraphEdge()->asArray(); 

與該代碼我有FacebookSDKExceptionYou must provide an access token. 我還沒有找到一種方法來生成訪問令牌編程只是使用https://developers.facebook.com/tools/explorer。 我的作曲家:

"require": { 
     "facebook/php-sdk-v4" : "~5.0" 
} 

我如何以編程方式/自動獲取訪問令牌?或者你有什麼建議?

+3

我相信你需要授權才能獲得訪問令牌返回https://developers.facebook.com/docs/facebook-login/access-tokens – Elevant

+0

作爲管理員粉絲髮布(共享鏈接)的Web應用程序頁面在我的粉絲頁面。不應在facebook上顯示任何彈出窗口。我如何授權? –

+2

您需要將用戶發送到FB登錄對話框。如果你得到一個擴展的頁面令牌,你只需要做一次。 https://developers.facebook.com/docs/facebook-login/access-tokens有所有必要的細節。 – CBroe

回答

2

這是我做的。 對於開始使用JS SDK的代碼here

如果response.status ===連接(在代碼中查找的表達)與此代碼獲取接入令牌:

var accessToken = response.authResponse.accessToken; 

然後重定向到一個PHP代碼所在的頁面,並在URL中附加access_token ...像這樣:

window.location = "http://localhostfb_test.php?access_token="+accessToken; 

在服務器現在使用這樣的標記。

$user_profile = $fb->get('/me',$_GET['access_token']); 

here

,並在部分令牌是便攜式它明確地表示令牌可以運從客戶端到服務器...... 這就是我在這裏做

+0

聽起來不錯!我會試試:) –

+0

Overflow012 ....檢查這也是https://developers.facebook.com/docs/php/FacebookJavaScriptHelper/5.0.0 –

+0

如果你顯示訪問令牌爲public,是否容易黑客? –

相關問題