私は制御しているFacebookのアプリケーションの壁に自動的に投稿を書きたいと思うアプリエンジンのウェブアプリを持っています(つまり、Facebookのアプリケーションの壁を更新したいウェブサイトで特定のイベントが発生するたびに)。pythonを使って、アプリケーションエンジンの壁に投稿する方法を教えてください。
このコードは、サーバー上の遅延タスクから呼び出されます。
私はこれに対処する何かを見つけることができませんでした。あなたの助けに感謝します。
https://graph.facebook.com/oauth/access_token?client_id=FACEBOOK_APP_ID&client_secret=FACEBOOK_APP_SECRET&grant_type=client_credentials&scope=manage_pages,offline_access
返されたアクセストークンを使用して、これは私がサーバー上で実行しているものです::
form_fields = {
"access_token": FACEBOOK_ACCESS_TOKEN,
"message": tgText
};
form_data = urllib.urlencode(form_fields)
result = urlfetch.fetch(url="https://graph.facebook.com/MYAPP_FACEBOOK_ID/feed",
payload=form_data,
method=urlfetch.POST,
validate_certificate=False,
headers={'Content-Type': 'application/x-www-form-urlencoded'})
でも呼び出し、私がやった
まず最初は、次のコードで私のアクセストークンを取得しましたこの結果は次のようになります。
{"error":{"type":"OAuthException","message":"(#200) The user hasn't authorized the application to perform this action"}}
私はあなたのフィードバックに基づいて質問を更新しましたが、私はまだそれを動作させることはできません - 何らかの理由で私のコードが承認されたものとして認識しません。 –
アクセストークンを取得するために間違ったURLを使用しています。私の回答で指摘されているように、認証フローのセクション「ページログイン」をチェックしてください。そのセクションのアクセストークンURLには、 "scope = manage_pages"が含まれています。これは基本的に、あなたが管理者であるすべてのFacebookページにあなたのアプリケーションへのアクセスを許可します。その後、ページに直接投稿します(フィードURLのアプリIDではなくページIDを使用します)。もちろん、これはまずあなたのアプリのFacebookページを作成する必要があります。 – fivanski
実際、最後の部分は間違っています。すべてのアプリが既にページを持っていることが分かりました。作成する必要はなく、同じIDを使用できます。したがって、単にアクセストークンURLを置き換えてみてください。それがうまくいけば私たちに知らせてください。私はそれに応じて答えを更新します。 – fivanski