Учитывая идентификатор сообщения, возвращаемый поиском графа, например: 186173001411937
есть ли ссылка на сообщение в facebook? Следующий URL-адрес не работает: http://www.facebook.com/post.php?id=186173001411937
Учитывая идентификатор сообщения, возвращаемый поиском графа, например: 186173001411937
есть ли ссылка на сообщение в facebook? Следующий URL-адрес не работает: http://www.facebook.com/post.php?id=186173001411937
Я узнал, что для графа id 1099696306_140549259338782 ссылки строятся следующим образом: http://www.facebook.com/1099696306/posts/140549259338782
Честно говоря, самый простой способ, который я нашел, это просто:
"http://www.facebook.com/" + postId
Где postId
- это только прямой идентификатор сообщения (186173001411937), а не вариант userid_postid.
с графом api v2.5 вы можете использовать поле permalink_url объекта posts.
i.e.:
www.facebook.com/v2.5/{pagename}/?fields=posts{permalink_url,message,story,created_time,id}
вернет
"posts": {
"data": [
{
"permalink_url": "https://www.facebook.com/etsmtl/posts/10153868925494376",
"message": "Le Club Cedille organise le prochain Linux-Meetup ce soir à l'ÉTS. Au programme : conférence de James Shubin, ingénieur logiciel sénior chez Red Hat.",
"created_time": "2016-03-01T15:23:11+0000",
"id": "8632204375_10153868925494376"
}, ... }
Что касается публичного сообщения на странице, возьмите Id, возвращенный из Facebook Graph API, например. 12345678_12345678 и добавьте его на facebook.com, например. https://www.facebook.com/12345678_12345678. Сообщение также выделяется при доступе к странице.
public <T>getPagePosts(string pageId, string access_token, int limit)
{
var client = new RestClient("https://graph.facebook.com");
var request = new RestRequest(Method.GET);
var fields = "posts{permalink_url,picture,message,story,created_time,id}";
request.Resource = "{version}/{object_id}/";
request.RequestFormat = DataFormat.Json;
request.JsonSerializer.ContentType = "application/json;";
request.AddParameter("access_token", access_token);
request.AddParameter("version", "v2.10", ParameterType.UrlSegment);
request.AddParameter("object_id", pageId, ParameterType.UrlSegment);
request.AddParameter("limit", limit);
request.AddParameter("fields", fields);
var response = client.Execute(request);
var result = JsonConvert.DeserializeObject<T>(response.Content);
return result;
}