我想获得一些随机用户的最新帖子(诅咒的公开帖子)。我认为既然他们是公开的帖子,我不需要得到所有者的许可。这是我的代码:
function fetchUrl($url){
return file_get_contents($url);
}
$profile_id = "4";
$app_id = "****";
$app_secret = "****";
$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={$app_id}&client_secret={$app_secret}");
$json_object = fetchUrl("https://graph.facebook.com/{$profile_id}/posts?{$authToken}");
$feedarray = json_decode($json_object , true );
foreach ( $feedarray as $feed_data )
{
var_dump( $feed_data);
}
它返回有关用户活动的一些数据,但没有关于帖子!
以下是示例
这是我的fb acc(我很少使用它),我刚刚发布了帖子(test3) https://www.facebook.com/Hereticcc
当我使用我的帐户ID
运行此代码时$json_object = fetchUrl("https://graph.facebook.com/{$profile_id}/posts?{$authToken}&limit=50");
$feedarray = json_decode($json_object , true );
foreach ( $feedarray['data'] as $k=>$v )
{
/// var_dump( $v['story']);
echo $v['story']; echo '<br />';
}
这是我得到的!我没有添加只喜欢和友谊的帖子没有迹象
Mj Tb Z likes Facebook Developers.
Mj Tb Z and Ahmad Masajedi are now friends.
Mj Tb Z and Di M AH are now friends.
Mj Tb Z likes Cult of Luna.
Mj Tb Z likes a link.
Mj Tb Z likes a status.
Mj Tb Z likes a link.
Mj Tb Z and Eh San Mans are now friends.
Mj Tb Z likes a link.
Mj Tb Z likes Mist Within.
Mj Tb Z likes Filmhaa.
Mj Tb Z likes a link.
Mj Tb Z and Mamad RJ are now friends.
Mj Tb Z likes a link.
Mj Tb Z is now using Facebook in English (US).
Mj Tb Z is now friends with Mushu Khoshbakht and Samin Zavarkesh.
Mj Tb Z likes a photo.
Mj Tb Z updated his cover photo.
Mj Tb Z and Mohammad Khoshbakht are now friends.
我尝试过FQL
这是我的代码
$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={$app_id}&client_secret={$app_secret}");
echo $fql_query_url = 'https://graph.facebook.com/'
. 'fql?q=SELECT+message+FROM+stream+WHERE+source_id=4'
. '&' . $authToken;
echo '<br />';
$fql_query_result = fetchUrl($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
echo '<pre>';
print_r("query results:");
print_r($fql_query_obj);
echo '</pre>';
结果如下:
https://graph.facebook.com/fql?q=SELECT+message+FROM+stream+WHERE+source_id=4&access_token=284654551659478|D7T6A1uMSr1Qm1LLFBB9CQk_vK8
query results:Array
(
[data] => Array
(
)
)
答案 0 :(得分:2)
未经他/她许可,您无法为随机用户阅读帖子的摘要(包括其公开的状态更新)。您需要拥有read_stream
权限的用户的有效User Access Token才能执行此操作。
使用有效的访问令牌,您可以通过stream表上的FQL查询为特定用户或他/她的朋友实现此目的。您可以使用如下查询:
SELECT post_id, message FROM stream WHERE source_id = {User_ID} LIMIT 50
或者,如果您特别关注用户或他/她的朋友的状态,您可以使用status表格,如:
SELECT status_id, message FROM status WHERE uid = {User_ID} LIMIT 50
但是有一种方法可以在用户状态更新和页面状态更新发布到Facebook时读取它们。这可以通过使用Public Feed API来完成。但这只包括将其隐私设置为“公共”的状态更新包含在流中。此外,您目前无法申请使用API,因为其访问权限有限。