我目前正面临一个问题,是关于谷歌搜索,curl和json。
首先,我想向您展示我已经拥有的代码:http://pastebin.com/LZzDZvHC
让我来解释一下:
- 我没有显示我从google 收到的密钥
- $data是我从提交的表单 中获得的Post
- ip为用户ip
- $url显然是来自googleapps的ajax请求url
所以如果我打印出$url并把它放入我的浏览器,我得到一个漂亮的JSON返回-工作完美。我想你已经猜到问题出在哪里了。
在这些声明之后,我开始curl。
我得到了一些东西,并希望将json转换为数组。
问题是这样的:我没有得到JSON,我得到一个错误。
说:
400。这是一个错误。您的客户端发出了错误的或非法的请求。
上面有一个漂亮的谷歌标志。
所以我试着把一个用户代理放入我的curl请求->不起作用
不要担心我的json_decode() -我确实安装了和测试它,它工作得很好!所以没有问题。
当我得到这个错误消息时,我显然从var_dump();
得到一个"NULL"如果我不设置[assoc]为真我的浏览器甚至不显示我的网站。(http://www.php.net/manual/en/function.json-decode.php)
现在请看看谷歌的文档:http://code.google.com/apis/websearch/docs/向下滚动到Php Access
我可以想象这不仅是搜索的问题,也是其他谷歌服务的问题,因为我的curl请求来自服务器,对我来说这似乎是一个限制。
我希望有人有办法解决这个问题,因为我想用它
print $url;
的输出是什么?看起来对吗?您可能需要对参数值进行unlencode…
当我打开https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=oele&key=boele&userip=12.34.6.78