2013-04-05 194 views
0

需要帮助试图从粉丝页面上获得帖子/墙上帖子,这是在Facebook上age-gated以显示在我的网站上。Facebook粉丝页面饲料在网站(年龄受保护)

粉丝页面的年龄门控只让那些17岁以上的人看到它(当他们登录到Facebook)。但是,我的网站位于年龄门(本地)后面,所以我想在我的网站上显示该Facebook页面的帖子。

我以前见过它,但我永远无法看到该人的代码,以查看他/她是如何做到的,我无法找到任何已尝试或成功将其关闭的人。

我创建Facebook上的应用程序,绑到我的帐户,即能看到在Facebook上的任何网页(无论是年龄限制与否):

这里是我的代码

<?php 

function fetchUrl($url){ 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 20); 

$feedData = curl_exec($ch); 
curl_close($ch); 

return $feedData; 

} 

$profile_id = "(Page id)"; 

//App Info, needed for Auth 
$app_id = "123456789"; 
$app_secret = "123456789abcdefghij"; 

$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id={$app_id}&client_secret={$app_secret}"); 

$json_object = fetchUrl("https://graph.facebook.com/{$profile_id}/posts?{$authToken}"); 




$feedarray = json_decode($json_object); 

echo $json_object; 

foreach ($feedarray->data as $feed_data) 
{ 
    echo "<h2>{$feed_data->name}</h2><br />"; 
    echo "{$feed_data->message}<br /><br />"; 
} 

    ?> 

该代码适用于没有年龄门限的页面,但是那些做了,它返回为无效(由于$ authToken没有返回任何内容,因此JSON无法处理任何内容)。

任何人都想帮助我弄清楚这一点吗?

+0

看起来您正在使用应用访问令牌。我对么? – 2013-04-05 03:14:12

+0

是的。有不同的方法吗? – Keoki 2013-04-05 15:50:56

回答

0

大部分与该应用程序访问令牌访问的页面仅限于从公众的Facebook页面检索数据时,一个任何人都可以无需登录打开。 但对于这里的特殊情况下,帖子要拉,都来自年龄门控页。所以Facebook要求你登录(如果你还没有),以便它可以决定显示或不显示该页面。 同样也documented为:

阅读页面,您需要:

  1. 公众和非人口统计学限制网页应用程序或用户访问令牌
  2. 为受限制的页面用户的access_token即当前用户能够查看(无需特殊权限)

因此,您需要使用utili ze 用户访问令牌访问该页面,以便Facebook可以允许您的应用程序访问Page的帖子。

+0

我如何着手在代码中完成这项工作?我的网站上没有任何Facebook登录/用户登录。 – Keoki 2013-04-05 18:31:14

+0

这样做会有问题吗?另外请注意[平台政策](https://developers.facebook.com/policy/),其中指出:“您不得规避(或声称规避)我们对核心Facebook功能和功能的预期限制。”# – 2013-04-06 04:33:25

+0

问题你在说什么? – Keoki 2013-04-08 15:41:23