使用Python脚本针对Auth0进行身份验证的400 HTTPError

时间:2019-09-25 16:12:33

标签: python http auth0

我正在尝试构建一个Python脚本,以访问我的auth0门户上所有用户的电子邮件和上次登录时间数据。我应该如何处理?这是我到目前为止的代码

第一部分工作正常,第二部分返回400 HTTPError。

im试图让它返回一个列出了所有用户信息的csv文件,并以此自动填充数据库。

还在这里找到了一些有用的链接,我尝试将它们合并到我的代码中:https://auth0.com/docs/users/guides/bulk-user-exports

import sys
sys.path.append(“D:\home\site\wwwroot\env\Lib\site-packages”)

import quickbase
import urllib
import urllib2
import smtplib
import httplib
import pypyodbc
import timestring
import datetime
import time
import math
import sys
import locale
import json

from urllib import urlencode
from urllib2 import urlopen, Request
from dateutil.relativedelta import relativedelta

#Activate Webhook with Campaign is added or modified.
#0.1 establish connection to SQL server
connection = pypyodbc.connect(‘Driver={SQL Server Native Client 11.0};’
‘Server=tcp:xxxxe.database.windows.net,1433;’
‘Database=LQDC;’
‘uid=Admin@lxx;pwd=xxxx’)
cursor = connection.cursor()

#0.2 establish connection to Auth0
def main():

#Configuration Values
AUDIENCE = “https://xxe.auth0.com/api/v2/”
DOMAIN = “lxxx.auth0.com”
CLIENT_ID = “xxxxxL”
CLIENT_SECRET = “xxxxxxr”
GRANT_TYPE = “client_credentials” # OAuth 2.0 flow to use

#Get an Access Token from Auth0
base_url = “https://{domain}”.format(domain=DOMAIN)
data = urllib.urlencode([(‘client_id’, CLIENT_ID),
(‘client_secret’, CLIENT_SECRET),
(‘audience’, AUDIENCE),
(‘grant_type’, GRANT_TYPE)])
req = urllib2.Request(base_url + “/oauth/token”, data)
response = urllib2.urlopen(req)
oauth = json.loads(response.read())
access_token = oauth[‘access_token’]

#Get all Applications using the token
req = urllib2.Request(base_url + “/api/v2/clients”)
req.add_header(‘Authorization’, 'Bearer ’ + access_token)
req.add_header(‘Content-Type’, ‘application/json’)

  post_fields = {'connection_id' : 'xxxxxxxx', 'format' : 'csv', 'limit' : '4', "fields" : [{ "name": "email"},{"name": "last_ip"}, { "name": "created_at"}, { "name": "last_login"}] }
  req2 = urllib2.Request((base_url + "/api/v2/jobs/users-exports"),urlencode(post_fields).encode())
  req2.add_header('Authorization', 'Bearer ' + access_token)
  req2.add_header('Content-Type', 'application/json')

  try:
    response = urllib2.urlopen(req)
    res = json.loads(response.read())
    print res
    response2 = urllib2.urlopen(req2)
    result = json.loads(response.read())
    print result
except urllib2.HTTPError, e:
print 'HTTPError = ’ + str(e.code) + ’ ’ + str(e.reason)
except urllib2.URLError, e:
print 'URLError = ’ + str(e.reason)
except urllib2.HTTPException, e:
print ‘HTTPException’
except Exception:
print ‘Generic Exception’

#Standard boilerplate to call the main() function.
if name == ‘main’:
main()

将此作为第二个请求的输出

HTTPError = 400 Bad Request

0 个答案:

没有答案
相关问题