如何从其他用户获取访问令牌
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。下面我已经解释了如何获得测试用户
- 转到应用页面。
- 点击角色。
- 点击右上角测试用户。
- 它将显示您的测试用户详细信息。
- 使用此详细信息并访问您的应用程序。
在您的 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 */
我需要阅读 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。下面我已经解释了如何获得测试用户
- 转到应用页面。
- 点击角色。
- 点击右上角测试用户。
- 它将显示您的测试用户详细信息。
- 使用此详细信息并访问您的应用程序。
在您的 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 */