6

Facebookページから別のWebサイトのウォール投稿を自動的に表示しようとしています。GraphAPIエクスプローラーを使用して手動で取得できます。生成されたトークンをコードで使用すると、すべて問題ありません。問題は、トークンがすぐに期限切れになることです。1日に数回新しいコードを取得するのは現実的ではありません。プログラムでアクセストークンをリクエストする方法があることは知っていますが、私の場合はPHP経由ですが、すべての例でアプリのシークレットが必要です。これはページでありアプリではないため、秘密はありません。

私はこれを試しました:

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=MY_CLIENT_ID&redirect_uri=http%3A%2F%2FMY_SITE_URL&scope=user_status

私が返すのはこれです:

{"error":{"message": "アプリケーションの検証中にエラーが発生しました。システムエラーのため、アプリケーション情報を取得できません。"、 "type": "OAuthException"、 "code":101}}

Fiddlerを使用してGraphAPIエクスプローラーからの呼び出しをインターセプトして、コードファイルに必要なものを確認しようとしましたが、うまくいきませんでした。

4

2 に答える 2

14
  1. app-idを使用してこのリンクを作成し、ページの管理を承認します https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=MY_SITE_URL&scope=manage_pages&response_type=token

  2. permの交換トークン(長いトークン)
    https://graph.facebook.com/oauth/access_token?client_id=MY_CLIENT_ID&client_secret=MY_CLIENT_SECRET&grant_type=fb_exchange_token&fb_exchange_token= ( link1から)

  3. このページにアクセスし、投稿するページを見つけて、新しい access_token https://graph.facebook.com/me/accounts?access_token=(link2から)をコピーします。

  4. この最後のトークン(フォームlink3)を使用して、アプリとしてページに投稿します

  5. 60日で有効期限が切れますのでご注意ください。(FBは無制限のオフラインアクセストークンを提供しなくなりました)

編集(2013年10月24日): 5番目のポイントは真ではなくなり、長期間有効なユーザートークンから生成されたページアクセストークンは期限切れになりません。

編集(2016年2月):トークンは「通常」60日で期限切れになりますが、いつでも無効にすることができます。

于 2012-06-28T04:59:52.167 に答える
1

プライベート(パブリック)ではないグラフオブジェクトの場合、app_idをaccess_tokenとして使用できます。

app_idは変更されないため、更新する必要はありません。問題は、壁のコンテンツはあなたのものですか?

app_idもしそうなら、あなたは毎回アクセストークンを要求する必要なしにこれを達成するためにあなたを簡単に使うことができます。

ただし、app_idを取得するには、Facebook開発者アカウントを使用してFacebook上にアプリケーションを作成する必要があります。私が理解している限り、GraphAPIに匿名でリクエストを行う方法はありません。

于 2012-06-28T19:04:45.440 に答える