我尝试使用以下代码中提到的python脚本获取facebook消息:
#!/usr/bin/python
import sys
from facepy import GraphAPI
from facepy import exceptions
#Acces token with expire time = 60days
LONG_LIVE_ACCESS_TOKEN = 'EAAZA7IlqBfvkBAKOjc7esSqY1VRJdsMkZC6QXM2mVlAwZAWjOiZA2ywalERBjLk4tzvZBu8JvoWvLRGcTtyZAGl482ueUI1o6MWjkK44y3TeoVKjYBayO5DSIP3Q1poVEa8hO8xZAXdScohEAgiFTtpvVQGk2nZB694ZD'
#Facebook app id and secret from http://developer.facebook.com/apps
APP_ID = '1824237337804537'
SECRET_KEY = 'ee788eb9bea6d36f5f40e52530248f55'
def user_id_to_username(userid):
""" Function to convert facebook USERID to username. """
if userid is not None:
userid = '/{0}'.format(userid)
try:
return graph.get(userid)['name']
except (exceptions.FacebookError, exceptions.OAuthError) as e:
print e.message
sys.exit(0)
def get_message_author(message_list):
return user_id_to_username(message_list['snippet_author'])
def get_message_author_id(message_list):
return message_list['snippet_author']
def get_message_body(message_list):
return message_list['snippet']
def get_recipients_list(message_list):
author = get_message_author_id(message_list)
temp = message_list['recipients']
temp.remove(author)
return ", ".join(map(user_id_to_username, temp))
def pretty_print(message_list):
for message in message_list:
print "from: ", get_message_author(message)
print "to: ", get_recipients_list(message)
print "Message: ", get_message_body(message)
print "-" * 140
graph = GraphAPI(LONG_LIVE_ACCESS_TOKEN)
#Output of the facebook query language(FQL)
#This FQL queries for message body, author, recipients for unread messages.
try:
json_output = graph.fql('SELECT snippet, snippet_author, recipients FROM thread WHERE folder_id = 0 and unread != 0 Limit 4')
except exceptions.OAuthError as e:
print e.message
sys.exit(0)
message_list = json_output['data']
if message_list:
pretty_print(message_list)
else:
print "No New Messages"
sys.exit(0)
执行此脚本时会显示错误消息:
(#12)对于版本v2.1及更高版本
,不推荐使用fql
答案 0 :(得分:0)
FQL已被弃用,并且在2016年8月8日之前完全不受Facebook支持。Facebook Query Language (FQL) Reference:
自2016年8月8日起,
FQL
将不再可用且不可用 查询。要迁移您的应用,请使用API升级工具查看 您可以改为使用图表API调用。