【发布时间】:2017-08-08 06:51:25
【问题描述】:
我编写了一个代码来将视频上传到我的 Facebook 粉丝专页,但它会被上传到我的粉丝专页的社区。p>
谁能帮帮我,我的代码有什么问题?
我的代码:
$appId = 'xxxxxxxxxxx';
$appSecret ='xxxxxxxxxx';
$my_url = ':my website url';
$perms_str = "publish_actions";
$videoPath = 'xxxxxxxxxx';
$title = 'xxxxxxxxxx';
$descriptions = 'xxxxxxxxxxx';
if (!isset($_GET['code'])) {
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $appId . "&redirect_uri=" . urlencode($my_url)
. "&scope=" . $perms_str;
echo("<script>top.location.href='" . $auth_url . "'</script>");
} else {
$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
. $appId . "&redirect_uri=" . $my_url
. "&client_secret=" . $appSecret
. "&code=" . $_GET['code'];
$response = file_get_contents($token_url);
$access_token = Json::decode($response)['access_token'];
$fb = new Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => 'v2.10',
]);
$pageId = 'xxxxxxxxxxxx';
$fileToUpload = $videoPath ;
$whereUpload = '/'.$pageId.'/videos';
$data = [
'title' => $_SESSION['fileToUpload']['title'],
'caption' => $_SESSION['fileToUpload']['descriptions'],
'source' => $fb->fileToUpload($fileToUpload)
];
}
try {
$response = $fb->post($whereUpload, $data, $access_token);
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
【问题讨论】:
-
您没有使用页面访问令牌...
-
究竟在哪里,我实际上做到了 $access_token = Json::decode($response)['access_token'];
-
这是从登录流返回的代码参数中检索 user 访问令牌的端点。如果要以页面名称执行任何操作,则需要使用 page 访问令牌。 developers.facebook.com/docs/facebook-login/access-tokens
标签: php facebook facebook-graph-api facebook-page facebook-fan-page