it-swarm.com.ru

Facebook Graph API v3.1 Ограничения доступа токенов доступа для разработчиков

Как вы знаете, Facebook обновил свой API до V3.1 и теперь медленно убивает старые API и приложения, поэтому нам пришлось перейти на новый API, где они приняли какое-то сложное решение, которое хорошо для СПАМ-сайта, но также и для разработчиков.

Напоминание: Graph API v2.7 будет устаревшим 05 октября 2018. Пожалуйста, используйте API Upgrade Tool , чтобы понять, как это может повлиять на ваше приложение. Для получения дополнительной информации см. changelog

Теперь я создал новое приложение FB с некоторыми настройками, как показано на скриншотах ниже, чтобы публиковать на своих страницах, а не в профиле, но получил ошибки, которые также упоминаются ниже.

 enter image description here

 enter image description here

 enter image description here

 enter image description here

 enter image description here

А затем я использовал приведенный ниже код для публикации на своей странице, где я являюсь владельцем той же учетной записи, где я создал эти приложения.

<?php
$page_access_token = 'GENERAL_ACCESS_TOKEN';
$page_id = 'OWN_PAGE_ID';
// From https://developers.facebook.com/tools/Explorer

$data['message'] = "Text_Message";
//$data['picture'] = "http://www.example.com/image.jpg";
//$data['link'] = "http://www.example.com/";
//$data['caption'] = "Caption";
//$data['description'] = "Description";

$data['access_token'] = $page_access_token;
$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
echo $return;
curl_close($ch);
?>

Теперь, когда я запускаю верхний код, я получил следующую ошибку ...

{"error":{"message":"(#200) Requires either publish_to_groups permission and app being installed in the group, or manage_pages and publish_pages as an admin with sufficient administrative permission","type":"OAuthException","code":200,"fbtrace_id":"XXXXXXXXX"}}

Теперь мой вопрос, откуда я могу разрешить своим приложениям эти разрешения, потому что там, где я позволил всем, не видели эти имена (publish_to_groups, manage_pages и publish_pages и т.д.), Как показано на последнем снимке экрана выше.

Примечание: все, что я создал, и код сейчас, так что мне нужно решение, работающее с недавно выпущенным API 3.1.

Обновление:

Мой друг сказал мне, чтобы я разрешил все разрешения на работу моего кода, как показано на скриншоте ниже, но я не могу просмотреть это разрешение в своих приложениях. Мне нужно все это. Как их получить?

 enter image description here

3
Muhammad Hassan

Мне кажется, что вы используете токен доступа пользователя .... Чтобы получить токен доступа к странице, вы должны вызвать конечную точку:

https://graph.facebook.com/v3.1/{user-id or me}/accounts

получить список страниц и токены доступа для каждой из них.

Или же: 

https://graph.facebook.com/v3.1/{page-id}?fields=access_token

если вы уже знаете страницу, где вы хотите опубликовать.

Получив токен доступа к странице, вы можете вызвать конечную точку feed.

Посмотрите здесь: https://developers.facebook.com/docs/pages/access-tokens

1
DiClem

Я перепробовал много вещей, а потом обнаружил в Руководстве для разработчиков Facebook, что после нового обновления никто не сможет получить все нижеуказанные разрешения, если приложения будут запущены. Чтобы получить все эти разрешения после запуска ваших приложений, вам нужно подать заявку на получение разрешений на проверку, иначе вы можете получить все разрешения бесплатно в режиме разработки, но это будет работать только для вас.

 enter image description here

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

 enter image description here

Вам просто нужно перевести свои приложения в режим разработки, отключив режим реального времени, как показано на скриншотах ниже и вверху.

 enter image description here

После этого просто перейдите в Graph API Explorer и нажмите кнопку «Получить токен», затем выберите «Получить токен доступа пользователя», и здесь вы получите всплывающее окно, как показано на первом скриншоте этого Ответа, где вы можете выбрать необходимые области и нажмите «Получить токен доступа». Он вызовет POPUP, где ему потребуется ваше разрешение, а затем вернет вам токен доступа. ( Вы можете продлить свой токен доступа до 60 дней )

Примечание. Этот токен, который будет размещен на вашей странице, будет виден вам только потому, что ваши приложения не являются активными, поэтому все действия, выполняемые вашими приложениями, предназначены только для вас.

1
Muhammad Hassan