如何通过facebook sdk python api获取用户帖子?

如何通过facebook sdk python api获取用户帖子?,python,facebook,facebook-graph-api,facebook-javascript-sdk,Python,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我使用facebook jssdk授权我的应用程序读取用户配置文件和用户帖子。 然后我尝试接收用户帖子。 导入json 自始至终 从urllib导入urlopen 从facebook导入GraphAPI 从日期时间导入日期时间 ga = GraphAPI() access_token = ga.get_app_access_token(settings.FACEBOOK_APP_ID, settings.FACEBOOK_APP_SECRET) url = "https://grap

我使用facebook jssdk授权我的应用程序读取用户配置文件和用户帖子。

然后我尝试接收用户帖子。 导入json 自始至终 从urllib导入urlopen 从facebook导入GraphAPI 从日期时间导入日期时间

ga = GraphAPI()
access_token = ga.get_app_access_token(settings.FACEBOOK_APP_ID,     settings.FACEBOOK_APP_SECRET)

url = "https://graph.facebook.com/fql?q=SELECT+created_time+FROM+stream+ WHERE+source_id=%s+AND+created_time<%d&access_token=%s" % (
social_id,   # user id in facebook, taken from facebook-jssdk
int(mktime((datetime.now().timetuple()))),
access_token
)
data = json.loads(urlopen(url).read())
logger.debug(data)
# {u'data': []}


ga = GraphAPI(access_token)
ga.get_object('/508708815952422/posts/', token=token)
# {u'data': []}
ga=GraphAPI()
access\u token=ga.get\u app\u access\u token(settings.FACEBOOK\u app\u ID,settings.FACEBOOK\u app\u SECRET)

url=”https://graph.facebook.com/fql?q=SELECT+created_time+FROM+stream+WHERE+source_id=%s+和+created_time您想知道如何使用python api获取用户帖子,对吗

我在django项目中使用了
FacebookSDK
,并使其正常工作,如下所示(Implementation-services/facebook.py):

注意:在我的情况下,我需要使用客户端凭据流获取访问令牌,使用密钥和机密设置,如果您正在将用户登录到您的应用程序中,并且您已经拥有令牌,则忽略以下行:

token_response = requests.get(url=cls.token_url, params=cls.params)
access_token = token_response.text.split('=')[1]
用法(views.py):


希望这有帮助,如果有问题,请确实询问=)

您是否使用旧示例?新创建的应用程序将无法访问FQL,并且上面列出的许多权限在当前版本的APII中不存在。我正在使用旧示例和新示例。用户发布权限现在存在于graph api中:我仅显示了FQL示例-甚至我t不起作用…我总是得到空数据…这就是问题所在。在[13]:FacebookFeed.get_posts(user='10000153778906')Out[13]:{u'data':[]哦,好的,我正在使用用户名来检索数据,所以在这种情况下,它不是id
10000153778906
,而是与该id关联的用户名。我现在无法测试它,但我会在当天晚些时候进行测试。我想我已经找到了原因——我的应用程序未经facebook授权使用用户权限。我已经启动了审批流程,所以不要进行测试。我肯定需要该权限。感谢您的帮助。我不记得需要启动任何审批流程(除了在facebook dev中注册应用程序)才能从源中获取任何数据。您能提供“审批流程”文档的链接吗?谢谢。)
from django.conf import settings
import facebook
import requests

class FacebookFeed:
    token_url = 'https://graph.facebook.com/oauth/access_token'
    params = dict(client_id=settings.SOCIAL_AUTH_FACEBOOK_KEY, client_secret=settings.SOCIAL_AUTH_FACEBOOK_SECRET,
                  grant_type='client_credentials')

    @classmethod
    def get_posts(cls, user, count=6):
        try:
            token_response = requests.get(url=cls.token_url, params=cls.params)
            access_token = token_response.text.split('=')[1]
            graph = facebook.GraphAPI(access_token)
            profile = graph.get_object(user)
            query_string = 'posts?limit={0}'.format(count)
            posts = graph.get_connections(profile['id'], query_string)
            return posts
        except facebook.GraphAPIError:
            return None
token_response = requests.get(url=cls.token_url, params=cls.params)
access_token = token_response.text.split('=')[1]
from django.http import HttpResponse
from app.services.social_networks.facebook import FacebookFeed

def get_facebook_posts(request, user):
    posts = FacebookFeed.get_posts(user=user)
    if not posts:
        return HttpResponse(status=500, content="Can't fetch posts for desired user", content_type="application/json")
    return HttpResponse(json.dumps(posts), content_type="application/json")