无法使用带有 httplib 的代理连接到 google 目录-api

Can't connect to google directory-api using proxy with httplib

我已经准备好我的脚本来管理 google 中的用户,但是无论如何我找不到使用 httplib2 的代理,因此我经常切换到移动设备以避免手动执行任务。

供参考,所有代码均来自快速入门:https://developers.google.com/admin-sdk/directory/v1/quickstart/python

简化为:

credentials = gi.get_credentials()
http = credentials.authorize(httplib2.Http())
service = gi.discovery.build('admin', 'directory_v1', http=http)
print('Starting user OU management')

我找到了这个,但它似乎不适用于 HTTP 代理

http = credentials.authorize(httplib2.Http(httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_HTTP_NO_TUNNEL, 'proxy.example.com', 8080, proxy_user = 'username', proxy_pass = 'password') ))

代理信息:

编辑:找到这个https://github.com/jcgregorio/httplib2/wiki/Examples-Python3

Proxy support is unavailable until the third-party socks module is ported to Python 3.

那么还有其他的 http 库可以使用吗??

谢谢

编辑 2:与 google 交谈,显然 3.5 根本不受支持,但这并不能解决我的 python 的 httplib2 问题3.*

实际上,我发现了这些仍未解决的相关问题:

您可能还想查看他们关于他们的讨论,希望您能找到一些有用的想法。

感谢大家的帮助 - 不幸的是,google(公司或其结果)都没有任何解决方案,随着年末的临近,我没有时间通过​​我的手机 运行 所有任务。

如果有人对 "fix" 感兴趣:我只是回到 python2.7 并用 2.x 等价物替换了一些 {**foo} 类型的语句。

干杯

我认为您应该尝试使用 httplib2shim 而不是 httplib2

您可以在我的博客上查看此教程:https://dinatam.com/fr/python-3-google-api-proxy/

简单来说,就是替换这种代码:

from httplib2 import Http 
http_auth = credentials.authorize(Http()) 

来自这个:

import httplib2shim 
http_auth = credentials.authorize(httplib2shim.Http())