0

検索して /me/accounts/がもう利用できないことがわかりました。以前はそれを使用していたので、その 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 の新しいルールのようなものですか? 自分の名前に切り替えると、管理者であってもウォールに公開できませんか?

管理設定では、次のように書かれています。

Manager Abdelouahab は、管理者の役割を管理し、メッセージを送信し、ページとして投稿を作成し、広告を作成し、洞察を表示できます。

しかし、そうではないようです。なぜなら、私が選択したとき:

あなたは Abdelouahab Abdenour Aliane として投稿、コメント、いいね! しています — Essog コミュニティに変更すると、Essog コミュニティ切り替えた場合にのみ投稿できます (外部ユーザーがウォールに投稿するのをブロックしたため)。

更新:manage_pagesスコープに追加されましたが、これでも機能しませんでした

4

1 に答える 1

0

申し訳ありませんが、答えを見つけました:

  1. 初めて使っmanage_pagesたので、ページトークンを使いました!
  2. ユーザー トークンではなく、ページ アクセス トークンを取得する必要があります。

次の操作を現在のユーザーではなくページとして実行するには、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))
于 2013-06-18T01:45:59.913 に答える