Как проверить, аутентифицировал ли данный идентификатор пользователя мое приложение? - PullRequest
3 голосов
/ 12 апреля 2011

Я использую API Graph Facebook и хочу проверить, аутентифицировал ли пользователь мое приложение Facebook по его идентификаторуКак мне это сделать?

Ответы [ 3 ]

3 голосов
/ 12 апреля 2011

Вы используете:

SELECT is_app_user FROM user WHERE uid=USER_ID

Это должно вернуть:

[
  {
    "is_app_user": true
  }
]

Если пользователь вошел в ваше приложение.

2 голосов
/ 12 апреля 2011

Если продолжить ответ ifaour, в PHP этот запрос будет выглядеть примерно так:

<?php
    $facebook = new Facebook(
        'appID' => YOUR_APP_ID, 
        'secret' => YOUR_APP_SECRET
    );

    $result = $facebook->api(array(
        'method' => 'fql.query',
        'query' => "SELECT is_app_user FROM user WHERE uid=$user_id"
    ));

    $is_installed = $result[0]['is_app_user'];
0 голосов
/ 10 января 2014

Здесь вы можете объединять несколько запросов и избегать использования FQL.

Предполагая, что вы уже вошли в Facebook и задали токен доступа для токена доступа к приложению, вы можете сделать это:

$batch = array();
foreach($friendArray AS $friend) {
    $batch[] = array(
        'method' => 'GET',
        'relative_url' => '/' . $friend . '?fields=installed'
    );
}

FB()->useApplicationAccessToken();
$batchResponse = FB()->facebook()->api('?batch='.json_encode($batch), 'POST');

Затем вы можете обработать пакетный ответ с помощью следующего кода:

$installedUsers = array();
$notInstalledUsers = array();
foreach ($batchResponse AS $response) {
    $body = json_decode($response['body'], true);
    if (!isset($body['id']))
        continue;

    $id = $body['id'];
    if (isset($body['installed']))
        $installedUsers[] = $id;
    else
        $notInstalledUsers[] = $id;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...