【问题标题】:Can't post to Facebook wall through cURL无法通过 cURL 发布到 Facebook 墙上
【发布时间】:2012-09-13 01:08:12
【问题描述】:

我正在尝试通过 cURL 发布消息,但我不断收到错误消息:

{"error":{"message":"(#1500) The url you supplied is invalid","type":"OAuthException","code":1500}}

这是我的代码:

$this->msgData['message'] .= 'Test Message';
$this->msgData['link'] = 'test Link';
$this->msgData['name'] = 'Ny test Name';
$this->msgData['access_token'] = 'myaccesstoken';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/'.$this->page_id.'/feed');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);

// execute and close
$return = curl_exec($ch);
curl_close($ch);

我知道离线访问令牌已被弃用,但您仍然可以通过在应用设置中禁用“删除离线访问权限”来使用它。

我在网上进行了研究,但找不到太多信息为什么会失败。当它说提供的 URL 无效时,它意味着什么 URL?是 CURL URL 的“链接”吗?

各位有什么建议吗?

【问题讨论】:

  • 我认为当您回显/记录“graph.facebook.com/'.$this->page_id.'/feed”时,您的 URL 有效且正确?
  • 是的。我回应了网址。然后我在浏览器中粘贴。然后它抛出一个错误,说需要访问令牌。因此,我添加了 ?access_token=myaccesstoken 并从该页面中提取了提要。所以,我认为 URL 是有效的。
  • 也许尝试从 msgData 中删除 access_token 并将其附加到 URL,就像您尝试的那样?
  • @CallumMcLean:我试过这样做。但它没有用:(。令人惊讶的是,我有另一个应用程序使用相同的代码,但有一些“内容”差异,它工作正常。

标签: php facebook facebook-graph-api


【解决方案1】:

我无法将此添加为评论,因为我没有足够高的声誉,因此很抱歉将其发布为答案;但是,您正在运行的 PHP 版本是否设置为处理 SSL?由于 Open Graph 需要 https,您可能需要告诉 cURL 如何处理它。查看此问题的公认答案: Post to a Facebook user's wall with cURL PHP

您可能特别想尝试添加的行是:

`curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);`

【讨论】:

  • 我尝试了你的建议。没用:(。还是同样的错误。
猜你喜欢
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2011-08-14
  • 2012-01-05
相关资源
最近更新 更多