Facebook: проблемы PHP SDK

У меня есть некоторый PHP-код PHP, который работал безупречно до 4/30/15 Обновить. Я обновил свой код, похоже, он работает на некоторых компьютерах, но не на других. На компьютерах, на которых это не работает, я пробовал несколько браузеров с одинаковым результатом. Я могу войти в Facebook с помощью SDK, но он ничего не публикует на стене моей страницы. Тот же код, другой компьютер, и все работает отлично. Вот код:

    <?php
$facebook = new Facebook(array(
'appId' => '##########',
'secret' => '##########',
'fileUpload' => true
));
$user     = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl(array(
'next' => ($user['baseurl'] . 'logout.php')
));
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_pages , manage_pages'
));
}
$access_token = $facebook->getAccessToken();
$params       = array(
'access_token' => $access_token
);
#The id of the fanpage
$fanpage      = '############';
#The id of the album
$album_id     = '############';
if ($user) {
$accounts = $facebook->api('/me/accounts', 'GET', $params);
foreach ($accounts['data'] as $account) {
if ($account['id'] == $fanpage || $account['name'] == $fanpage) {
$fanpage_token = $account['access_token'];
}
}
$message = 'Post this to the wall.';
$img     = 'path to image.jpg';
$args    = array(
'message' => $message,
'image' => '@' . $img,
'aid' => $album_id,
'no_story' => 0,
'access_token' => $fanpage_token
);
$photo   = $facebook->api($album_id . '/photos', 'post', $args);
}
?>

0

Решение

Большинство разрешений должно быть одобрено Facebook, прежде чем их можно будет использовать для любого пользователя, иначе они будут работать только для пользователей с ролью в приложении. Проверьте документы о Войти Обзор.

Вы можете использовать только publish_pages а также manage_pages как администратор приложения / разработчик / тестер без обзора.

Если вы тестируете только с этими пользователями, и он все еще не работает, отладьте токен доступа в отладчике и посмотрите, действительно ли эти разрешения авторизованы: https://developers.facebook.com/tools/debug/

Изменить: После прочтения вашего комментария, я думаю, что вы пытаетесь использовать токен пользователя. Используйте / me / account, чтобы получить жетон страницы и попробуйте снова с этим. Если вы отлаживаете токен, убедитесь, что страница также отображается.

0

Другие решения

У меня есть некоторый PHP-код PHP, который работал безупречно до 4/30/15 Обновить. Я обновил свой код, похоже, он работает на некоторых компьютерах, но не на других. На компьютерах, на которых это не работает, я пробовал несколько браузеров с одинаковым результатом. Я могу войти в Facebook с помощью SDK, но он ничего не публикует на стене моей страницы. Тот же код, другой компьютер, и все работает отлично. Вот код:

    <?php
$facebook = new Facebook(array(
'appId' => '##########',
'secret' => '##########',
'fileUpload' => true
));
$user     = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl(array(
'next' => ($user['baseurl'] . 'logout.php')
));
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_pages , manage_pages'
));
}
$access_token = $facebook->getAccessToken();
$params       = array(
'access_token' => $access_token
);
#The id of the fanpage
$fanpage      = '############';
#The id of the album
$album_id     = '############';
if ($user) {
$accounts = $facebook->api('/me/accounts', 'GET', $params);
foreach ($accounts['data'] as $account) {
if ($account['id'] == $fanpage || $account['name'] == $fanpage) {
$fanpage_token = $account['access_token'];
}
}
$message = 'Post this to the wall.';
$img     = 'path to image.jpg';
$args    = array(
'message' => $message,
'image' => '@' . $img,
'aid' => $album_id,
'no_story' => 0,
'access_token' => $fanpage_token
);
$photo   = $facebook->api($album_id . '/photos', 'post', $args);
}
?>
0

Большинство разрешений должно быть одобрено Facebook, прежде чем их можно будет использовать для любого пользователя, иначе они будут работать только для пользователей с ролью в приложении. Проверьте документы о Войти Обзор.

Вы можете использовать только publish_pages а также manage_pages как администратор приложения / разработчик / тестер без обзора.

Если вы тестируете только с этими пользователями, и он все еще не работает, отладьте токен доступа в отладчике и посмотрите, действительно ли эти разрешения авторизованы: https://developers.facebook.com/tools/debug/

Изменить: После прочтения вашего комментария, я думаю, что вы пытаетесь использовать токен пользователя. Используйте / me / account, чтобы получить жетон страницы и попробуйте снова с этим. Если вы отлаживаете токен, убедитесь, что страница также отображается.

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
0
По вопросам рекламы [email protected]