/ / Dlaczego otrzymuję CERTIFICATE_VERIFY_FAILED z API Google AdWords? - python-2.7, google-api, google-adwords, google-api-client, google-api-python-client

Dlaczego otrzymuję CERTIFICATE_VERIFY_FAILED z google adwords api? - python-2.7, google-api, google-adwords, google-api-client, google-api-python-client

Dlaczego Google AdWords API przestaje nazywać ten link:

https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl

Z tym błędem - czy powinienem wcześniej załadować jakiś certyfikat i jak?

urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

Korzystanie z Python 2.7.10.

Pełny kod źródłowy: create_adwords_client_without_yaml.py

Pełny kod błędu:

Traceback (most recent call last):
File "C:/Users/Crezary Wagner/PycharmProjects/learn-adwords/src/examples/create_adwords_client_without_yaml.py", line 56, in <module>
CLIENT_CUSTOMER_ID)
File "C:/Users/Crezary Wagner/PycharmProjects/learn-adwords/src/examples/create_adwords_client_without_yaml.py", line 50, in main
customer = adwords_client.GetService("CustomerService").get()
File "C:rootPython27libsite-packagesgoogleadsadwords.py", line 256, in GetService
proxy=proxy_option, cache=self.cache, timeout=3600)
File "C:rootPython27libsite-packagessudsclient.py", line 115, in __init__
self.wsdl = reader.open(url)
File "C:rootPython27libsite-packagessudsreader.py", line 150, in open
d = self.fn(url, self.options)
File "C:rootPython27libsite-packagessudswsdl.py", line 136, in __init__
d = reader.open(url)
File "C:rootPython27libsite-packagessudsreader.py", line 74, in open
d = self.download(url)
File "C:rootPython27libsite-packagessudsreader.py", line 92, in download
fp = self.options.transport.open(Request(url))
File "C:rootPython27libsite-packagessudstransporthttps.py", line 62, in open
return HttpTransport.open(self, request)
File "C:rootPython27libsite-packagessudstransporthttp.py", line 67, in open
return self.u2open(u2request)
File "C:rootPython27libsite-packagessudstransporthttp.py", line 132, in u2open
return url.open(u2request, timeout=tm)
File "C:rootPython27liburllib2.py", line 431, in open
response = self._open(req, data)
File "C:rootPython27liburllib2.py", line 449, in _open
"_open", req)
File "C:rootPython27liburllib2.py", line 409, in _call_chain
result = func(*args)
File "C:rootPython27liburllib2.py", line 1240, in https_open
context=self._context)
File "C:rootPython27liburllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

Odpowiedzi:

3 dla odpowiedzi № 1

Python używa certyfikatów z „systemowego ssl”magazyn certyfikatów ”, aby potwierdzić połączenie https, jeśli w sklepie nie ma żadnego odpowiedniego certyfikatu ssl, wystąpi błąd. Pobierz certyfikat ssl (otwórz link https w przeglądarce i kliknij ikonę kłódki w pasku adresu> Więcej informacji> Wyświetl certyfikat> Szczegóły> Eksportuj) i zainstaluj go w systemie zgodnie z tym linkiem http://windows.microsoft.com/en-us/windows/import-export-certificates-private-keys#1TC=windows-7


2 dla odpowiedzi nr 2

Nie jestem pewien, czy to jest tutaj problem, ale warto to sprawdzić.

Python 2.7.9 domyślnie włączono sprawdzanie poprawności certyfikatu dla HTTP znajomości.

Serwer, z którym się łączysz, nie ma certyfikatu zaufanego przez twojego klienta. Pysphere powinien się skonfigurować SSL odpowiednio do tego przypadku użycia.

Spróbuj złożyć zapytanie:

requests.get("https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl", verify=False)

0 dla odpowiedzi № 3

Spróbuj, pomogło mi to:

import ssl

ssl._create_default_https_context = ssl._create_unverified_context