Войдите в Facebook Graph API с уже сгенерированным токеном доступа? - PullRequest
0 голосов
/ 24 января 2020

У нас есть приложение Facebook, и через него мы загружаем сообщения и изображения из учетной записи Facebook нашей компании в интерфейс для последующего использования со старым API. Этот интерфейс используют несколько человек в компании.

Мы обновляем новый API-интерфейс Graph, и, поскольку многие используют интерфейс, я хотел бы сгенерировать токен доступа из учетных данных одного пользователя в фон, без полного URL-адреса входа и окна. Мы используем PHP SDK.

Можно ли, например, программно войти в систему пользователя, нажав кнопку, и продолжить вызовы API? Или каждый пользователь должен будет войти в систему с помощью всплывающего окна, чтобы иметь возможность импортировать сообщения? Я предполагаю, что тогда мне нужно будет отправить также массив учетных данных и разрешений для входа ...

Я пытался добавить сюда access_token:

$facebook = new Facebook\Facebook([
    'app_id' => {app-id},
    'app_secret' => {app-secret} ,
    'default_access_token' => {access-token} ,
    'default_graph_version' => 'v5.0',
]);
// Can you get around the redirect with JavaScript helper here instead?
$helper = $facebook->getRedirectLoginHelper(); 

try {
    $accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
}

if (!isset($accessToken)) {
    if ($helper->getError()) {
        header('HTTP/1.0 401 Unauthorized');
        echo 'Unauthorized';
    } else {
        // This is the response I always get sending in the access_token
        header('HTTP/1.0 400 Bad Request');
        echo 'Bad request';
    }
    exit;
}

1 Ответ

0 голосов
/ 24 января 2020

Автоматический вход без взаимодействия с пользователем невозможен, это может быть серьезной проблемой безопасности. Вы должны авторизоваться как пользователь, вошедший в систему.

Вы можете создать токен расширенной страницы только как пользователь, который управляет страницей и сохраняет ее - он будет действителен в течение примерно 60 дней.

Кроме того, вы можете подать заявку на Page Publi c Доступ к контенту и просто использовать токен доступа к приложению, то есть, если страница не ограничена по возрасту или местоположению.

...