httplib2.CertificateHostnameMismatch в Google plus API

Я попытался использовать 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.


person xiaohan2012    schedule 16.12.2011    source источник
comment
если я прав, вам также нужно передать request_token, который вы получили на первом шаге, чтобы получить access_token   -  person Umesh Awasthi    schedule 17.12.2011
comment
Спасибо за ваш ответ. Я думаю, что Google API передал его для меня, потому что код здесь относится к его образцу кода. (но запуск примера кода вызывал такое же исключение) Вы когда-нибудь успешно запускали пример кода?   -  person xiaohan2012    schedule 17.12.2011
comment
я реализовал OAuth, но в java не в python :(   -  person Umesh Awasthi    schedule 17.12.2011


Ответы (1)


Всем, кто столкнулся с этим вопросом из-за ошибок CertificateHostnameMismatch, я рекомендую проверить, какую версию Python вы используете (python --version).

Я был на Python 2.7.2, который, как оказалось, имеет несколько известных проблем/регрессий в отношении обработки SSL-сертификатов. Я обновился до последней версии в ветке 2.7, и мои ошибки CertificateHostnameMismatch исчезли.

person Brendan Quinn    schedule 05.10.2014