应用程序页面无法知道是管理员吗?

时间:2013-06-18 00:34:49

标签: python facebook facebook-graph-api tornado

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代码,它将发布普通用户的流!

编辑:问题似乎是新的Facebook规则?当切换到我的名字时,即使我是管理员,我也无法在墙上发布?

在管理设置中,写成:

  

管理器   Abdelouahab可以管理管理员角色,发送消息并创建帖子作为页面,创建广告和查看见解。

但是,似乎并非如此,因为当我选择时:

你正在发布,评论和喜欢Abdelouahab Abdenour Aliane - 改为Essog社区然后我可以发帖,只有当我切换到 Essog社区(因为我被阻止)外部用户张贴在墙上)。

更新:将manage_pages添加到范围内,即使这样也无效

1 个答案:

答案 0 :(得分:0)

抱歉,找到答案:

  1. Dident第一次使用manage_pages,所以我使用了页面令牌!
  2. i must get the page access token and not the user token!
  3.   

    要以页面而非当前用户身份执行以下操作,必须使用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))