-
Notifications
You must be signed in to change notification settings - Fork 58
/
oauth_tokens.py
64 lines (51 loc) · 1.72 KB
/
oauth_tokens.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/python
#
# Copyright (C) 2011 Google Inc.
""" Fusion Tables OAuth Helper
Retrieve OAuth 2.0 access and refresh tokens for Fusion Tables.
"""
import urllib2, urllib, json
def retrieve_tokens(client_id, client_secret, redirect_uri):
print
print 'Visit the URL below in a browser to authorize'
print
print '%s?client_id=%s&redirect_uri=%s&scope=%s&response_type=code' % \
('https://accounts.google.com/o/oauth2/auth',
client_id,
redirect_uri,
'https://www.googleapis.com/auth/fusiontables')
print
auth_code = raw_input('Enter authorization code ("code" parameter of URL): ')
data = urllib.urlencode({
'code': auth_code,
'client_id': client_id,
'client_secret': client_secret,
'redirect_uri': redirect_uri,
'grant_type': 'authorization_code'
})
request = urllib2.Request(
url='https://accounts.google.com/o/oauth2/token',
data=data)
request_open = urllib2.urlopen(request)
response = request_open.read()
tokens = json.loads(response)
access_token = tokens['access_token']
refresh_token = tokens['refresh_token']
return access_token, refresh_token
if __name__ == "__main__":
import sys
if len(sys.argv) == 4:
client_id = sys.argv[1]
client_secret = sys.argv[2]
redirect_uri = sys.argv[3]
else:
client_id = raw_input("Enter Client ID: ")
client_secret = raw_input("Enter Client Secret: ")
redirect_uri = raw_input("Enter Redirect URI: ")
access_token, refresh_token = retrieve_tokens(client_id,
client_secret,
redirect_uri)
print
print "Access Token: %s" % (access_token)
print "Refresh Token: %s" % (refresh_token)
print