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

时间:2016-11-22 23:29:33

标签: python-3.5 google-admin-sdk google-directory-api httplib2

我的脚本已准备就绪,可以管理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') ))

代理信息:

  • 主持人:wpad
  • port:8080
  • HTTP和HTTPS流量的相同代理
  • 没有身份验证

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

  

在将第三方socks模块移植到Python 3之前,代理支持不可用。

那么我可以使用其他任何http库吗?

由于

编辑2 :对Google进行调查,显然根本不支持3.5,但这并不能解决我对python 3的httplib2问题。*

3 个答案:

答案 0 :(得分:1)

我认为你应该尝试使用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()) 

答案 1 :(得分:0)

实际上,我发现这些相关问题仍然没有得到解决:

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

答案 2 :(得分:0)

我感谢所有人的帮助 - 不幸的是谷歌(公司或他们的搜索结果)都没有任何解决方案,而且年终方法我没有时间通过​​手机运行所有任务。

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

干杯