使用已生成的访问令牌登录 Facebook 的 Graph API?

Log in to Facebook's Graph API with an already-generated access token?

我们有一个 Facebook 应用程序,通过它我们可以从我们公司的 Facebook 帐户中提取帖子和图片到一个界面供以后使用,使用旧的 API。公司有好几个人用这个界面

我们正在升级到新的 Graph API,由于有很多人使用该界面,我想在后台从单个用户的登录凭据生成访问令牌,而不是整个登录URL 和 window。我们正在使用 PHP SDK。

是否可以通过单击按钮以编程方式登录用户,例如,然后继续 API 调用?还是每个用户都需要使用弹出窗口 window 登录才能导入帖子?我假设我还需要发送登录凭据和权限数组...

我尝试在此处添加 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;
}

无法在没有用户交互的情况下自动登录,这将是一个主要的安全问题。您必须授权为已登录的用户。

您只能作为管理页面的用户创建扩展页面令牌并存储它 - 它的有效期约为 60 天。

或者,您可以申请 Page Public Content Access 并仅使用 App Access Token - 也就是说,如果主页不受年龄或位置限制。