使用 suds 在 Python 中使用 OAuth2 进行 Google Adwords API 身份验证
Posted
技术标签:
【中文标题】使用 suds 在 Python 中使用 OAuth2 进行 Google Adwords API 身份验证【英文标题】:Google Adwords API authentication with OAuth2 in Python with suds 【发布时间】:2012-03-12 19:46:22 【问题描述】:我正在尝试使用具有 OAuth2 授权的 Adwords API。
我可以授权一个帐户来获取一个授权码。我可以将此代码交换为 OAuth2 access_token/refresh_token。但接下来...?
Google Adwords API SOAP 请求标头需要 authToken、developerToken 和 userAgent(clientCustomerId 是可选的)。谁能指出我从 access_token 到 authToken 的文档(我想这是我缺少的元素)。
我正在使用 Python,并且已成功使用 Python Adwords 库,以及使用 suds 作为 SOAP 客户端直接调用 API,使用用户名/密码创建 authToken,但我需要移动到我的应用程序的 OAuth2 实现。
我在互联网、Google Adwords Group 和 *** 上进行了搜索,但没有找到任何帮助。我查看了 OAuth2 游乐场,但还没有设法让它来执行任何与 SOAP 相关的调用,尽管这是我的下一个调用点。
任何帮助或建议将不胜感激。
干杯 H
【问题讨论】:
【参考方案1】:其实就在这里:
http://code.google.com/p/google-api-ads-python/wiki/AdWordsOAuth2
它应该为您指明正确的方向。谷歌似乎把以前的版本放在前面(http://code.google.com/p/google-api-ads-python/wiki/AdWordsOAuth)。该页面绝对应该被标记为已弃用并指向新页面。
希望这会有所帮助。
【讨论】:
【参考方案2】:AdWords API 实际上还不支持 oAuth 2.o,所以这可能是您的问题;目前只支持1.0a。 python示例代码可以在这里找到:http://code.google.com/p/google-api-adwords-python-lib/source/browse/trunk/examples/adspygoogle/adwords/other/use_oauth.py
【讨论】:
您链接到的示例似乎正在使用 oAuth 2.0。尽管如此,我确实面临着 Howard Sandford 所描述的同样问题。 自我最初发布此示例以来,该示例可能已被修改,因为 AdWords API 现在已更新为支持 oAuth 2.0。事实上 oAuth 2.0 现在是推荐的身份验证机制,您还应该注意 oAuth 1.0a 和 ClientLogin API 已被弃用,因此您应该尽可能使用 oAuth 2.0。 该示例没有被修改,并且它令人困惑地加载了 python-oauth2,这似乎是 OAuth 1.0 协议的 Python 实现的第二次迭代......因为最新的 code.google.com/p/google-api-adwords-python-lib/source/browse/… 文件明确说明了 oauth 版本1.0a,即使 .py 文件里面有 20 个。所以基本上,Python 不在我能看到的任何地方都支持 OAuth 2.0。以上是关于使用 suds 在 Python 中使用 OAuth2 进行 Google Adwords API 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python Suds 客户端添加 XML 元素类型
Soap 请求在 Soapui 中运行良好,但在 python 中运行良好 - ZEEP - SUDS
Python如何使用suds MessagePlugin和lxml仅解码xml中的特定部分