問題タブ [facebook-access-token]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
970 参照

facebook-graph-api - Facebook クライアント側認証と offline_access の廃止

あなたが私に怒鳴り始める前に、私は多くのユーザーがすでにこのようなことを求めていることを知っていますが、私はそれらすべてを読み、私の特定のケースに関連する返信を見つけることができませんでした.私 (および他の開発者) は探しています。これについての私の経験を皆さんと共有したいので、私のシナリオと、これを処理する方法を調べるために従った手順を説明しようと思います。私と同じ状況にある一部の開発者の心をクリアにするのにも役立ちます.

Facebook API を利用するネイティブ Android アプリケーションを作成しました。デバイスにインストールされている公式アプリに依存したくないので、私は Facebook SDK を使用しません (実際のところ、私のアプリはそのアプリの一部に代わるものであるためとにかく最初にインストールする必要があります)、私は HTTP を介して直接 Graph API 呼び出しを発行し、応答を自分で処理します。それがあなたが私に与えることを考えている答えであるなら、私はその道をたどらないので、しないでください.

そのため、クライアント側の認証を利用してアプリを承認し、URL を WebView に表示して、最後に access_token を取得しました。他のアクセス許可の中でも特に offline_access を要求しました。

offline_access は 5 月に非推奨になる予定なので、とにかく長寿命のトークンを取得する方法を調査し始めたので、もちろん公式のガイドラインを含め、それに関連するほとんどすべてを読みました。簡単に言えば、私にとっては何もうまくいきませんでした.

これは私が始めたものです:

  1. 設定で私のアプリのoffline_accessを廃止しました(現在多くのユーザーが使用しているためアプリではありません、基本的に同じであり、テスト目的でのみ使用する別のアプリなので、同じことです)。
  2. クライアント側認証を使用してユーザーを承認しました: https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=http://my.domain.com/yeah.htmlscope=publish_stream,read_stream,user_photos,friends_photos,offline_access&response_type =トークン&ディスプレイ=ワップ

私は access_token を取得しましたが、それがまったく長続きしないことにすぐに気付きました。まったく逆で、expires_in は 6800 秒 (2 時間未満) のように設定されていました。したがって、私が立てた最初の仮定 (access_tokens はデフォルトでより長く存続する) はすでに間違っていました。

次に、この access_token の有効期間を延長する方法を調べ、ほとんどすべての代替手段を試しました。言うまでもなく、すべての試みが失敗しました。正確には、それが私が試したことです:

  1. まず第一に、もちろん、新しいエンドポイントを介してトークンを拡張する「公式」アプローチを試しました。そのような操作のためにクライアント シークレットを要求することがいかに愚かであるかについての暴言はここではスキップします (多くの人がすでに指摘しているように、そのようなシークレットは Android アプリに埋め込む必要があります。これは、開発者にとってセキュリティ上の悪夢です。ユーザーに代わってトークンの寿命を延ばすためにこのビットをサーバー側に移動することは、代わりに彼らにとって悪夢です。正しいパラメーターを使用したそのアドレス: https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN...リクエストは成功したようですが、何の寿命も延長しませんでした。リクエストは、以前と同じ access_token を返しましたが、expires_in パラメーターには、流れ去る時間の砂が反映されています (以前と同じ値から、承認してから経過した秒数を差し引いたものです)。基本的に、そのメソッドは、何も更新したり変更したりせずに、すでに利用可能な access_token がどれだけ存続するかを教えてくれるだけなので、明らかにセキュリティ上の懸念が生じるにもかかわらず、それもかなり役に立ちません。
  2. 次に、他の誰かが提案したことを試しました。つまり、古いREST APIを使用してジョブを実行し、GETリクエストを次のアドレスに発行します: https://api.facebook.com/method/auth.extendSSOAccessToken?access_token=EXISTING_ACCESS_TOKENこれは明らかに悪名高い「シングルサインオンを使用してアクセストークンを取得できませんでした」というエラーで失敗しました。

それらの試みが失敗した後、私はそれらすべてが失敗した原因は何かを考え始めました. 予想どおり、私のアプリは Android デバイスで実行されますが、API への HTTP リクエストを直接トリガーします。これが問題の原因である可能性があります。

  1. 開発者アプリ ページの高度なセクションで、アプリが「ネイティブ/デスクトップ」ではなく「ウェブ」として構成されていました。とは言っても、「ネイティブ/デスクトップ」に変更しても、最初のログアウト時に有効期間の長い access_token が得られるだけでした (1 ~ 2 時間ではなく約 24 時間)。
  2. 公式のガイドラインには、興味深い、非常に気味の悪い段落があります。これは多くの人に見落とされているようですが、これが問題の原因である可能性があると考え始めたので、別のアプローチを試しました。つまり、クライアント側ではなくサーバー側の認証を試しました。 client_secret が必要なため、Android アプリのばかげたソリューションになりますが、とにかく試してみたかったのです。そのため、最初にコードを取得し、次に access_token を取得しました ( http://developers.facebook.com/docs/authentication/server-side/で説明されているように))。これにより、access_token の有効期間が大幅に長くなりました (5183882 秒、つまり約 59 日) が、それを拡張するための既知の手段 (この場合は実際には必要ではなかったとしても) は両方とも同じ結果になりました: 前者は更新されません。後者は、SSO 経由で取得されなかったという事実について不平を言っています。

つまり、非常に長い話になりますが (遅すぎることは承知しています)、offline_access の廃止期限が近すぎて首に息を吹きかけているように感じますが、何も機能していないようです。このすべてについてあなたはどのような経験をしていますか? もしあなたが私と同じ船に乗っていて、なんとかそれを機能させることができたなら、どのようにしましたか?

お待ち頂きまして、ありがとうございます。

0 投票する
1 に答える
319 参照

facebook - Facebook 認証アクセス リンクが機能しなくなり、一般的なエラー メッセージしか表示されない

リンクでアクセストークンを取得しようとするFacebookページタブがあります

https://www.facebook.com/dialog/oauth?client_id=[APP_ID]&redirect_uri=[REDIRECT_URI]

作業を行っていましたが、突然、「エラーが発生しました。後でもう一度やり直してください」という一般的なエラー メッセージが表示されます。

確認したところ、APP_ID は正しく、アプリケーションの設定を見る限り問題ありません。これまたは何かに新しい変更がありましたか?

0 投票する
0 に答える
1787 参照

java - Facebook 更新アクセス トークン: サーバーが HTTP 応答コードを返しました: 400

ここで説明されている新しい Facebook エンドポイントを呼び出して、ユーザーの OAuth2.0 access_token を自動的に更新しようとしています。

私は Java (SEAM) Web アプリケーションを構築しています。Facebook の認証はサーバー側のフローを使用して行われます。

応答コード 400 が返され続けます。どこが間違っているのかわからないので、以下のコードに何か問題があると思いますか?

ありがとう

0 投票する
1 に答える
1839 参照

java - サーバーサイドフローで長寿命のaccess_tokenをリクエストする

ユーザーのFacebookウォールにアイテムを投稿するJavaWebアプリがあります。ユーザーが最初にサインアップすると、データベースに保持される60日間のaccess_tokenを取得します。これで、offline_accessが削除され、[Loginwithfacebook]ボタンを使用します。ユーザーが当社のWebサイトにログインしたときにトークンを更新するには、通常60日以上離れてアクセスするため、これはすべて問題ありません。

私は上記を実装しましたが、うまく機能しています...しかし、ログインアクションから生成されているアクセストークンは1時間後に期限切れになることがわかりました....明らかに、彼らが離れている間は壁に投稿できません。 。

以下のコードは、signed_requestメソッド(Java SEAMアプリ内)を介してトークンを取得する方法を示しています。これは問題なく機能しますが、トークンは短命です。

トークンが60日タイプであることを確認する方法を誰かが提案できますか

ありがとう

0 投票する
1 に答える
589 参照

facebook-graph-api - FacebookAPIアクセストークン-uidとパスワードを知っている場合

単純な状況です。(ユーザー)UIDとパスワードの両方を知っていて、などのAPIリクエストを作成したいと考えていますhttps://graph.facebook.com/220439?access_token=...

私が望まないのは、ユーザーをFacebookページにリダイレクトし、許可を与えるようにユーザーに促すことです。これは、資格情報を知っているためです。access_tokenを直接取得する方法はありますか?または、少なくとも最初のOAuthリクエストを1回だけ行い、永続的なリクエストトークンを受け取り、API呼び出しを行うときに通常のアクセストークンにのみ切り替えますか?

そしてところで、私はPHPSDKを使用しています。

0 投票する
1 に答える
1561 参照

php - ページ アクセス トークンと fb_exchange_token を使用してページに公開する

ユーザーが所有するページでアプリをパブリッシャーに設定しようとしています。

1)manage_pages,publish_stream スコープの js で許可を求める

2) $fb->api('/'.$fb->getUser().'/accounts', 'GET', array('access_token' => $token)

3) スレッド内の MarcusJoe メソッドでトークンを取得しますoffline_access の廃止以降、アクセス トークンの有効性を拡張する方法

4) ページ access_token を db に保存する

5) $fb->api('/'.$pageId.'/feed','POST',array_merge(array('access_token'=>$row->token),$params)); を使用してページに投稿します。

そのため、ログインしているときに、ログアウトしてすべての Cookie を適切に削除すると、約 2 時間だけ機能します。メッセージの操作を停止するよりも機能します

アクセス トークンの無効化中にエラーが発生しました: セッションが現在保存されているセッションと一致しません。これは、セッションが作成されてからユーザーがパスワードを変更したか、Facebook がセキュリティ上の理由でセッションを変更したことが原因である可能性があります。

だから、私は何か間違っているのではないかと思っています:(

助けてくれませんか?

さよなら

0 投票する
1 に答える
257 参照

access-token - Access tokens?

I am developing an app in PHP hosted on Heroku, and my biggest problem is not getting access tokens for a user to get my app to fully work. The app works perfectly for me (as I am an admin), but other people who arent associated with the app cannot get the app to display anything. I also tried using test users to see if it would work, but still no luck. Im pretty sure it has to do with access tokens and the app not having permission to do its thing. How and where do I fix this?

0 投票する
1 に答える
1161 参照

security - アクセストークンの有効期限/更新

最新のFacebookコメントを表示したい個人のWebサイトがあります。すべて正常に機能しますが、アクセストークンの有効期限がどのように機能するかわかりません。私は2か月のアクセストークンを持っています。つまり、2か月ごとに新しいアクセストークンを取得し、コード内のトークンを置き換える必要があります。もしそうなら、それは本当に便利ではありません...特にこれはすべて自分自身のコメントを取得するためにMYSELFを承認することであるためです。

アクセストークンを自動的に更新する方法や、有効期限が切れていないトークンを取得する方法、またはこの2か月の有効期限を回避する方法はありますか?

0 投票する
1 に答える
631 参照

facebook-graph-api - Facebook グラフ バッチは、最上位の access_token のみを受け取ります

Facebook Graph Batch API を使用して、1 つのメッセージ/異なるメッセージを登録済みのユーザーの FB ウォールに送信しています。各ユーザーの access_token と、必須のトップレベル access_token ( docによると、フォールバックとして使用) を定義しています。後者については、バッチにリストされているユーザーから access_token を使用するだけです。

問題は、メッセージを受信する唯一のユーザーが、トップレベル/フォールバック access_token として使用した access_token のユーザーであるということです。他のユーザーには、「(#210) ユーザーが表示されません」というエラー メッセージが表示されます。app-roles で 3 人のテスト ユーザーのセットアップを使用しています。

ここで何がうまくいかないのですか?

すべての登録者に 1 つのメッセージを生成するための私のコード (python) は次のとおりです。

「params」の次の値になります。

したがって、メッセージを受信する唯一のユーザーは、ここで定義されているユーザーです: "access_token" : self.registrants[0]['access_token'] インデックスを調整すると、メッセージを受信するユーザーを特定できます;)