I’m trying to build a python script and extract information such as “user email”, and “last log in” time from my Auth0 account, and place them in my sql server. Im wondering how i could extract such information with the help of API
Hi @mirandamo,
Welcome to the Auth0 Community Forum!
If you are attempting to export a large group of users (or all users) then the export extension is a great tool.
https://auth0.com/docs/users/guides/bulk-user-exports
Otherwise you can use the user endpoints of the management api to gather specific information about individual users. You can even try simple requests and queries directly in your browser using our explorer.
Hope this helps!
Thanks,
Dan
Hi there, i did exactly how it is in the bulk user exports. and this is what i received:
ErrorCannot POST /lqdfinance.auth0.com/api/v2/jobs/users-exports
It sounds like your post request is not formatted correctly. Can you post the code you are using to make the request. Please omit any sensitive data (tokens, IDs, names, secrets, etc.).
import sys
sys.path.append(“D:\home\site\wwwroot\env\Lib\site-packages”)
import quickbase
import urllib2
import pypyodbc
import timestring
import datetime
import time
import math
import sys
import locale
import smtplib
import pypyodbc
import httplib
import json
import urllib
import urllib2
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’)
try:
response = urllib2.urlopen(req)
res = json.loads(response.read())
print res
conn = httplib.HTTPSConnection(DOMAIN)
payload = "{\"connection_id\":\"not sure which API/token/code to put here\",\"format\": \"csv\", \"limit\": 4, \"fields\": [{ \"name\": \"email\"},{\"name\": \"last_ip\"}, { \"name\": \"created_at\"}, { \"name\": \"last_login\"}]}"
headers = {
'authorization': "Bearer "+access_token,
'content-type': "application/json"
}
conn.request("POST", "/xxxx.auth0.com/api/v2/jobs/users-exports", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
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()
the first part works fine, second part returns the error stated above
You may be better off trying the user export extension, unless you need to do it programatically.
User Import / Export Extension.
You could also try our python library.
The auth0.jobs.export_users() function would remove some of the headaches associated with making the vanilla POST request.
Let me know.
Dan
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.