我在谷歌账户中做了一个项目。然后使用API密钥和自定义搜索引擎的ID授权并访问Google自定义搜索。我试图通过修改示例代码,使用Python接口执行搜索。每次我在这一行之后运行代码时,我都会收到以下错误:
service = build("customsearch", "v1",
developerKey="AIxx")
IOError:[Erno 13]权限被拒绝
我试着自己创建一个请求,以检查问题是否与谷歌或我有关。这是我的请求:
https://www.googleapis.com/customsearch/v1?q=olive+花园&cx=00026xx&key=AIxx
它成功了!所以,现在我完全困惑了,无法弄清楚问题出在哪里
更奇怪的是,当我尝试使用Google API资源管理器执行相同的搜索时,它会返回:Daily Limit Exceeded
问题是因为httplib2安装程序没有为其他人设置对cacerts.txt的读取权限您也必须向其他人添加读取权限:D
sudo chmod o+r /Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/cacerts.txt
实际上httplib2必须从系统范围的证书中读取这些内容,我不知道他们为什么不这样做。有人知道为什么吗?有针对这个特定问题的补丁,比如这个补丁https://bugs.mageia.org/show_bug.cgi?id=6568
问题是因为Google API想要访问不允许访问的位置。
由超级用户运行您的脚本。像这样的东西:
sudo python test.py
如果您知道Google API想要访问的位置,请通过chmod
命令更改位置的权限。