无法实例化Google API服务:权限被拒绝

时间:2015-11-09 21:04:34

标签: python google-api google-custom-search api-key google-api-python-client

我在Google帐户中创建了一个项目。然后授权并使用API​​密钥和自定义搜索引擎ID访问Google自定义搜索。 我试图通过修改示例代码使用Python接口执行搜索。 每次我在此行之后运行代码时都会出现此错误:

service = build("customsearch", "v1",
        developerKey="AIxx")
  

IOError:[Errno 13]权限被拒绝

我尝试自己创建一个请求,以检查问题是否与Google或我有关。这是我的要求:

  

https://www.googleapis.com/customsearch/v1?q=olive+garden&cx=00026xx&key=AIxx

它有效!所以,现在我完全糊涂了,无法弄清问题是什么。

更奇怪的是,当我尝试使用Google API资源管理器执行相同的搜索时,它会返回:超出每日限制

2 个答案:

答案 0 :(得分:4)

问题是因为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

答案 1 :(得分:2)

问题是因为Google API想要访问不受其许可的位置。

超级用户运行您的脚本。像这样的东西:

sudo python test.py

如果您知道Google API想要访问的位置,请通过chmod命令更改位置权限。