4

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

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

$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"; 
} 

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

ответ

4

Ссылка:https://developers.facebook.com/docs/reference/api/

Используйте API URL:

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

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

Ответ будет закодирован JSON. Декодируйте его с помощью json_decode в ассоциативный массив PHP. Идите по нему и проверьте, хотите ли вы группу.

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

+1

сэр я пробовал .. но результат пуст ... –

+0

Alright, размещая пример – xbonez

+0

ОК сэр ... спасибо –

3

Изучал это и считал это первым ответом в google, но ответ, похоже, был очень хлопотным, поэтому я вырыл немного глубже.

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

Это не представляется возможным после того, как Graph API v2.4, потому что Facebook решил запретить его: https://developers.facebook.com/docs/apps/changelog#v2_4

«Пользовательское_пользовательское разрешение устарело. Разработчики могут продолжать использовать разрешение user_managed_groups для доступа к группам, администратором которых является человек. Эта информация по-прежнему доступна через/v2.4/{user_id}/groups, который по-прежнему доступен в версии 2.4. "

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