0

我尝试使用 Google plus API 来完成 OAuth2 过程。

我得到了验证者并准备交换访问令牌,然后发生错误。

httplib2.CertificateHostnameMismatch: 

Server presented certificate that does not match host accounts.google.com:

服务器提供的证书与主机www.googleapis.com不匹配

提供的证书(通用名称)为*.g.doubleclick.net

为什么他们不一样??

我的代码是这样的:

from oauth2client.client import flow_from_clientsecrets

CLIENT_SECRETS = 'client_secrets.json'

MISSING_CLIENT_SECRETS_MESSAGE = ""

FLOW = flow_from_clientsecrets(CLIENT_SECRETS,
    scope='https://www.googleapis.com/auth/plus.me',
    message=MISSING_CLIENT_SECRETS_MESSAGE)

    FLOW.step1_get_authorize_url() 
    # the url is outputted and 
    # my browser forward to it to get the verifier

    FLOW.step2_exchange(verifier) 
    # I paste the verifier and execute this line, then error occurred.

有什么提示吗?

PS: 我的urllib2版本是0.7.2

4

1 回答 1

1

对于因出现 CertificateHostnameMismatch 错误而偶然发现此问题的任何人,我建议您检查您正在使用的 Python 版本(python --version)。

我在 Python 2.7.2 上,结果证明在 SSL 证书处理方面存在一些已知问题/回归。我升级到 2.7 分支中的最新版本,我的 CertificateHostnameMismatch 错误消失了。

于 2014-10-05T11:02:01.650 回答