seached and found that /me/accounts/ 已不再可用,过去我使用它,所以我使用that Gist,
在网页的应用程序上发布没有任何问题但我删除了该应用程序,并在将代码更改为:
时尝试添加另一个新应用程序class MainHandler(BaseHandler, tornado.auth.FacebookGraphMixin):
@tornado.web.authenticated
@tornado.web.asynchronous
def get(self):
self.facebook_request("/me/applications/developer/", self._on_accounts, access_token=self.current_user["access_token"])
def _on_accounts(self, account):
if account is None:
# Session may have expired
print "on accounts failed"
sys.exit()
print "here we go!"
print account # this will return me a json
for acc in account["data"]:
if acc["id"] == "157547381099830":
self.facebook_request("/157547381099830/feed", post_args={"message":"hi there!", "link": "http://www.example.com"}, access_token=self.current_user["access_token"], callback=self.async_callback(self._on_page_post))
我能做什么,只发布在我的墙上(通过self.facebook_request("/157547381099830/feed"...
更改self.facebook_request("/me/feed"...
)
我进入了页面,Facebook知道这是管理员,但如果我使用python代码,它将发布普通用户的流!
在管理设置中,写成:
管理器 Abdelouahab可以管理管理员角色,发送消息并创建帖子作为页面,创建广告和查看见解。
但是,似乎并非如此,因为当我选择时:
你正在发布,评论和喜欢Abdelouahab Abdenour Aliane - 改为Essog社区然后我可以发帖,只有当我切换到 Essog社区(因为我被阻止)外部用户张贴在墙上)。
更新:将manage_pages
添加到范围内,即使这样也无效
答案 0 :(得分:0)
抱歉,找到答案:
manage_pages
,所以我使用了页面令牌!要以页面而非当前用户身份执行以下操作,必须使用Page的访问令牌,而不是常用于读取Graph API对象的用户访问令牌。
(删除并开始新页面)
这将有效:
for acc in account["data"]:
if acc["id"] == "345632575539519":
print acc["access_token"]
self.facebook_request("/345632575539519/feed", post_args={"message":"hello", "link": "http://www.example.com"}, access_token=acc["access_token"], callback=self.async_callback(self._on_page_post))