Facebook的图形API检查用户是否是使用PHP一个一组的成员(facebook graph a

2019-06-24 02:42发布

我想检查,如果用户是用Facebook图形API一组的成员...

我有这个:

$group = file_get_contents("https://graph.facebook.com/177129325652421/members?access_token=XXXXXXXX");
$group = json_decode($group);

$checkuser = $group->data;

并检查用户是否是一个构件通过使用他facebook idin_array()

if(in_array($_GET["fid"],$checkuser)){

echo "yes";

} else {

echo "no";
}

有人可以帮我解决这个,请...我的代码是不工作...

Answer 1:

参考: https://developers.facebook.com/docs/reference/api/

使用API​​网址:

https://graph.facebook.com/me/groups

要获得用户的组。 在上面的链接,改变me/用户的FB ID。 你也必须通过在一个访问令牌。

该答复将JSON编码。 使用其解码json_decode到PHP关联阵列。 遍历并检查所需的组。

该图形API并没有立刻返回所有组。 您必须使用分页链接在每个响应结束时获取更多,或使用limit参数要求,因为你需要尽可能多的。

下面的代码示例将发布组的ID是你的一部分

<?php

$url = "https://graph.facebook.com/me/groups?access_token=AAAAAAITEghMBAMDc6iLFRSlVZCoWR0W3xVpEl1v7ZAxJRI3nh6X2GH0ZBDlrNMxupHXWfW5Tdy0jsrITfwnyfMhv2pNgXsVKkhHRoZC6dAZDZD";
$response = file_get_contents($url);

$obj = json_decode($response);

foreach($obj->data as $value) {
    echo $value->id;
    echo '<br>';
}

/* to check for existence of a particular group 

foreach($obj->data as $value) {
    if ($value->id == $yourID) {
        //found
        break;
    }

    //not found. fetch next page of groups
}

*/

PS -如果运行上面的代码给你一个错误,指出Could not find wrapper for "https" ,您需要取消注释/添加PHP扩展extension=php_openssl.dll



Answer 2:

一直在寻找这个,发现这是在谷歌第一的答案,但答案似乎是麻烦了,所以我挖了一个深一点。

最快的答案我发现它不需要通过所有群组成员的迭代使用FQL

SELECT gid, uid FROM group_member WHERE uid = (user id) AND gid = (group id)

这或者返回一个空“数据”对象,或与UID和GID一个“数据”对象。

它还(从我看的更远),不需要user_groups许可。

https://developers.facebook.com/tools/explorer?fql=SELECT%20gid%2C%20uid%20FROM%20group_member%20WHERE%20uid%20%3D%20551549780%20AND%20gid%20%3D%20282374058542158

这FQL查询返回我:

{
  "data": [
    {
      "gid": "282374058542158", 
      "uid": "551549780"
    }
  ]
}


Answer 3:

这似乎不是图形API V2.4之后是可能的,因为Facebook决定禁止它: https://developers.facebook.com/docs/apps/changelog#v2_4

“在user_groups权限已废弃。开发人员可以继续使用user_managed_groups权限访问该组一个人的管理者,这些信息是通过/v2.4/{user_id}/groups边缘依然有效静止访问V2.4“。

它也指出:“从2015年起10月6日,在所有以前的API版本,这些端点将返回空数组。” 但在我看来,它仍然适用于V2.2和V2.3。



文章来源: facebook graph api check if user is a member of a group using PHP