如何从其他用户获取访问令牌

How get access token from other users

我需要阅读 facebook 上的帖子。我已经创建了应用程序,如果我使用我的凭据登录,程序就会运行。但是当我使用另一个凭证(就像我刚刚创建的另一个配置文件)登录时,该程序不再工作。这是我的登录页面:

$config = array(
        'appId' => APPID,
        'secret' => APPSECRET,
        'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
);

$facebook = new Facebook($config);
$user_id = $facebook->getUser();

if(!empty($_SESSION)) {

if($user_id) {


    try {

        $user_profile = $facebook->api('/me','GET');




        $login_url = $facebook->getLoginUrl(array('scope' => 'user_posts'));
        $access_token=$facebook->getAccessToken();
        $facebook->setAccessToken($access_token);

    } catch(FacebookApiException $e) {


        error_log($e->getType());
        error_log($e->getMessage());
    }
}
} else {



    $login_url = $facebook->getLoginUrl(array('scope' => 'user_posts'));

    header("Location: ".$login_url);

}

当我登录时,我获得了访问令牌并调用了图表 api:

https://graph.facebook.com/******/posts?access_token=**

如果我是登录应用程序的人,这是操作工作。如果应用程序中的另一个登录,这是行不通的。 也许这是一个身份验证问题。也许我忘记了我必须用另一个帐户对 authentica 进行的一些操作。谁能帮帮我?

您必须从此处为所有用户制作您的应用 public:https://developers.facebook.com

看看它:

您需要将您的应用程序提交到 Facebook,然后 Facebook 会检查并通过您的应用程序,然后您就可以访问您的应用程序的其他帐户。如果您想检查应用程序功能,您可以使用 Facebook 应用程序测试用户 ID。下面我已经解释了如何获得测试用户

  1. 转到应用页面。
  2. 点击角色。
  3. 点击右上角测试用户。
  4. 它将显示您的测试用户详细信息。
  5. 使用此详细信息并访问您的应用程序。

在您的 API 通话中使用 /me/feed 而不是 /我

参见下面的示例

权限

  • 您的应用需要 user_posts 权限 创建者 post 或在 post 中标记的人。然后您的应用程序可以读取:
  • 时间线 post 来自授予您权限的人。
  • 其他人在那个人的时间轴上制作的post。
  • 其他人在其中标记了那个人的post。
  • 如果您尝试从您的应用未被授权访问的提要中读取数据,调用将return一个空数组。

请阅读此主题

正在阅读

/* PHP SDK v4.0.0 */
/* make the API call */
$request = new FacebookRequest(
  $session,
  'GET',
  '/me/feed'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */