【问题标题】:PHP curl json for twitter not working用于推特的 PHP curl json 无法正常工作
【发布时间】:2013-05-13 14:25:21
【问题描述】:

此代码不起作用:

$ch = curl_init ("https://api.twitter.com/1/statuses/user_timeline/ijustine.json?callback=twitterCallback2&count=4");

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec ($ch);

var_dump($output);

如果我尝试访问: https://api.twitter.com/1/statuses/user_timeline/ijustine.json?callback=twitterCallback2&count=4

在浏览器中手动输入此地址即可工作,并且 json 会显示在浏览器中。

但在我的脚本中它不起作用。

我正在使用 WAMP,并且 PHP (5.3.13) 中的 curl 扩展被激活,因为如果我运行:var_dump( curl_version() ); 我会得到版本为 7.25.0 的数组。

顺便说一句。这是有效的: $ch = curl_init("http://yahoo.com");

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec ($ch);

var_dump($output);

但如果我尝试访问http://twitter.com,我会得到string '' (length=0)。如果我尝试https://twitter.com 我会得到boolean false 为什么?

我是否需要在我的本地主机或其他东西上启用任何额外的 php 扩展或一些 apache 模块?

【问题讨论】:

标签: php json curl twitter


【解决方案1】:

这可能是 HTTPS 证书问题;检查过去的问题: Can't connect to HTTPS site using cURL. Returns 0 length content instead. What can I do?

【讨论】:

    【解决方案2】:

    非常重要请注意,很快,您的代码将不再工作,因为您使用的是已弃用的 twitter api 版本 1.0。

    This post explains what's going on 的简短版本。

    阅读完之后,您可以前往this post,它准确地解释了如何获取 1.1 api 所需的令牌。

    同样,您的代码将很快停止使用 Twitter 的 1.0 api。您的问题将不再是通过 cURL 通过 HTTPS 连接的问题 - 您将在每个请求上收到“未通过身份验证”错误。

    因此使用上述信息开始使用经过身份验证的请求。

    【讨论】:

      猜你喜欢
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2013-02-11
      • 2015-07-06
      • 2015-10-08
      • 2018-05-22
      相关资源
      最近更新 更多