2011-01-18 30 views

答えて

46

私は1099696306_140549259338782リンクグラフIDについて、分かった。このように構築さ:正直なところ http://www.facebook.com/1099696306/posts/140549259338782

+3

この質問に回答してください。 –

+1

どうすればいいですか? – corrego

+0

@corregoあなたは、答えの横にある上下のボタンのすぐ下にあるチェックマークをクリックします。 – Scott

21

、私はこれを行うために見つけた最も簡単な方法はただであります:postIdポスト(186173001411937)のちょうどまっすぐID、ないuserid_postid変異体である

"http://www.facebook.com/" + postId 

+1

これはページ上のユーザー投稿に対しては機能しませんが、@ user580602による解決策はこのケースをカバーします。 – frame

+0

この投稿を表示するには、ユーザーがログインしている必要があります。 – Noitidart

+0

これはすべての場合に機能しません。私の場合は、大半の時間が 'permalink_url'フィールドを代わりに使用するのに失敗します。 – Joel

4

グラフapi v2.5では、postsオブジェクトのpermalink_urlフィールドを使用できます。

すなわち:

www.facebook.com/v2.5/{pagename}/?fields=posts{permalink_url,message,story,created_time,id} 

同上Facebook Graph API例えばから返さ取る公共見開きページのポストに関しては

"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" 
    }, ... } 
+0

Cool。 Facebookのドキュメントにはそれに関する参考資料はありますか? – user1105951

+0

これは最高の答えと思われます。しかし、私が知っている限り、それはドキュメントにありません。このバグレポート:https://developers.facebook.com/bugs/683573291807160/ Facebookのエンジニアは、変更された場合は変更ログになると言いました。 – Joel

2

を返します。 12345678_12345678に追加し、facebook.comに追加してください。 https://www.facebook.com/12345678_12345678。投稿にはが表示され、ページにアクセスするとと表示されます。

+0

素晴らしい、デッドシンプルなソリューション。どうもありがとうございました。 Facebookは、世界中のユーザーがAPIを使用することを期待すれば、APIを文書化してより良い仕事をする必要があります。 –

0
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; 
     } 
関連する問題