2015-07-12 169 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是由独特的价值观之前,即部分“_”(下划线)描述了父(页面,用户,组,事件)和字符串后下划线是其父项的后ID。

+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
  • ID

为了获取任何其他领域,要求在指定这些领域查询参数。例如,如果我想与邮政相关的picturelink,我将因此构建我的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的问题提供特定的语法,但这应该让你在那里大部分。