2016-03-07 2 views
1

Я не могу соединиться с API Adwords. Я последовал за шагами, как описано здесь: https://developers.google.com/adwords/api/docs/first-requestПроблема аутентификации API Python Adwords

Файлы находятся в папке C: \ Users \ User \ Documents \ googleads-питон Пб-мастер \ и файл аутентификации (googleads.yaml) заполняется с моим аккаунтом настройки. Эти настройки учетной записи ранее работали в среде Java.

Любые предложения о том, что происходит не так?

Я использую Python 3.5.1 и новейший API Adwords для Python.

Код ошибки я получаю это:

C:/Users/User/Documents/googleads-python-lib-master/examples/adwords/v201509/basic_operations/get_campaigns.py 
INFO:oauth2client.client:Refreshing access_token 
DEBUG:suds.transport.http:opening (https://adwords.google.com/api/adwords/cm/v201509/CampaignService?wsdl) 
DEBUG:suds.transport.http:sending: 
URL: https://adwords.google.com/api/adwords/cm/v201509/CampaignService 
HEADERS: {'Content-Type': 'text/xml; charset=utf-8', 'Content-type': 'text/xml; charset=utf-8', 'Soapaction': b'""', 'SOAPAction': b'""', 'Authorization': 'Bearer ya29.ngJKUmqHAKGfa93lSHVcYtpj6IHzN9KAoaMhGS_LEZJvrJjHnEl8Kx83leap3ae-g_zHmzA'} 
MESSAGE: 
b'<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="https://adwords.google.com/api/adwords/cm/v201509" xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201509" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Header><tns:RequestHeader><tns:developerToken>xxxxxxxxxxxxx</tns:developerToken><tns:userAgent>Client name (AwApi-Python, googleads/3.11.0, Python/3.5.1)</tns:userAgent><tns:validateOnly>false</tns:validateOnly><tns:partialFailure>false</tns:partialFailure></tns:RequestHeader></SOAP-ENV:Header><ns0:Body><ns1:get><ns1:serviceSelector><ns1:fields>Id</ns1:fields><ns1:fields>Name</ns1:fields><ns1:fields>Status</ns1:fields><ns1:paging><ns1:startIndex>0</ns1:startIndex><ns1:numberResults>100</ns1:numberResults></ns1:paging></ns1:serviceSelector></ns1:get></ns0:Body></SOAP-ENV:Envelope>' 
ERROR:suds.client:<suds.sax.document.Document object at 0x03F01390> 
Traceback (most recent call last): 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\suds_jurko-0.6-py3.5.egg\suds\transport\http.py", line 82, in send 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\suds_jurko-0.6-py3.5.egg\suds\transport\http.py", line 132, in u2open 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 471, in open 
    response = meth(req, response) 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 581, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 509, in error 
    return self._call_chain(*args) 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 443, in _call_chain 
    result = func(*args) 
    File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 589, in http_error_default 
    raise HTTPError(req.full_url, code, msg, hdrs, fp) 
urllib.error.HTTPError: HTTP Error 500: Internal Server Error 
+1

https://github.com/googleads/googleads-python-lib/issues/10 – fabrigm

+0

Спасибо за ваш комментарий. Итак, если я правильно понял, просто невозможно аутентифицировать использование OAuth2 в Python 3.x? – Dendrobates

+0

Кажется, да ... – fabrigm

ответ

0

Решенный вопрос некоторым дальнейших исследований. Фабригм уже помог мне в правильном направлении. Спасибо!

API Google Adwords имеет несколько версий для Python 2.x и 3.x. Хотя, когда вы получите последнюю версию Github, вы получите клиентскую библиотеку Python для API объявлений Google для Python 2.x.

Когда вы пройдете через другие releases of the library, вы найдете примеры как для Python 2.x, так и для 3.x. Тот, что написан на Python 3.x, работает абсолютно нормально, но (по крайней мере, для меня) было легко сделать ошибку и перейти к другому выпуску.

Надеюсь, это поможет другим людям, борющимся с одной и той же проблемой.