2015-09-19 93 views
1

我正在嘗試將帖子發佈到Facebook頁面,但是作爲頁面 - 而不是我自己的Facebook配置文件。我正在使用Facebook PHP SDK的第5版。任何想法如何實現這一目標?我的下面的代碼發佈到Facebook頁面沒問題,但它將消息發佈爲我自己的配置文件而不是頁面。發佈到Facebook頁面,因爲該頁面不是管理員用戶

session_start(); 

define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/src/facebook-sdk-v5/'); 
require_once __DIR__ . '/src/facebook-sdk-v5/autoload.php'; 

$fb = new Facebook\Facebook([ 
    'app_id' => 'appid', 
    'app_secret' => 'secretid', 
    'default_graph_version' => 'v2.2', 
]); 
$helper = $fb->getRedirectLoginHelper(); 

try { 
    $accessToken = $helper->getAccessToken(); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 


if (isset($accessToken)) { 

    $_SESSION['facebook_access_token'] = (string) $accessToken; 

    $linkData = [ 
     'link' => 'http://www.example.com', 
     'message' => 'User provided message', 
    ]; 

    try { 
     $response = $fb->post('/294673057366719/feed', $linkData, $accessToken); 
    } catch(Facebook\Exceptions\FacebookResponseException $e) { 
     echo 'Graph returned an error: '.$e->getMessage(); 
     exit; 
    } catch(Facebook\Exceptions\FacebookSDKException $e) { 
     echo 'Facebook SDK returned an error: '.$e->getMessage(); 
     exit; 
    } 

    $graphNode = $response->getGraphNode(); 

    echo 'Posted with id: '.$graphNode['id']; 

} else { 

    $permissions = ['publish_pages', 'manage_pages']; 
    $loginUrl = $helper->getLoginUrl('http://app.co.uk:8888/facebook/', $permissions); 
    echo '<a href="'.$loginUrl.'">Log in</a>'; 

} 

回答

0

的一點是在使用正確的訪問令牌

您需要爲您的頁面生成訪問令牌。如何實現它:

  1. 你需要的是網頁的管理員要張貼到
  2. 生成該用戶有權限訪問令牌的用戶:publis_actions,manage_pages
  3. 現在換這個短暫的訪問令牌對於長期訪問令牌
  4. 最後,您可以調用API請求/ USER_ID /帳戶。在結果找到你想要的頁面,然後複製訪問令牌(重要:這個呼叫使用會產生長期住在離第3步訪問令牌)

現在使用此標記貼在牆上頁作爲頁。

實時訪問令牌交換簡稱的詳細流程在這裏https://developers.facebook.com/docs/facebook-login/access-tokens。對於所有來電,您可以在這裏使用Facebook Graph API Explorer:https://developers.facebook.com/tools/explorer

0

謝謝。我得到了訪問令牌我的網頁通過:

您現在有一個永不過期的訪問令牌你的Facebook

相關問題