我有一个使用 google drive API 的小工作 - 在初始设置中我捕获凭据,但这似乎只有在用户在 linux 中以 root 身份运行时才有效。
flow = flow_from_clientsecrets('client_secrets.json', OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
print 'Go to the following link in your browser: \n' + authorize_url
code = raw_input('Enter verification code: ').strip()
credentials = flow.step2_exchange(code)
当我以标准用户身份运行它时,我得到:
ssl.SSLError: [Errno 185090050] _ssl.c:340: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
以root运行时工作正常,无论如何要解决这个问题?
更新: open("/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/cacerts.txt", O_RDONLY) = -1 EACCES (权限被拒绝)
httplib2 以 root 身份安装?这可能是问题吗?
Strace 透露——我补充说
httpfix = httplib2.http(disable_ssl_certificate_validation=True)
并改变了
credentials = flow.step2_exchange(code,httpfix)
这一切都奏效了