0

我正在尝试连接到报告 api 以获取有关域用户电子邮件使用百分比的一些数据。我想每天将其作为一项 cron 工作来完成,因此我需要一些方法来自动验证为域的管理员,而无需任何管理员交互。

现在我正在使用管理员密码并像这样登录

url = 'https://www.google.com/hosted/services/v1.0/reports/ReportingData'

url_login='https://www.google.com/accounts/Clientlogin'

auth_request = urllib.urlencode({'accountType': 'HOSTED','Email': _ADMIN,'Passwd': _PASSW})

login = doPost(url_login, auth_request)


for line in login.split('\n'):    

    array = line.split('=',2)   

    if array[0]=='SID':   

        token = array[1]

_REQUEST_TEMPLATE = ('<?xml version="1.0" encoding="UTF-8"?>\n'    

        '<rest xmlns="google:accounts:rest:protocol"\n'    

        'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n'    

        '  <type>%(type)s</type>\n'

    '  <token>%(token)s</token>\n'

        '  <domain>%(domain)s</domain>\n'

        '  <date>%(date)s</date>\n'

        '  <reportType>daily</reportType>\n'

            '  <reportName>%(reportName)s</reportName>\n'

        '</rest>\n')

但我不想存储管理员的密码。我曾尝试使用 Oatuh 2.0,但似乎我总是需要管理员的交互。

有没有办法使用 consumer_key 和 consumer_secret 来做到这一点?或任何其他选择?

谢谢!

4

1 回答 1

0

您必须将 auth cerentials 存储在某处——无论它是 ssl 证书授权、cookie 授权还是用户/通行凭证——它们始终必须可供将要使用它们的脚本/程序使用。如果您不想将它们存储在脚本本身中,您可能希望将它们存储在配置文件中,并让脚本从那里读取它们,存储在变量中并根据需要使用。您甚至可以将它们存储在数据库中,但是您必须存储数据库凭据等等。

于 2013-02-04T09:38:22.773 回答