我有一个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"
}
这是我在QA框上的请求(相同的ACCESS_TOKEN):
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}"
}
以下是质量保证(失败)的回复
{
"error": {
"type": "OAuthException",
"message": "(#100) Message Failed"
}
}
我删除了我们为图片和链接发送的实际网址,但您明白了这一点:)
有谁知道我可能做错了什么?它看起来和我一样....
答案 0 :(得分:1)
嘿 我认为您的应用设置中提供的网站网址存在问题。 Facebook仅允许来自您的应用程序设置中列出的域的请求。
答案 1 :(得分:1)
据我了解Facebook政策,只有一个客户可以使用特定的访问令牌授权 - 因此您应该在发布之前获得一个新的。这里描述了:Facebook: "This authorization code has been used.","type":"OAuthException","code":100
所以你应该添加
$access_token = $session->getToken();