It will probably be obvious soon enough, but I am new to coding and StackOverflow -- apologies if I come off as a bit oblivious.
I have been trying to query Facebook with FQL out of a function on my views.py page in a Django app. I did have a working solution utilizing the Facebook Graph API, but it was ultimately a poor solution since I am aiming to retrieve the user’s newsfeed.
While there are a number of answers relating to Facebook FQL in PHP, there are no explicit examples in Python. Instead, most of the questions are just related to the syntax of the query, and not how to actually integrate it into an actual function.
The query I am looking to make is:
SELECT post_id, app_id, source_id, updated_time, filter_key, attribution, message, action_links, likes, permalink FROM stream WHERE filter_key IN (SELECT filter_key FROM stream_filter WHERE uid = me() AND type = 'newsfeed’)
As I understand, the best way to make this request is using Requests but frankly, I am just looking for a working solution.
I considered posting some of my non-working code up here, but it has pretty much spiraled into a mess.
Any help or direction is greatly appreciated!
UPDATE
Just wanted to document where I am at, with Sohan Jain's help, I've gotten to this point:
def get_fb_post(request):
user_id = UserSocialAuth.objects.get(user=request.user)
api = facebook.GraphAPI(user_id.tokens)
# response gets deserialized into a python object
response = api.fql('''SELECT post_id, app_id, source_id, updated_time, filter_key, attribution, message,
action_links, likes, permalink FROM stream WHERE filter_key IN (SELECT filter_key FROM stream_filter
WHERE uid = me() AND type = 'newsfeed')''')
print(response)
data = {'profile': '...something...' } # what should be going in here?
return HttpResponse(json.dumps(data), mimetype='application/json')
In PyCharm I am getting the following (link to image if you prefer: http://i.stack.imgur.com/8sZDF.png):
/Library/Python/2.7/site-packages/facebook.py:52: DeprecationWarning: django.utils.simplejson is deprecated; use json instead.
from django.utils import simplejson as json
In my browser I am getting this(image link again: http://i.stack.imgur.com/njXo8.png):
GraphAPIError at /fbpost/
I am not sure how to fix the DeprecationWarning. I tried at the top of the file putting "from django.utils import simplejson as json" but that didn't work (I thought it was probably a bit too simplistic, but worth a shot).
If I replace the query with this:
response = api.fql("SELECT name, type, value, filter_key FROM stream_filter WHERE uid = me()")
I do get a very long response that looks like this:
[{u'filter_key': u'nf', u'type': u'newsfeed', u'name': u'News Feed', u'value': None}, {u'filter_key'... ...}]
It goes on and on and does appear to be returning valid information.