-
Notifications
You must be signed in to change notification settings - Fork 0
/
tweet.py
executable file
·75 lines (63 loc) · 2.42 KB
/
tweet.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
import tweepy
import cgi
import oauth2
import twitter, urllib
"""
twitter_settings = {
#ACCESS
'CONSUMER_KEY': "your key",
'CONSUMER_SECRET': "secret",
#TWITTER URLS
'REQUEST_TOKEN_URL': 'https://api.twitter.com/oauth/request_token',
'ACCESS_TOKEN_URL': 'https://api.twitter.com/oauth/access_token',
'AUTHORIZATION_URL': 'https://api.twitter.com/oauth/authorize',
'SIGNIN_URL': 'https://api.twitter.com/oauth/authenticate',
}
"""
class Tweet(object):
consumer_key = None
consumer_secret = None
handler = None
def __init__(self, settings):
self.settings = settings
def login(self, access_token, access_secret):
self.handler = twitter.Api(
self.settings['CONSUMER_KEY'],
self.settings['CONSUMER_SECRET'],
access_token,
access_secret
)
#TIME_LINE
def get_tl(self):
try:
return self.handler.GetUserTimeline("Zl0n1k")
except Exception, err:
return False
def post(self, msg):
self.handler.PostUpdate(msg)
def register(self, oauth_token=None, oauth_secret=None, pin=None, callbackurl = None):
#CONSUMER
oauth_consumer = oauth2.Consumer(key=self.settings['CONSUMER_KEY'], secret=self.settings['CONSUMER_SECRET'])
if oauth_token:
#REGISTER FINAL STEP
token = oauth2.Token(oauth_token, oauth_secret)
token.set_verifier(pin)
oauth_client = oauth2.Client(oauth_consumer, token)
resp, content = oauth_client.request(self.settings['ACCESS_TOKEN_URL'], method='POST', body='oauth_verifier=%s' % pin)
access_token = dict(cgi.parse_qsl(content))
#CHECK RESPONSE
if resp['status'] != '200':
return False
else:
return access_token
else:
#REGISTER FIRST STEP
oauth_client = oauth2.Client(oauth_consumer)
resp, content = oauth_client.request(self.settings['REQUEST_TOKEN_URL'], 'POST', body='oauth_callback=%s' % callbackurl)
#CHECK RESPONSE
if resp['status'] != '200':
return False
else:
request_token = dict(cgi.parse_qsl(content))
return {"url": "%s?oauth_token=%s" % (self.settings['AUTHORIZATION_URL'], request_token['oauth_token']),
"data": request_token}