Итак, мне удалось успешно связать динамические сообщения новостей на моем веб-сайте со стеной моей страницы как страницы (а не пользователя) через PHP. Все еще мне интересно, правильно ли мое решение, или если оно будет работать в долгосрочной перспективе. Сказав, что вот что я сделал:Динамическое размещение сообщений на стене страницы шаг за шагом, что я сделал
- создал профиль администрировать страницу с
- создал страницу компании
- создал приложение с домена, указывая на мой домен сайта и веб-сайт, указывая на мой сайт URL
- отключить offline_access устаревания для того, чтобы иметь возможность выдавать offline_access жетоны
- Найдено мой PageId через HTTP: // graph.facebook.com/PAGE_NAME
- Пошел https: // developers.facebook.com/tools/explorer/APP_ID
- Вставить PageId в вместо идента и нажал отправить
- Затем я нажал на доступ Получить лексем и проверил manage_pages, publish_stream, offline_access
(если только это не сработало, я посетил https://developers.facebook.com/docs/authentication/ и под «Страница Логин» Я узнал, что страница Логин требуется другой тип маркера ...)
- вручную получить маркер из https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=manage_pages,publish_stream,offline_access&response_type=token
- redirect_uri в этом случае может быть что угодно, мы просто хотели, чтобы параметр токена url отправлен обратно
- Скопируйте токен, который отправлен обратно с URL-адреса (если все прошло хорошо, в параметре expires url param задано значение 0)
- тогда я в основном сделал это PHP скрипта:
require_once('facebook-sdk/facebook.php');
//Required facebook auth vars
$appID = 'APP_ID';
$appSecret = 'APP_SECRET';
$pageID = 'PAGE_ID';
$appOfflineToken = 'TOKEN_RETURNED_IN_PREVIOUS_STEP';
$pageTokenURL = 'https://graph.facebook.com/me/accounts?access_token=';
$access_token = '';
//connect to facebook app
$facebook = new Facebook(array(
'appId' => $appID,
'secret' => $appSecret,
'cookie' => true
));
//get page managed pages information
$jsonData = file_get_contents($pageTokenURL.$appOfflineToken);
$content = json_decode($jsonData, true);
//filter access_token for desired page using pageID
foreach($content['data'] as $item) {
if($item['id'] == $pageID){
$access_token = $item['access_token'];
break;
}
}
//format post
$post = array(
'access_token' => $access_token,
'picture' => "http://URL_TO_PICTURE,
'link' => "http://URL_TO_NEWS_POST",
'name' => "NEWS_TITLE",
'description' => 'NEWS_DESCRIPTION'
);
//post content to page wall
$res = $facebook->api('/'.$pageID.'/feed', 'POST', $post);
так что мой вопрос ... даже если это кажется надуманным ... это правильно? хорошо, по крайней мере, это работает!
PS: извините, о связи, но может представить только 2 в этом посте ... не хватает улицы креди кажется: р
Вы, кажется, правы. Во всяком случае, почему вы делаете это вручную? – gremo
, потому что, как оказалось, вам нужно только один раз выпустить токен доступа к офлайн-доступу через приложение. Однако я обновил сценарий, включив в него безопасный режим, если по какой-то причине токен вымирает, что генерирует новый токен (потому что в документация, которую они говорят, токены-токены долговечны, они просто не говорят, как долго). Я в основном размещал это, потому что большинство из того, что я нашел в google, не охватывало идею обновления новостей на веб-сайте, синхронизированного со страничной стеной ... также потому, что я был не уверен, что этот процесс был правильным, если бы это было как-то «взломать» или, если есть другой способ: P –
'offline_access' будет устаревшим в течение нескольких недель. Однако ваш токен доступа (никогда не истекает) будет продолжать работать.В любом случае проверьте https://developers.facebook.com/docs/offline-access-deprecation/ – gremo