問題タブ [facebook-oauth]
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.
facebook - FacebookログインでWebページを作成し、アクセストークンを取得する方法は?
Facebook ユーザーのログインを有効にして、友達のプロフィール写真を表示する Web サイトを構築したいと考えています。
Javascript SDK、PHP SDK、OAuth 2.0 など、調べなければならないリソースがたくさんあります。簡単な方法でアプリケーションを実装する方法に戸惑っています。
私はこのようにしたい:
- ユーザーは私のウェブサイトで Facebook にログインします。(ソーシャルプラグインを使用してログインページを作成しますか?または何ですか?)
- ログインに成功したら、ユーザーのアクセストークンを取得します。
- https://graph.facebook.com/userid/friends?access_token= ... を使用 して、ユーザーの友達の ID を取得します
- https://graph.facebook.com/userid/pictureを使用 して写真を取得し、表示します。
このようにそれを実現することは可能ですか?特に手順 (1) と (2) で、特定のコードを指定していただければ幸いです。
どうもありがとう!!!
authentication - アクセス トークンを 255 文字より長くすることはできますか?
OAuth (OpenID、Facebook、Twitter など) によるログインを許可する場合、今後の認証のために、Oath プロバイダーによって提供されたアクセス トークンを mysql データベースに保存します。一部のチュートリアルでは、アクセス トークンを保存するための列は でvarchar(255)
あり、一部の使用はtext
です。text
アクセス トークン (facebook や twitter などの一般的な Web サイトによる) が 255 文字の必要な列よりも長いのだろうか。この可能性を考慮すべきでしょうか?
ruby-on-rails-3 - Facebook 認証ダイアログ (JS SDK) が空白の画面を返す
Rails アプリをセットアップして、Facebook JS SDK 経由でログインを実装しようとしています。すでに Omniauth がありません... :(
とにかく、ダイアログがポップアップし、ユーザーがログイン情報を提供しますがhttps://www.facebook.com/connect/window_comm.php?_id=some-string&_relation=opener&auth_token=some-big-string
、空白の画面にリダイレクトされます。ポップアップが閉じません。
ただし、手動で閉じてからページを更新すると、ログインが行われたことがわかります。
不思議なことに、最初のログインで許可が求められると、すべてが期待どおりに機能し、許可が付与または拒否されるとポップアップが閉じます。
Chrome、FF、Safari、Opera でテスト済み。一貫した行動。
Chrome で空白のリダイレクト ページをデバッグすると、次の 2 つのエラーが発生します。
1) Unsafe JavaScript attempt to access frame with URL http://something from frame with URL https://something. Domains, protocols and ports must match.
(http x https に注意してください...)
2)window_comm.php:7Uncaught TypeError: Cannot call method '_recv' of undefined
関連するコードは次のとおりです。
これに光を当ててくれてありがとう...私を狂わせる!=(
編集: http から https にリダイレクトしているため、Facebook のバグでしょうか?
facebook - 認証ダイアログでのログインとキャンセル
だから私はいくつかの情報とボタンhttp://www.facebook.com/theminespress?sk=app_289102104446763を保持する Facebook キャンバス ページを持っています。
最初の質問は... ユーザーがアプリのリンクをクリックすると、ログイン ページが表示されます。
http://www.facebook.com/connect/uiserver.php?app_id=287405277948067&method=permissions.request&redirect_uri=http%3A%2F%2Fapps.facebook.com%2Fchocolate_sender%2F&response_type=none&display=page&perms=publish_stream&auth_referral=1
彼らはすでにログインしているのに?拡張アクセス許可の認証ダイアログに直接アクセスするにはどうすればよいですか?
第二に、ユーザーが拡張アクセス許可画面で「許可しない」を選択した場合でも、アプリに取り込まれますか? 私はそれが行くのを見ていません:
http://YOUR_URL?error_reason=user_denied&
error=access_denied&error_description=The+user+denied+your+request
(http://developers.facebook.com/docs/authentication/) で説明されているとおりです。
私は何を間違っていますか?助けてください。
ruby-on-rails - omniauth を使用して Facebook 経由で認証しようとするとエラーが発生する
Ryan Bates Omniauth Part1 railscats http://railscasts.com/episodes/235-omniauth-part-1をフォローしました。秘密の番号を使用して Twitter と Facebook の認証を行い、Facebook (auth/facebook) で認証しようとすると、次のエラーが発生します。
Twitter (auth/twitter) で認証しようとすると、この 401 Unauthorized 応答が返されます。どうすれば修正できるのかわからない
ありがとうhttp://127.0.0.1:3000
Twitter の URL コールバック フィールドと facebook の私のウェブサイト フィールドの入力を修正しました。しかし、Facebookで認証しようとすると、次のエラーが発生します。
OpenSSL::SSL::SSLError
SSL_connect が返されました = 1 errno = 0 状態 = SSLv3 読み取りサーバー証明書 B: 証明書の検証に失敗しました
どうすれば解決できますか?OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
私はdevelopment.rbに入れて解決しました
facebook - ユーザーアクセストークンからアプリケーションIDを取得します(またはトークンのソースアプリケーションを確認します)
答えのあるこの質問を見つけましたが、それ以来Facebookがトークンの形式を変更したため、次のようになりました。
要するに、あなたはそれから何も推測することはできません。また、アクセストークンデバッガーも見つかりました。これは、トークンを貼り付けた場合に探している情報を表示します。これは便利ですが、プログラムでそれを行うのに役立ちません。
ポイントは、誰かがユーザーのトークンを取得した場合、それを使用してグラフにアクセスできることです。これは、私のアプリケーションで行うことです。ユーザーが私のアプリケーションによって発行されたトークンを転送していることを確認したいのですが、別ではありません。
私のアプリケーションフローは次のとおりです。
- Facebookからアクセストークンを取得します(ここで説明されているように、サーバー側のフロー(iPhoneとAndroidも使用されますが、正しく思い出せば同様のフローがあります))
[デバイス] <-> [facebook ] - そのアクセストークンを使用すると、デバイスはトークン
[device] <-> [Jonathan's application]を使用してアプリケーションサーバーにアクセス
します。サーバーでアクセストークンをユーザーに添付し、それを使用してアプリケーション内のそのユーザーにアクセス許可を付与します。(Facebook接続を使用してユーザーを認証します)
私のアプリケーションは保護されており、Facebookに関係なく、行われたアクセスも認証されますが、このフローでは、私が特定した弱いリンクは、取得したアクセストークンがアプリケーション用に署名されていることを確認できないことです-オフラインで使用するためにトークンをキャッシュするため、100%確実にしたいのでそれは好きではありませんそれらは私のアプリケーション用であり、私の権限があります。
したがって、取得したトークンがアプリケーションに関連していることを認証する(最良の)方法は何でしょうか(ユーザーとの関係では、トークンを使用して/ meにアクセスし、このトークンの対象となるユーザーを確認します)
トークンを復号化する必要はありません(ある種のAESだと思います)。トークンがアプリケーションIDと一致することを通知するエンドポイントを探しています。
(編集:重要な場合は、C#SDKを使用します。しかし、その情報を提供するためのグラフ/REST呼び出しも同様に優れています:))
facebook - ダイアログを開くには OAuth トークンを生成する必要があります
私はこのOAuth全体に本当に苦労しています。ユーザーのウォールにメッセージを投稿するダイアログを開きたいリンクがあります。これが私のコードです...
リンクをクリックすると、このエラーが生成されます...
このアクセス トークンを取得するにはどうすればよいですか? また、取得後に行う必要があることはありますか? Facebook のドキュメントには本当に腹が立ちます。IMO を実行するために必要なことの半分だけを実行するサンプル コードを提供します。
PHP SDK を使用しています。
facebook-graph-api - iOSのFacebookスコアAPIでアプリとユーザートークンを適切に使用する方法
iOSのFacebookGraphAPIにハイスコアを投稿しようとしていますが、すべてのトークンを通過することができません。アプリトークンとユーザートークンを保存するようにiOSライブラリを変更し、に投稿するときにアプリトークンを交換しましたhttps://graph.facebook.com/{my user id}/scores
が、ユーザートークンが必要であるというエラーが返されます。ユーザートークンを交換すると、アプリトークンが必要であると表示されます。
リクエストが完了する前にユーザートークンがスイッチインされたようなものかもしれないと思いましたが、リクエストがaccess_token
投稿値として受け取ったアプリトークンで戻ってくることを2回と3回チェックしました。私が行ってきたデバッグによると、ユーザーアクセストークンとアプリアクセストークンの両方が必要です。
* oauth/access_tokenを呼び出した後*
USER ACCESS TOKENを使用する場合"(#15)このメソッドはアプリaccess_tokenを使用して呼び出す必要があります。"
APP ACCESSTOKENを使用する場合「このリソースをリクエストするには、ユーザーアクセストークンが必要です。」
また、publish_actionsを権限として使用しています。
python - Facebook OAuth 2.0をサーバー側で完全に有効にする方法は?
私は基本的に、特定のユーザーの Facebook ID を保存して、Facebook 経由でより多くの資料を受け取ることができるようにしたいと考えています。理想的には、javascript も cookie も使用せず、サーバー側だけのソリューションが必要ですが、例がなく、指示だけがあったため、議論できるソリューションをまとめました。Web サイトの OAuth ダイアログにユーザーをリンクするだけで機能すると思われるコードを次に示します。
https://www.facebook.com/dialog/oauth?client_id=164355773607006&redirect_uri=http://www.kewlbusiness.com/oauth
次に、ユーザーデータを取得するために次のように処理します。
これで、面倒な JavaScript や不要な Cookie を使わずに、自分の Web サイトに「Facebook でログイン」できます。Web サイトで「Facebook でログイン」を有効にしたいと考えていました。Cookie や JavaScript がなくても動作するはずですが、最初にやらせようとするのは Javascript と Cookie です。そこで、Cookie や JavaScript を使用せずに OAuth 2.0 だけで動作するように見えるソリューションを作成しました。私の「ソリューション」について何か言っていただけますか? 私が探している実用的な用途は、FBユーザーが私のウェブサイトで何をしたかという単純な機能を有効にし、Facebookアカウントが標準化されている方法でログインできるようにすることです。
javascript SDK や Cookie がなくても動作するはずだと思ったのですが、そのようです。この「ソリューション」の長所と短所を教えてください。Javascript + Cookie よりもはるかに優れていると思いますが、最小限の例が 100% サーバーサイドにあるように見えるのに、なぜ彼らは私たちをだまして javascript と Cookie を使用させるのでしょうか?
ありがとうございました
更新 それは正しいようで、正しく動作し、ユーザーデータをデータストアで使用して、FB 名を JavaScript や Cookie なしで、Python だけでフロントページにレンダリングすることもできます。
facebook ユーザー用の変数 fbuser と google ユーザー用の変数 user を使用すると、バグのある不要な javascript + cookie なしで、web サイトに facebook を使用できるようになりました。
これで、Web サイトから Facebook の名前をレンダリングして表示できるようになりました。これは、最終的に JavaScript に依存せず、Cookie を必要としない方法で動作するようになったことを意味します。
サーバー側の OAuth 2.0 が最もクリーンなソリューションであるのに、ドキュメントで javascript + cookie が推奨されているのはなぜですか? JavaScript を使用するか Cookie を使用するかに依存しないため、これが最善の解決策であることに同意しますか?
他の人がサーバーコードでログアウトできず、Javascript SDK に頼る必要があり、JavaScript なしで動作する必要があり、動作する必要があることが要件である可能性があるため、デバッグを行って見つけました。クッキーを「クリア」し、クッキーの名前を変更する必要がありましたが、それは機能しますが、コメントをお願いしたり、私のプロジェクトがこれをどのように解決したと思うかをテストしたりします。このようなログアウト リンクは機能するはずですが、機能しません。2回ログアウトすると機能します。これが修正できるので奇妙なバグですが、ログアウトに2回目のヒットが必要になる理由はまだわかりません。
https://www.facebook.com/logout.php?next=http://www.myappengineproject.com&access_token=AAACVewZBArF4BACUDwnDap5OrQQ5dx0jsHEKPJkIJJ8GdXlYdni5K50xKw6s8BSIDZCpKBtVWF9maHMoJeF9ZCRRYM1zgZD
OAuth 2.0 サーバーサイドのソリューションで JavaScript を完全に回避しようとしたのは私だけではなかったようです。人々はすべてを行うことができましたが、ログアウトできませんでした:
Facebook での OAuth 2.0 の公式ドキュメントには次のように書かれています。
ユーザーを次の URL に誘導することで、Facebook セッションからユーザーをログアウトさせることができます。
https://www.facebook.com/logout.php?next=YOUR_URL&access_token=ACCESS_TOKEN
YOUR_URL は、デベロッパー アプリで定義されているサイト ドメインの URL である必要があります。
サーバー側ですべてを実行したかったのですが、ログアウト リンクが機能しないように、推奨されるリンク方法が Cookie を残すことがわかりました
https://www.facebook.com/logout.php?next=http://{{host}}&access_token={{current_user.access_token}}
。これは私にとって変化していて、ドキュメントがあまりなかったので、ハイゼンバグのように思えました。とにかく、Cookieを操作するハンドラーを使用して機能を実現できるように思われたため、実際にはユーザーはログアウトされます。
したがって、ハンドラーを /auth/logout にマッピングし、これをリンクに設定すると、ユーザーがサイトから効果的にログアウトされます (Facebook からユーザーをログアウトせずに、うまくいけばテストされていません)。
私のコードの他の部分は、Oauth 通信の OAuth トークンと Cookie ルックアップを処理しています。
ログインは基本的にルートリクエストハンドラーの上記のコードであるため、ログインハンドラーは作成しませんでした。私のユーザークラスは次のとおりです。
私は 2 つの基本的なプロバイダーを一緒にモックし
ました。Facebook ユーザーには変数 current_user を使用し、Google ユーザーには変数 user を使用し、ログイン中のユーザーには変数 fbuser を使用するため、Cookie が一致しません。
私が使用する Cookie ルックアップ コードは次のとおりです。私はそれを理解していると思います。
これを解決するために Cookie を学ばなければならなかったので、もっとコメントしていただければ幸いです。ウェルカム メッセージの出力には 3 つの変数が必要でした。1 つは Google ユーザー用、もう 1 つはログインしている Facebook ユーザー用、変数 fbuser は回答に記載されているケース用です。
JavaScript/Cookie は、新しいユーザーを認証しようとするときに使用されます。それはデータベースに存在せず、彼の accessToken もありません。
だから私は3つの変数を使わなければなりませんでした.2つの変数だけでそれを行うことができますか?
facebook-graph-api - FacebookグラフAPIを使用したテストユーザーデータへのアクセス
FacebookグラフAPIを使用してテストユーザーの友達を取得しようとしていますが、友達のIDのみが返され、first_name、last_nameなどの他の詳細は返されません。これは実際のユーザーでも機能します。私は特に必要なフィールドを渡します(リクエストは次のようになります):
アクセストークンは、テストユーザーがアプリケーションにログインしたときにテストユーザーに付与されるトークンです。
同様のSO投稿を見つけましたが、提案されている解決策がわかりません。