問題タブ [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.
ruby-on-rails - Rubyを使用してFacebookのoauthアクセストークンを取得する方法
ruby でプログラムによって facebook の oauth アクセス トークンを取得しようとしています。
私のコードは次のとおりです。
上記の Ruby コードを実行しようとすると、次の例外が発生します。
これを整理しようとして1日以上費やしたので、どんな助けも大歓迎です.
facebook - Facebook-offline_access の代替手段: アプリから作成されたトークンがどのくらいの期間存続し、自分のページのフィードを自分の Web サイトに取り込むことができるか
主な質問: (offline_access 許可のため) は非推奨です。アプリの ID とシークレットを使用して以下の URL にアクセスして作成されたアクセス トークンは、どのくらいの期間保持されますか? https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=XXXX&client_secret=YYYY 最後? 簡単な質問に思えますが、ここまたはdevelopers.facebook.comで決定的な答えを見つけることができませんでした
二次的な質問 Facebook ページのフィードを自分の Web サイトに取り込みたいのですが (jquery プラグインを使用するか、独自の方法で)、どちらも次のようなものを使用します。
基本的に、私が作成した fb アプリを介して作成された appID とシークレットを使用しているのは、ユーザーに fb での認証を要求することなく、アクセス トークンを生成して自分のフィードを自分の Web サイトにプルできるようにするためです (最初の質問を参照)。上記の呼び出しを行い、アプリを作成してトークンを取得するよりも、これを行うためのより良い方法はありますか? (私が使用しなければならないWebサーバーはphpを使用できません)
注: この投稿のコメントには、「オフライン アクセスは廃止されましたが、アクセス トークンを 60 日間有効に延長することは許可されています」と書かれています。しかし、それを裏付けるドキュメントや、その時間を設定する方法は見つかりませんでした。そして、自分のトークンが不明な時間に期限切れになるかどうか疑問に思ってライブに行くのは嫌です Facebook ページ アクセス トークン - これらは期限切れになりますか?
ios - iOS アプリとサーバーの両方でトークンを使用する場合に、Facebook の offline_access の廃止を処理する方法
Facebook によるパーミッションの廃止は2012 年 5 月に予定されており、ドキュメントにはその処理方法に関する十分な情報がありません。offline_access
iOS アプリとそれに対応するサービスがあり、それを強化し、Facebook と深く統合して、アプリ内でユーザーの友達リストを活用します (したがって、FB の友達もアプリを使用している場合は、より簡単に接続できます)。これは、すべてのソーシャル アプリが機能しているように見えるため、ここでは特別なことはありません。
クライアント
私たちのアプリはFacebook iOS SDKを使用して、ユーザーがログインできるようにしますoffline_access
。トークンは iOS アプリに保存されますが、保存先のサーバーにも送信されます。クライアントは、ユーザーの代わりにユーザーのニュースフィードに更新を投稿します (publish_stream
許可も求めます)。
サーバ
私たちのサーバーは、ユーザーの FB の友達が現在私たちのアプリを使用しているかどうかを定期的にチェックします。次回ユーザーがサインインすると、特定の方法でコンテンツと関係を公開し、そのユーザーの友達を宣伝します。また、サーバーはユーザーに代わってグラフ API に定期的に接続し、ユーザーの現在のフレンド リストを取得します。これは、ユーザーの関係の変化を説明し、アプリに反映させることができるようにするためです。これは、ユーザーが現在アプリを使用していないときに行うため、次に使用するときに最高のエクスペリエンスが得られます。これを有効にするために、iOS アプリはアクセス トークンをサーバーに送信しますoffline_access
。
注:ユーザーがアプリから明示的にサインアウトすると、クライアントとサーバーの両方からアクセス トークンが削除されます。
問題
使用できる永久アクセス トークンがなくなったので、アクセス トークンを処理および拡張する facebook の新しい意図された方法を活用しながら、シナリオを引き続き有効にするためのベスト プラクティスを見つけようとしています。残念ながら、ドキュメントは完全には役に立ちません。
質問
A.最新の Facebook iOS SDK を介して認証する場合、取得するアクセス トークンのデフォルトの有効期間はどれくらいですか? このドキュメントには、拡張トークン リクエストにより 60 日間有効なトークンが提供されると記載されています。この他のドキュメントでは、最初のアクセス トークン リクエストについて説明し、さまざまな有効性について言及していますが、明確ではなく、特定の有効期間について説明しています。
(強調は私です)
Facebook からアクセス トークンを取得すると、すぐに有効になり、Facebook によって定義された一定期間、API へのリクエストで使用できます。その期間が経過すると、アクセス トークンの有効期限が切れたと見なされ、アプリが新しいアクセス トークンを取得するには、ユーザーを再度認証する必要があります。特定のアクセス トークンが有効な期間は、それがどのように生成されたかによって異なります。
また、予想される有効期限の前にアクセス トークンが無効になる可能性があるイベントもあります。このようなイベントには、ユーザーがパスワードを変更したり、アプリケーションが App Secret を更新したりすることが含まれます。さまざまなアクセス トークンの有効期限に対処し、予想される有効期限の前にアクセス トークンが無効になった場合に対処することは、堅牢なソーシャル エクスペリエンスを構築するために不可欠です。
B.クライアントにとって、アクセス トークンが必ずしも長寿命であるとは限らないため、次のことを行うための適切なアプローチは次のとおりです。
FB 経由でログインして、アクセス トークンの有効期限が切れていることを検出します。そうであれば、FB iOS SDK を呼び出して再認証/再承認しますか? (これにより、ユーザーは FB iOS アプリにバウンスするだけで、ほとんどの場合、新しいアクセス トークンを使用してすぐにアプリに戻ります)。
C.私が見つけたこのブログ投稿によると、アクセス トークンを拡張できるのは 1 回だけです。
60 日アクセス トークンを新しい 60 日アクセス トークンに交換できますか?
いいえ、できません。有効な (現在の) ユーザー アクセス トークンのみを拡張トークンと交換できます。すでに拡張されているアクセス トークンを拡張することはできません。
クライアントでは、質問 B で述べたように、再認証/再承認を促すことでこれを処理できます。しかし、これは私たちのサーバーでは機能しません。サーバーに 1 回から 60 日に更新させることもできますが、61 日目にはどうなるでしょうか。サーバーが友達のリストを同期できなくなっただけですか?
D.アプリが起動するたび、またはスリープから再水和するたびに、FB アクセス トークンの有効性を確認することは理にかなっているように思われます。iOS アプリがこれを確認する最善の方法は何ですか? トークンを検証するために呼び出す推奨エンドポイントはありますか? https://graph.facebook.com/me
アクセス トークンを渡して応答を確認するように呼び出す必要がありますか?
注:expires
最初に拡張されたトークンを取得した時刻を確かに記録できますが、ユーザーはアプリの許可をいつでも取り消すことができexpires
、有効性に関する信頼できないデータ ポイントになる可能性があるため、これは信頼できません。
c# - C#: ユーザー アクセス トークンを取得する
C# でデスクトップ アプリケーションを開発しています。
https://www.facebook.com/dialog/oauth?client_id=123にアクセスした後、ユーザーはログインし、ユーザー アクセス トークンがリダイレクト URI に添付されます。ログインページがフォームの Web ブラウザー コントロールに表示されている場合は問題ないので、URL からトークンを抽出できます。
しかし、これは私がトークンを取得したい方法ではありません。私の質問は、 Graph API 呼び出しを介して新しく作成されたトークンを取得する方法はありますか?
この組み込み Web ブラウザではなく、ユーザーの標準ブラウザにログイン ページを表示したいからです。ユーザーアクセス トークンを取得するためのすべての努力の結果、アプリアクセス トークンが取得されましたが、この場合は役に立ちません。
ヒントをいただければ幸いです。
c# - アプリが会社の壁に投稿するためのFacebookアクセストークンを取得するにはどうすればよいですか?
これが私がやろうとしていることです。Facebookアプリケーションを作成し、GraphAPIエクスプローラーを使用して右上のアプリケーションを指定することができました。
さらに詳細な情報として、C#を使用して社内アプリの機能をコーディングし、これを機能させています。
その後、URLセクションに移動し、次のアドレスを入力します。
https://graph.facebook.com/MyCompanyPage
次に、送信を押します。エクスプローラーで、そのページの情報をナビゲートして表示します。次に、アプリのaccess_tokenを取得するために、[アクセストークンの取得]->[拡張アクセス許可の指定]->[アクセストークンの取得]をもう一度押します。それはすべてうまくいっていて、Facebookアプリを使ってFacebookに投稿することができます。
問題は、access_tokenの有効期限が切れており、手動の取得方法を使用してアクセストークンを取得していることです。
これが、GITの例の1つを使用して試したことです。
これで、アプリのアクセストークンを自分で取得しようとしたときに機能します。ただし、GraphAPIExplorerの場合と同じように動作する動作が必要です。Explorerのように機能する必要があるのは、実際の会社ページでFacebookアプリケーションを使用して投稿したかったため、会社ページは実際にはユーザーではなくFacebook投稿を作成しているようです。上で述べたように、Graph API Explorerを使用してこれを正常に実行できますが、C#では正常に実行できません。
php - 「現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります」という facebook エラー
Facebook でアプリを開発していますが、いくつか問題があります。基本的に、ユーザーがゲームに勝った後、私は彼に彼の成功を彼の壁に投稿するように頼んでいます (「見て! 私はゲームに勝った!ゲームの名前でこのゲームもプレイしてください!」のように) -> これはルーマニア語のビットの翻訳です次のコードの)。私はこのコードを使用しています:
if ($raspuns == "Yer Blues") {
echo("Bravo! Ai castigat jocul! Intoarce-te saptamana viitoare cand se va posta un alt set de melodii!");
$access_token = $facebook->getAccessToken();
$wall_post = array('message' => 'Am castigat jocul Ghiceste Melodia! Joaca si tu cu Revista Floyd!',
$result = $facebook->api('/me/feed/', 'post', $wall_post);
}
しかし、ユーザーが正しい答えを入力するたびに、次のメッセージが表示されます。
致命的なエラー: OAuthException がキャッチされていません: 現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります。/home/pasarel/public_html/face/src/base_facebook.php の 1106 行目にスローされます
何故ですか?ユーザーとアプリの両方のアクセス トークンを持っていると言いましたが、何が問題なのですか? 「セッション」部分が欠落している可能性があることをどこかで読みました(ここ: http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/ )。これが答えになるでしょうか?どうすれば修正できますか?
oauth-2.0 - アプリ間でのFacebookアクセストークンの共有
フェイスブックAPIを使ったサービスを第三者に提供したい。アクセストークンを共有することは可能ですか?サードパーティがサービスにユーザーのアクセストークンを提供した場合、app_idとsecretが要求したアプリと一致しなくても、そのユーザーのデータにアクセスできますか?
他のサードパーティ用に既に完了している場合でも、ユーザーに自分のサイトで別のOAuthフローを実行させる必要がありますか?
ありがとう。
-ケン
javascript - javascript を使用した新しい offline_access トークンの実装 Facebook アプリ
JavaScript SDK を使用して Facebook OAuth 2.0 を使用しています。Facebook が最近「無期限」の有効期限アクセス トークン機能を変更し、最大 60 日間のみ有効なオフライン アクセス用のアクセス トークンを取得するようになりました。
次のコードを試しました:
私の応答: response.authResponse で、アクセス トークンと値 : expiresIn を受け取ります。これは多かれ少なかれ 6000 前後です。この値が何を意味するのかわかりません。これを 3600 で割ると、約 2 時間の有効期限が得られると言えます。つまり、これは有効期限が無限のアクセス トークンではありません。有効期間の長いアクセス トークンを要求する方法はありますか? 私が間違っていることを教えてください。
facebook - ブラウザなしでアクセストークンを取得する
背景情報を提供するために、私は現在、Arduinoに接続された非常に小さな32文字のLCD画面でFacebookの通知をカウントするアプリケーションのバックエンドを使用しています。これを行うために、Facebookアプリケーションを開き、サーバー上に承認とアクセス許可のためにユーザーをリダイレクトするページがあり、アクセストークンの取得に進みます。私のブラウザでは、すべてのリダイレクトが完全に機能し、通知のJSON表現になります。ただし、これを自律的に機能させたいと思います。Rubyでページをフェッチし、結果を解析してシリアルポートに書き込もうとすると、結果はユーザーをFacebookダイアログにリダイレクトするために使用されるJavaScriptであり、通知。IEクライアント側のコードが返され、実行されません(当然のことながら)。
私の質問は、承認を取得し、別のページにリダイレクトしたり、クライアント側でコードを実行したりせずにアクセストークンを要求する方法があるかどうかです。
facebook - テスト用に期限切れのFacebookアクセストークンをどのように生成しますか?
今後のFacebookoffline_accessの非推奨を処理するために、アプリとサーバーを更新しようとしています。ただし、期限切れのアクセストークンを生成する簡単な方法が見つからないため、テストに問題があります。
グラフAPIツールを使用してアクセストークンを作成しようとしましたが、その中の文字を変更しました。ただし、これにより、有効な期限切れトークンではなく、無効なトークンが生成されます。
Facebookがテストを容易にするためにこれを行う方法を提供していないことにショックを受けました。だから私はこれを行うためのいくつかの簡単な方法を逃したと思っているので、誰かからのポインタをいただければ幸いです。