PyFacebook: Facebook() 实例没有流方法

1 投票
1 回答
1922 浏览
提问于 2025-04-15 19:43

我需要在一个django应用中更新我的Facebook粉丝页面,所以我写了这段代码:

import facebook
from django.conf import settings

def login_facebook():
    fb = facebook.Facebook(settings.FACEBOOK_API_KEY, settings.FACEBOOK_SECRET_KEY)
    fb.session_key = settings.FACEBOOK_SESSION
    fb.secret = settings.FACEBOOK_SECRET_KEY
    fb.uid = settings.FACEBOOK_UID
    return fb

def update_status(fb, message):
    return fb.stream.publish(message=status_message)

然后我用ipython来运行它:

import src.tests.scripts.facebook_publish_fanpage as f
fb = f.login_facebook()
f.update_status(fb, 'This is a test')

但是我遇到了这个错误:

AttributeError: 'Facebook' object has no attribute 'stream'

我已经按照这两个步骤给了应用权限:

在Facebook页面上发布帖子(1)和授权Facebook粉丝页面进行状态更新(2)

但是无论我尝试什么(我已经做了几个小时了……)我都无法在页面上发布内容……

我现在很迷茫,有谁能帮帮我吗?

(1) tech.karolzielinski.com/publish-post-of-facebook-page-wall-as-a-page-not-a-user-python-facebook-rest-api

(2) stackoverflow.com/questions/2097665/authorizing-a-facebook-fan-page-for-status-updates

附注:抱歉,我还没有权限添加链接,我在SO上主要是个读者

1 个回答

1

经过几个小时的搜索,我终于找到了解决办法……不是使用流的方法,而是这个:

fb(method='stream_publish', args={'session_key': settings.FACEBOOK_SESSION, 'uid':PAGE_ID, 'target_id': 'NULL', 'message':'MESSAGE_HERE'})

我在这个博客文章中找到了这个解决办法:http://danielquinn.org/blog/1578.html

这个方法有效!!

撰写回答