summaryrefslogtreecommitdiff
path: root/feeder/facebook.py
blob: 96a4ae684499c8d3bcc4abb335ea18ece966dfaf (plain)
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
#!/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 {}