diff options
Diffstat (limited to 'feeder/facebook.py')
| -rwxr-xr-x | feeder/facebook.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/feeder/facebook.py b/feeder/facebook.py new file mode 100755 index 0000000..96a4ae6 --- /dev/null +++ b/feeder/facebook.py @@ -0,0 +1,65 @@ +#!/usr/bin/python + +import browser +import time +import sys +import os + +class Facebook: + def __init__ (self, name): + self.FB_BASE_HREF = "https://graph.facebook.com/" + # self.APP_URL = "http://scannerjammer.com/" + self.APP_URL = "https://scannerjammer.com/cgi-bin/fb_token.cgi" + self.APP_ID = "236917449658413" + self.APP_SECRET = "3c96521000dee1de2e68047b61a74531" + self.browser = browser.Browser () + self.name = name + self.token = None + self.codefile = "fb/tokens/" + self.name + ".code" + self.tokenfile = "fb/tokens/" + self.name + ".token" + self.get_token () + def get_code (self): + f = file (self.codefile, "r") + code = f.read().strip() + f.close() + return code + def get_token (self): + if os.path.exists(self.tokenfile): + f = file (self.tokenfile, "r") + self.token = f.read().strip() + f.close() + return + code = self.get_code () + params = { + "client_id": self.APP_ID, + "redirect_uri": self.APP_URL, + "client_secret": self.APP_SECRET, + "code": code, + } + qs = self.browser.qs(params) + url = self.FB_BASE_HREF + "oauth/access_token?" + qs + + try: + self.token = self.browser.get(url).read().strip() + print "got token length", len(self.token) + f = file (self.tokenfile, "w") + f.write(self.token) + f.close() + except: + print "ERROR FETCHING TOKEN" + sys.exit() + def get_post (self, groupid): + url = self.FB_BASE_HREF + str(groupid) + "?" + self.token + time.sleep(1) + return self.browser.get_json(url) + def get_feed (self, groupid): + url = self.FB_BASE_HREF + str(groupid) + "/feed?" + self.token + return self.get_feed_page (url) + def get_feed_page (self, url): + try: + data = self.browser.get_json(url) + time.sleep(1) + return data + except: + return {} + |
