格式错误的Facebook访问令牌

use*_*807 22 facebook-graph-api

我正在尝试使用Facebook Graph API从Facebook获取相册并将它们放在我正在处理的网站上.我使用PHP作为我的语言与Codeigniter框架,并重定向到Facebook URL以获取用户的访问令牌.Facebook向我返回一个访问令牌,我抓住它并将其插入我的数据库.

话虽这么说,当我尝试通过转到图形URL来获取相册的JSON数据时,它会返回错误.图表URL和错误是:

https://graph.facebook.com/1298926000574/photos?access_token=[MY ACCESS TOKEN]

My access token: AQBxqdB64GHNTGY5Yp_IOuMY7NerwNtXVVrp2HwT1qXj02zqU-63KJDyB2jzqurlJ4M0vd7TAu7upA6T7ZYQzIChr2PgD1dpu-6Iebi0WVILbBSBOu-yj7sgcHSGS-Ew4Yio0I9In-1O5jOxbYLDMbI0Zmwk-F1-u-7a8iVvTJram8PvpmdRt5eg

Returned error:

{
"error": {
  "message": "Malformed access token [MY ACCESS TOKEN]",
  "type": "OAuthException",
  "code": 190
}
} 
Run Code Online (Sandbox Code Playgroud)

我真的不确定为什么Facebook一直向我回复这个错误.访问令牌很长,我将它作为"文本"字段存储在我的数据库中.我按照他们的指示,现在他们在脚下射击我.任何帮助将非常感激.

Gij*_*des 63

我有同样的问题,我发现这篇文章正在寻找解决方案.我注意到'我们的'访问令牌有很多奇数符号,而其他只是一个字母数字字符串.

我相信你(和我)犯的错误就是将代码access_token混合在一起

将Facebook用户发送到您的api以确认访问权限后,他们将返回您的网站$_GET['code'].此代码需要通过Facebook验证,Facebook将在成功时返回access_token.

$app_id = [YOUR_APP_ID];
$app_secret = [YOUR_APP_SECRET];
$my_url = [THE_SAME_AS_THE_POST_BEFORE];
$code = $_GET['code'];

$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret . "&code=" . $code;

$response = file_get_contents($token_url);
$params = null;
json_decode($response, $params);
$access_token = $params['access_token'];
Run Code Online (Sandbox Code Playgroud)

有关使用PHP获取access_token的更多信息

有关使用正确的redirect_uri的更多信息

  • 应该标记为已接受答案 (2认同)