我怎样才能获得两个人的友谊细节?例如,在网络中它将是:
http://www.facebook.com/<my_id>?and=<friend_id>
我有什么方法可以在Graph API中做到这一点?此外,我可以获得特定项目,如照片,我们之间的墙贴等吗? (没有记录AFAIK,但很多图谱API功能都不是......)
编辑:我认为应该可以使用Graph API。例如,获取家庭详细信息(兄弟,姐妹,父母等)尚未记录,但我仍然可以这样做。
答案 0 :(得分:6)
您可以通过执行多个FQL查询来模拟友谊查询。例如,要获得两个朋友A和B之间的所有照片,您可以:
重复,这次选择B的照片。
您可以将相同的概念应用于其他内容,例如帖子,视频,视频等。
答案 1 :(得分:3)
是的,我认为你也可以做同样的事情phillee
用Graph API而不是FQL回答:
https://graph.facebook.com/USERID/photos
https://graph.facebook.com/PHOTOID/tags
https://graph.facebook.com/PHOTOID/comments
https://graph.facebook.com/USERID/feed
https://graph.facebook.com/USERID/posts
http://developers.facebook.com/docs/reference/api/user/
对于兴趣,电影,活动等,只需对两者(https://graph.facebook.com/ONEUSER/music
和https://graph.facebook.com/OTHERUSER/music
)进行API调用,并找到两组数据的交集(循环遍历每个列表并保存所有数据)匹配单独的相互喜欢列表)
虽然没有针对友谊的特定API调用,因此将必须构建自己的。我的猜测是Facebook正在他们的友谊页面上做到这一点:)
使用FQL和使用REST API一样容易......使用FQL可能更容易,因为您可以添加WHERE条件并获取所需的数据(SELECT * FROM comments WHERE fromid = FRIENDID
),而不是通过排序API返回的大列表(除非有办法为API请求URL添加条件?)。
答案 2 :(得分:0)
如果我理解正确,你想“查看友谊”
使用Graph API(目前)无法直接进行此类查询。您需要从每个资源端点收集信息,然后根据自己的需要做一些相关的“查看友谊”
答案 3 :(得分:0)
这就是我一直在使用的:
<?php
function main()
{
global $Fb;
$Fb = new Facebook(array('appId'=>FB_API_ID,'secret'=>FB_API_SECRET));
$logoutUrl = $Fb->getLogoutUrl();
$loginUrl = $Fb->getLoginUrl();
$user = fb_loguser($Fb);
if ($user)
{
$txt .= "<p align=\"center\"><a href=\"" . $logoutUrl . "\">Logout</a></p>";
$txt .= "<h3 align=\"center\">You</h3>";
$access_token = $Fb->getAccessToken();
$user_profile = $Fb->api('/me');
$txt .= "<p align=\"center\">
<img src=\"https://graph.facebook.com/".$user."/picture\"></p>";
$txt .= fb_friends_list($user_profile,$access_token);
}
}
function fb_loguser($facebook)
{
global $Fb;
$Fb = $facebook;
$user = $Fb->getUser();
if ($user)
{
try
$user_profile = $Fb->api('/me');
catch (FacebookApiException $e)
{
error_log($e);
$user = null;
}
}
return($user);
}
function fb_friends_list($access_token)
{
global $Sess,$Fb;
$friends = $Fb->api('/me/friends'); // return an array [data][0 to n][name]/[id]
$siz = sizeof($friends['data']);
$txt = "<h3>Your FRIENDS on FACEBOOK</h3>";
$txt .= "<table>";
for ($i=0; $i<$siz; $i++)
{
$fid = $friends['data'][$i]['id'];
$src = "http://graph.facebook.com/".$fid."/picture";
$txt .= "<tr><td><img src=\"".$src."\" /></td>";
$txt .= "<td>".$friends['data'][$i]['name'] . "</td>";
$txt .= "<td>" . $fid . "</td></tr>";
}
$txt .= "</table>";
return($txt);
}
?>
调用main()!
答案 4 :(得分:0)
获取标记为两个(或更多)用户的照片:
SELECT pid, src_big FROM photo
WHERE pid IN(
SELECT pid FROM photo_tag WHERE subject=me())
AND pid IN(
SELECT pid FROM photo_tag WHERE subject=FRIEND_ID)
AND pid IN(
SELECT pid FROM photo_tag WHERE subject=ANOTHER_FRIEND_ID)
...
答案 5 :(得分:-2)