-
Notifications
You must be signed in to change notification settings - Fork 2
/
facebook.py
89 lines (70 loc) · 2.27 KB
/
facebook.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
from setting import FB_APP_ID, FB_APP_SEC
from urllib import parse
import http.client
import json
FB_BASE='https://www.facebook.com/dialog/oauth'
FB_GRAPH_API='graph.facebook.com'
## Reference: https://developers.facebook.com/docs/facebook-login/permissions
FB_SCOPE='public_profile user_posts'
def genGetCodeURL(RedirectURL):
return FB_BASE+'?client_id='+FB_APP_ID+\
'&scope='+parse.quote_plus(FB_SCOPE)+\
'&redirect_uri='+parse.quote_plus(RedirectURL)
def getToken(RedirectURL,code):
conn = http.client.HTTPSConnection(FB_GRAPH_API)
request='/oauth/access_token'+\
'?client_id='+FB_APP_ID+\
'&client_secret='+FB_APP_SEC+\
'&redirect_uri='+parse.quote_plus(RedirectURL)+\
'&code='+code
conn.request("GET", request)
resault = conn.getresponse()
data1 = resault.read().decode("utf-8")
if resault.status == 200:
token=data1.split("&")[0].split('=')[1]
expir=data1.split("&")[1].split('=')[1]
return [True,token,expir]
else:
return [False,data1]
def getInfo(Token):
conn = http.client.HTTPSConnection(FB_GRAPH_API)
request='/me?access_token='+Token
conn.request("GET", request)
resault = conn.getresponse()
if resault.status == 200:
return resault.read().decode("utf-8")
else:
return False
def getUID(Token):
try:
JSONdata = getInfo(Token)
data=json.loads(JSONdata)
return data['id']
except:
return False
def getName(Token):
try:
JSONdata = getInfo(Token)
data=json.loads(JSONdata)
return data['name']
except:
return False
def getMeHome(Token):
conn = http.client.HTTPSConnection(FB_GRAPH_API)
request='/me/home?access_token='+Token
conn.request("GET", request)
resault = conn.getresponse()
if resault.status == 200:
return resault.read().decode("utf-8")
else:
return False
def getMeStatus(Token):
conn = http.client.HTTPSConnection(FB_GRAPH_API)
request='/v2.3/me/statuses?access_token='+Token
conn.request("GET", request)
resault = conn.getresponse()
if resault.status == 200:
return resault.read().decode("utf-8")
else:
#return resault.read().decode("utf-8")
return False