使用PHP5 Curl调用Facebook Graph API。不同服务器得到不同的响应

时间:2011-04-14 22:26:40

标签: php facebook facebook-graph-api curl

我有一个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"
   }
}

我删除了我们为图片和链接发送的实际网址,但您明白了这一点:)

有谁知道我可能做错了什么?它看起来和我一样....

2 个答案:

答案 0 :(得分:1)

嘿 我认为您的应用设置中提供的网站网址存在问题。 Facebook仅允许来自您的应用程序设置中列出的域的请求。

答案 1 :(得分:1)

据我了解Facebook政策,只有一个客户可以使用特定的访问令牌授权 - 因此您应该在发布之前获得一个新的。这里描述了:Facebook: "This authorization code has been used.","type":"OAuthException","code":100

所以你应该添加

$access_token = $session->getToken();