我们需要在上个月获得Facebook用户添加的朋友数量。我们已经在Graph API中进行了搜索,但没有得到任何解决方案。
答案 0 :(得分:3)
我认为您应该使用FQL通知
但通知实际上仅限于过去7天。
尝试此查询:
SELECT created_time, sender_id, title_html, href, object_type
FROM notification
WHERE recipient_id=me() and object_type = 'friend'
<强>更新强>
另一种方法,有点棘手。
您应该能够在stream
:
SELECT created_time, description FROM stream WHERE source_id = me()
and (strpos(lower(description),'are now friends') > 0
or strpos(lower(description),'is now friends') > 0)
limit 50
通过这种方式,您可以获得包含句子are now friends
或is now friends
的所有行,(请注意句子词取决于客户(?)区域设置)。所以你将匹配所有行:
流表的每个查询都限制在前30天或50个帖子中,以较大者为准,但是您可以使用特定时间字段(如created_time)和FQL运算符(例如&lt;或&gt;)来检索更多的帖子。 https://developers.facebook.com/docs/reference/fql/stream/
更新2:
如果你只想使用graph api,我知道你对fql有相同的限制(即你被限制在过去7天)。
https://graph.facebook.com/me/notifications?include_read=1
但是在这种情况下,您无法过滤object_type
,而且必须找到所有title
包含"accepted your friend request"
答案 1 :(得分:0)
try this..
$count=0;
$fbid=xxxxx;
$onemonthbefore = strtotime(date("Y-m-d",strtotime("-1 Months")));
$ss=urlencode("SELECT created_time,description_tags,source_id,description FROM stream WHERE source_id = xxxxxx and (strpos(lower(description),'are now friends') > 0 or strpos(lower(description),'is now friends') > 0) limit 100");
$sql="https://graph.facebook.com/fql?q=$ss&access_token=xxxxxxxxx&format=json& date_format=U";
$new =file_get_contents($sql);
$new =json_decode($new);
foreach ($new->data as $data)
{
if($data->created_time > $onemonthbefore)
{
foreach ($data->description_tags as $tags)
{
foreach ($tags as $friend)
{
if($friend->id !=$fbid)
{
$count++;
}
}
}
}
}
echo "new friends=".$count;