我在facebook上运行了一个应用程序,可以将照片发布到Facebook页面,但是当我更改了我的facebook密码时,我的标记重置了。所以我回过头来获取所有令牌的身份验证过程。而且我一直收到这条消息。 {“message”:“访问令牌签名无效。”,“类型”:“OAuthException”}}
我认为问题是我的页面令牌不正确。与我的旧页面令牌相比,我的新页面令牌是额外的30个字符。我在想我错过了一步。
我使用https://graph.facebook.com/me/accounts?access_token=获取了我的网页令牌。
这是我的旧页面令牌看起来像= ftXXXXXXXXXVJCeVnt-sKYoM
但现在它是这样的:AAACeXXXXXXXXXXXXXXXXXXXpLiXZCYCIEsBzK59vUcP00cpk4XXXXXXXXXXXXXXXd2tnbCePVYLEuk0OBrQBmTRnGHfs3gZDZD
我错过了使用页面令牌的步骤吗?
我知道这不是范围问题。我已经分配了这个当事人的每一个许可。
感谢您的帮助。
这是我的代码示例,在我搞砸了所有令牌访问权限之前工作。我在这里有我的新令牌,这就是给我带来麻烦的东西。不是其余的代码。任何见解都是巨大的。
$access_token = '1743XXXXXXXXX9104|fcdApQ4CXXXXXXXXXMo82SRHQh8o|81XXXXXXXXX70|AAACelwXXXXXXXXXuiTpY2BBwUZBpLiXZCYXXXXXXXXXcpk4g4FBkhpwykR0amEcdn1Kd2tXXXXXXXXXrQBmTRnGHfs3gZDZD';
$post_name = 'NAME';
$post_link = 'http://mykirklands.com';
$post_picture = '000000.jpg';
$post_description = 'description';
// CRAFT OUR MESSAGE TO POST
$url = "https://graph.facebook.com/$page_id/photos";
$post_name = $content;
$post_picture = '@'.$_SERVER['DOCUMENT_ROOT'].''.$image;
$attachment[$count] = array('access_token' => $access_token,
'source' => "$post_picture",
'message' => "$post_name"
);
echo $count++;
}
foreach($attachment as $row){
// SEND TO FACEBOOK
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $row);
$result= @curl_exec($ch);
curl_close ($ch);
};
答案 0 :(得分:2)
我找到了答案。好像Facebook最近改变了一些事情。
旧的访问令牌的格式为 APP_ID | APP_TOKEN | PAGE_ID | PAGE_TOKEN
从应用程序发布到Facebook墙所需的新访问令牌只是: PAGE TOKEN
页面标记之间的区别在于: 旧令牌
4qVvc4wBz14_fgJLqE7PeQyLgaY
新令牌
XXXXXXXXXXcnPXXXXXXXXXXVr3hmNPsqypxR9mXXXXXXXXXXXVGFdmQeWZCXXXXXXXXXXelrC69kdwZCXXXqD98IislBJ5YYYYYYYwZDZD
我猜测新令牌包含足够的安全性,可以对应用程序进行身份验证以及为页面提供权限。
我正在使用php脚本通过cURL将图片帖子发布到页面的Facebook墙上。同样重要的是要注意,您需要将令牌作为变量包含在您发送给cURL的URL中。
$url = "https://graph.facebook.com/$page_id/photos?access_token=$page_access_token";
我正在添加重要的代码块来整理这件事:
$attachment = array('message' => '',
'name' => "$post_name",
'caption' => '',
'link' => '',
'description' => "$post_name",
'source' => "$post_picture",
'actions' => array(array('name' => '',
'link' => ''))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
$result= @curl_exec($ch);
curl_close ($ch);
全部完成。事情已恢复正常。如果您对此有任何疑问,请与我们联系。在我做出这个简单的改变之前,我把头埋在墙上3天。希望没有其他人必须经历我所经历的事情。