python google auth totp_在独立的Python脚本中向Google进行身份验证的...

汝和裕
2023-12-01

我有一些代码可用于将Gmail联系人的电子邮件地址提取到文本文件中.这是一个简单的Python脚本,可在cron作业中运行,基于Python gdata library(当前为v2.0.18).

{'status': 401, 'body': '<?xml version="1.0" encoding="UTF-8"?>

GData

required

Authorization

Login Required

', 'reason': 'Unauthorized'}

我知道这即将到来,并在其他地方(例如AppEngine应用程序)进行处理,但是忘记了我必须转换此脚本.现在我在这里,我发现我不知道该如何进行这项工作.

我找到的所有参考,例如Google Apps Developer博客上的here或StackOverflow上的here和here,都建议解决方案是使用OAuth2Token.但是,这需要Google API控制台提供的客户端ID和客户端密码(与应用程序绑定).我没有申请.我只想从我的脚本进行身份验证.

有人可以建议在独立脚本中执行此操作的正确方法吗?还是我不走运,没有其他机制可以完成此任务?

这是现有联系人代码的勇气:

from gdata.contacts.service import ContactsService, ContactsQuery

user = "myuser@gmail.com"

password = "mypassword"

addresses = set()

client = ContactsService(additional_headers={"GData-Version":"2"})

client.ssl = True

client.ClientLogin(user, password)

groups = client.GetGroupsFeed()

for group in groups.entry:

if group.content.text == "System Group: My Contacts":

query = ContactsQuery()

query.max_results = 9999 # large enough that we'll get "everything"

query.group = group.id.text

contacts = client.GetContactsFeed(query.ToUri())

for contact in contacts.entry:

for email in contact.email:

addresses.add(email.address.lower())

break

return addresses

理想情况下,我正在寻找将client.ClientLogin()替换为使用gdata保留其余代码的其他机制.或者,如果使用gdata不能真正做到这一点,我愿意转换为其他提供类似功能的库.

 类似资料: