如何使用App ID发布到Facebook页面&秘密&页面ID无需登录页面的用户管理员获取访问令牌,作为页面管理员的App所有者不应该自动发布!?
我正在使用PHP& Facebook API的SDK4。
答案 0 :(得分:0)
如果没有授权,您无法在Facebook上发布任何内容。如果您要发布“as Page”,则需要使用“publish_pages
”权限授权Page admin,并使用页面令牌。您无法在未经授权的情况下获得用户或页面令牌,当然您也无法自动执行授权过程。查看文档以获取详细信息:https://developers.facebook.com/docs/graph-api/reference/v2.3/page/feed#publish
您还需要了解访问令牌:
答案 1 :(得分:0)
事实上我只想拥有永久页面访问令牌,这样我就可以永久自动发布,而无需每次发布时都要求用户进行身份验证。
按照以下步骤获取:Permanent Access Token
然后使用自动发布代码:
session_start();
define('FACEBOOK_SDK_V4_SRC_DIR', 'facebook-php-sdk-v4-4.0-dev/src/Facebook/');
require __DIR__ . '/facebook-php-sdk-v4-4.0-dev/autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
use Facebook\FacebookRedirectLoginHelper;
// Facebook App
$api_key = 'xxxxxxxxxxxxxxxx'; //App ID
$api_secret = 'xxxxxxxxxxxxxxxx'; //App Secret
$page_id = 'xxxxxxxxxxxxxxxx'; //Page ID
$page_token = 'from the steps in the url';
$fb_post = array(
'message'=> 'test message',
'name'=> '',
'link'=> 'http://www.example.com/',
'picture'=> 'http://www.example.com/image.jpg',
'caption'=> '',
);
// start a session for this App
FacebookSession::setDefaultApplication($api_key, $api_secret);
try {
$session = new FacebookSession($page_token);
} catch(FacebookRequestException $e) {
die(" Error : " . $e->getMessage());
} catch(\Exception $e) {
die(" Error : " . $e->getMessage());
}
try {
// Auto posting
$page_post = (new FacebookRequest( $session, 'POST', '/'. $page_id .'/feed', $fb_post))->execute()->getGraphObject()->asArray();
// return post_id, optional
print_r( $page_post );
} catch (FacebookRequestException $e) {
// The Graph API returned an error
echo '<b style="color:blue;">'.$e->getMessage().'</b>';
} catch (\Exception $e) {
// Some other error occurred
echo '<b style="color:red;">'.$e->getMessage().'</b>';
}