Вопрос по facebook, facebook-graph-api – Facebook Graph API проверить, если пользователь является членом группы, использующей PHP

4

я хочу проверить, является ли пользователь членом группы, использующей api facebook graph ...

у меня есть это:

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

$checkuser = $group->data;

и проверить пользователя, если он является членом с помощью егоfacebook id а такжеin_array()

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

echo "yes";

} else {

echo "no";
}

может кто-нибудь помочь мне исправить это, пожалуйста ... мой код не работает ...

Ваш Ответ

3   ответа
2

потому что Facebook решил запретить это: https://developers.facebook.com/docs/apps/changelog#v2_4

& quot; разрешение user_groups устарело. Разработчики могут продолжать использовать разрешение user_managed_groups для доступа к группам, администратором которых является человек. Эта информация по-прежнему доступна через /v2.4/ enjuser_idgoti/groups, который все еще доступен в v2.4. & Quot;

В нем также указано, что «начиная с 6 октября 2015 года во всех предыдущих версиях API эти конечные точки будут возвращать пустые массивы». Но мне кажется, что он все еще работает на v2.2 & amp; v2.3.

4

Reference: https://developers.facebook.com/docs/reference/api/

Используйте URL-адрес API:

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

Чтобы получить группы пользователей. В приведенной выше ссылке изменитеme/ к идентификатору пользователя FB. Вы также должны передать токен доступа.

Ответ будет в кодировке JSON. Расшифруйте это, используяjson_decode в ассоциативный массив PHP. Переберите его и найдите нужную группу.

Graph API не возвращает все группы одновременно. Вы должны либо использовать ссылки нумерации страниц в конце каждого ответа, чтобы получить больше, либо использоватьlimit Параметр для запроса столько, сколько вам нужно.

В следующем примере кода будут опубликованы идентификаторы групп, частью которых вы являетесь

<?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", вам нужно раскомментировать / добавить расширение PHPextension=php_openssl.dll

Error: User Rate Limit Exceeded Zhia Aruza
Error: User Rate Limit Exceeded Zhia Aruza
Error: User Rate Limit Exceeded Zhia Aruza
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

но ответ, кажется, много хлопот, поэтому я вырыл немного глубже.

Самый быстрый ответ, который я нашел, который не требует итерации по всем группам. члены использует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"
    }
  ]
}

Похожие вопросы