问题描述
|
我有一个PHP应用程序,该应用程序使用Curl调用Facebook Graph API并将项目发布到用户的墙上。它可以在我的开发箱和生产服务器上很好地工作,但是不能在一台QA服务器上工作。我们收到一个模糊的错误代码100:“消息失败”。据我所知,我正在从所有服务器发送相同的信息。
这是我在开发箱上的要求:
Array
(
[0] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
[1] => Accept-Language: en-us,en;q=0.5
[2] => Accept-Charset: utf-8;q=0.7,*;q=0.7
)
POST: https://graph.facebook.com/me/feed
{
\"message\":\"my message\",\"picture\":\"http:\\/\\/server.com\\/image.jpeg\",\"link\":\"http:\\/\\/server.com\\/page\",\"name\":\"foo\",\"caption\":\"bar\",\"access_token\":\"{ACCESS_TOKEN}\"
}
这是响应(有效):
{
\"id\": \"6705254_873254004878\"
}
这是我在“质量检查”框中的要求(相同的ACCESS_TOKEN):
Array
(
[0] => Accept: text/html,\"access_token\":\"{ACCESS_TOKEN}\"
}
这是对质量检查的回应(失败)
{
\"error\": {
\"type\": \"OAuthException\",\"message\": \"(#100) Message Failed\"
}
}
我已经删除了我们发送的用于图片和链接的实际URL,但是您知道了:)
有谁知道我可能做错了什么?对我来说看起来...
解决方法
嘿,
我认为您的应用设置中提供的网站网址存在问题。 Facebook仅允许来自您的应用程序设置中列出的域的请求。
,据我了解的facebook政策,只有一个客户可以使用特定的访问令牌进行授权-因此您应在发布前获得一个新的访问令牌。在此处进行了描述:Facebook:“已使用此授权代码。”,“类型”:“ OAuthException”,“代码”:100
所以你应该添加
$access_token = $session->getToken();