2015-07-12 3 views
2

Вот код:Facebook API, получить страницу после ссылки (PHP)

$facebookUrl = 'https://graph.facebook.com/'.$facebookPageId.'/posts?&access_token='.$facebookAppId.'|'.$facebookAppSecret; 
$facebookData = json_decode(curlRequest($facebookUrl))->data; 

curlRequest успешно возвращающие данных, но она ограничена. Ответ имеет следующие пункты:

  • сообщение
  • история
  • created_time
  • ID

Этого достаточно, что они не включают в себя фотографии (которые все эти посты делают) плохо но хуже то, что у меня нет ссылки, которая выводит меня на этот пост.

Twitter имеет перенаправление, используя 'https://twitter.com/statuses/'. $post->id; У Facebook есть что-то подобное? Или еще лучше, как я могу получить все данные для этих сообщений?

+1

Отвечая наполовину на мой вопрос: '$ thePost ['link'] = 'http://www.facebook.com/'.explode("_", $ post-> id) [0].'/Posts /'.explode("_ ", $ post-> id) [1];' получит ссылку на сообщение. –

ответ

2

Ссылка на этот пост будет

$facebookUrl = 'https://graph.facebook.com/'.$facebookPageId.'/posts?&access_token='.$facebookAppId.'|'.$facebookAppSecret; 
$facebookData = json_decode(curlRequest($facebookUrl))->data; 

$link = "http:/fb.com/".$facebookData->id; //This short link will redirect to the pages' post 

$facebookData->id состоит из уникальных значений, то есть часть, прежде чем «_» (подчеркивание) описывает родитель (страницы, пользователь, группа, событие) и строку после underscore - это идентификатор сообщения его родителя.

+0

Это определенно полезно, но как насчет других атрибутов, которые должны быть на почте ('picture',' link' и т. Д.)? У меня такая же проблема, как @fauxserious, и документы FB предполагают, что в каждом объекте Post должно быть намного больше данных - https://developers.facebook.com/docs/graph-api/reference/v2. 5/после # чтения – supremebeing7

0

В дополнение к полезному ответу Nishant выше, у Facebook есть много других данных, которые вы можете получить как часть объекта Post, как указано в their docs. По умолчанию, однако, все это посылает это

  • сообщение
  • история
  • created_time
  • ид

Для того, чтобы восстановить любые другие поля, запрос должен указать эти поля параметры запроса. Например, если я хочу picture и link, связанный с постом, я бы построить свой запрос GET следующим образом:

https://graph.facebook.com/POST_ID?fields=picture,link&access_token=YOUR_TOKEN 

И я хотел бы получить ответ, как это:

{ 
    "link": "http://example.com/link", 
    "picture": "https://example.com/picture", 
    "id": POST_ID 
} 

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

Смежные вопросы