0

此代码不起作用:

$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 模块?

4

2 回答 2

3

这可能是 HTTPS 证书问题;检查过去的问题: Can't connect to HTTPS site using cURL。而是返回 0 长度的内容。我能做些什么?

于 2013-05-18T15:03:44.567 回答
0

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

这篇文章用简短的版本解释了发生了什么。

阅读完之后,您可以前往这篇文章,该文章准确解释了如何获取 1.1 api 所需的令牌。

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

所以使用上面的信息开始使用经过身份验证的请求。

于 2013-05-28T10:21:34.440 回答