我正在尝试使用 Mike Lewis 的 Python 包装器向 Foursquare API 发出无用户请求 - https://github.com/mLewisLogic/foursquare :
client = foursquare.Foursquare(client_id=Client_ID, client_secret=Client_Secret)
categs = client.venues.categories()
间歇性地,我收到“连接到 Foursquare API 时出错”消息。运行记录器以捕获更详细的消息会产生:
“SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败”
这在过去不会发生,在我的本地 Windows 开发机器和运行 ubuntu 的服务器上都会发生。我是否遗漏了一些关于安全证书的基本知识?该问题是间歇性的,有时只需等待一分钟并重试即可暂时解决问题。
我已经下载了最新的 20120716 版本的包装器,尽管在 init.py 的代码中它仍然显示 API_VERSION = '20120608'。我使用的是 Python 2.73,并且还注册了 Foursquare API key ,使用上面代码中的 id 和 secret。我列出了 url,使用我的本地 IP:8000 并尝试为本地和开发机器使用单独的 key ,但这似乎没有什么区别。
非常感谢帮助。谢谢。
最佳答案
我昨天遇到了完全相同的问题。我搜索了很多,尝试了很多,似乎以下策略适用于我的情况(我不是 100% 确定,但它不再报告错误)。
1) 下载http://curl.haxx.se/ca/cacert.pem
wget http://curl.haxx.se/ca/cacert.pem
2) 转到您的 Python httplib2 目录。我的在
/usr/local/lib/python2.7/dist-packages/httplib2
cd /usr/local/lib/python2.7/dist-packages/httplib2
3) 备份当前证书
cp cacerts.txt backup_cacerts.txt
4) 然后将下载的文件复制到那里并重命名为cacerts.txt
mv cacert.pem cacerts.txt
就是这样。
希望对您有所帮助。如果无法从备份文件中恢复,请尝试其他方法。
我的 foursquare 脚本在我改变这个之后就可以正常工作了:)
关于python foursquare - SSL3证书验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321302/