なぜ私にはいつもそうなるのですか?
これは、アプリケーションがユーザーユーザーログインを確認し、ユーザーを認証ページにリダイレクトした後に発生します。
https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=http%3A%2F%2Fexample.com%2Fmyappname%2F&state=YYYYYY&scope=offline_access%2Cpublish_actions
ただし、Facebookは認証ページを表示する代わりに、
エラーが発生しました。後でもう一度やり直してください。
ユーザーの認証を試みる前に行う必要のある構成はありますか?
すべてはPHPでPHP-SDKクラスを使用して行われます。
サイトのドメインを変更した後も同じ問題が発生しました。 request_uriパラメーターを適切に変更し、新しいドメインでアプリの設定を更新しましたが、エラーが表示され続けました。その後、FacebookアプリのIDとSECRET IDが警告なしで自動的に変更されたことに気付きました!!新しいIDを使用して、全体が再び機能し始めました。
私はあなたと同じ問題を抱えています。
Facebook Developers Appsページで、Sandboxモードが無効になっていることを確認します。
これは私にも起こっていましたが、すべてのAPIキー、シークレット、およびものは正しいものでした。私が見つけたのは、アプリがサンドボックスモードで実行されていたことです。 https://developers.facebook.com/ でアプリの設定に移動し、[詳細設定]タブをクリックして、アプリがサンドボックスモードになっているかどうかを確認します。無効になっている場合は、再試行してください。動作するかどうかをお知らせください。
http://mysite.com
から始めていたが、Facebook設定でhttp://WWW.mysite.com
を指定していたため、このエラーが発生していました-wwwが問題になりました。 、FBをhttp://mysite.com
に向けます
最悪。サブドメイン。今まで。 :u)
Dialoguesを使用する場合、Facebookはデフォルトでno
に設定される 'show_error'属性を提供しますが、開発環境ではtrue
に設定でき、デバッグに非常に役立ちます。
show_error-これをtrueに設定すると、エラーが発生した場合にエラーコードとエラーの説明が表示されます。
その使用方法は Facebook Docs にあります。
「エラーが発生しました。後で試してください。」をデバッグしていました。ドキュメントでこの属性を見つける前のダイアログ。使用を開始すると、次のメッセージも表示されます。
APIエラーコード:191
APIエラーの説明:指定されたURLはアプリケーションによって所有されていません
エラーメッセージ:redirect_uriはアプリケーションによって所有されていません。
私にとってこれは、作成した「テストユーザー」が別のアプリの一部だったために発生しました。このアプリのテストユーザーを作成し、正常に動作するようになりました。
私が知っている私の愚かなことですが、これは誰か他の人の手間を省くことができます。
同じ問題がありました。 FBにはstring appIDが必要であり、intではないことが判明しました ...
//DOESNT WORK:
$facebook = new Facebook(array(
'appId' => 147XXXXXXXXXXX,
'secret' => 'XXXXXXXXXXXXXX',
));
// WORKS:
$facebook = new Facebook(array(
'appId' => '147XXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXX',
));
私にとっての解決策は、オプション「認証された紹介」を有効に設定することです。その後、本当に修正されました。
サイトの適切なURLとドメインを使用するようにアプリが構成されていることを確認してください。それかもしれません。
OAUTH Dialog documentation:
*redirect_uri:ユーザーがダイアログのボタンをクリックした後にリダイレクトするURL。指定するURLは、アプリの設定で指定されているのと同じベースドメインのURL、 https://apps.facebook.com/YOUR_APP_NAMESPACE ... *の形式のCanvas URLである必要があります
oauthリンクを動的に構築して、必要に応じてユーザーに追加のアクセス許可を要求し、あなたが https://apps.facebook.com/YOUR_APP_NAMESPACEにリダイレクトしている場合でも アプリケーション管理でアプリドメインとウェブサイトの設定を行う必要がありますドメインをfacebook.comに、ウェブサイトをfacebookのルートURLに設定します。
現在、私のoauthダイアログリンクは正常に動作します-サンドボックスモードでも。
この正確な問題はPage Tabアプリで発生しましたが、私の人生では問題が何であるかを判断できませんでした。テストページでは機能していましたが、ライブにするとすぐに機能しませんでした。最終的に、ページタブに実際のURLを挿入することで問題を解決したことがわかりました(つまり、http://www.facebook.com/<"page_name">/app_<"app_id">
)[ウェブサイト]の下の[サイトURL]に移動します。これは意味がありません。しかし、それは働いた:-)
また、間違ったリダイレクトリンクの問題がありました。「https://apps.facebook.com?myapplication」で始まるリンクがありましたが、承認後、リダイレクトによって「apps.facebook.com/Myapplication」に移動しました。その結果、上記のメッセージが表示されます。「エラーが発生しました。後でもう一度試してください。」 「apps.facebook.com」...は「HTTPS://apps.facebook.com /、...」ではなく「http://apps.facebook.com/Myapp」を意味するため
解決策:Facebook開発者セクションのアプリケーション設定に進みました。 「編集」をクリックしました。左側のメニューで[アクセス許可]を選択し(デフォルトではメニューは[基本]に設定されています)、新しく開いた設定で[認証トークンパラメーター]を[クエリ文字列]から[URLフラグメント]に変更しました。
動いた!認証が完了すると、ユーザーは「https://apps.facebook.com/myapp ...」に移動します
すべてのコードが正常に機能している場合、そのようなタイプのエラーを削除するには、Facebook Developers Appsにアクセスして、サンドボックスモードを無効にします。
「appID」と「secret」を更新し、変更をherokuにプッシュした後、問題は解決しました(つまり、「git Push heroku master」)
重要なのは、変更をherokuマスターにプッシュバックすることを忘れないことです。 localhostでのテストに慣れている場合、見落としがちです。
お役に立てれば。
もう1つの間違いとして、Facebook SDKのサンプルからコードを直接コピーした場合、すべてが正しいにもかかわらず同じエラーが発生する可能性があります。 http://developers.facebook.com/docs/reference/php/
これは、彼らの例では、配列のキーに単一引用符の代わりに逆引用符を使用しているためです。正しいコードは次のとおりです。
require_once("facebook.php");
$config = array();
$config['appId'] = 'YOUR_APP_ID';
$config['secret'] = 'YOUR_APP_SECRET';
$config['fileUpload'] = false; // optional
$facebook = new Facebook($config);
私にとっての問題は、アプリのテストに使用していたFacebookユーザーが、Facebookによって確認されたメールアドレスを持っていないことでした。
私のクライアントは、Facebookに2つの偽のアカウントを設定し、それらが機能していないと言っていました。しかし、彼はそれらのアカウントのメールアドレスを確認するのを忘れていました(Facebookが送信したメールは自分のスパムフォルダに送られたので気づきませんでした)。
これを見つけるのに何時間もかかったので、誰かの助けになることを願っています。
乾杯!
私は自分でこの問題に遭遇しました。内部でアプリを開発しているので、ホストは「localhost」です。アプリの構成で「localhost」を設定する方法は明らかではありませんでした。ローカルで開発する場合は、次の手順に従ってアプリをセットアップします。
情報が伝わるまで数分待ってから待ってください。ただし、すぐに機能しました。
私は、米国の居住者のみがアプリを使用できるというアプリに制限を設けました。このエラーメッセージが表示されたとき、私はカナダで働いていました。制限を削除した後、すべてが機能しました。
ここにも同様の問題があり、はい、私のサンドボックスが有効になりました。私はそれを無効にし、出来上がり、ログインの問題はなくなりました。 Facebookはこれらのユーザーにアプリの表示を許可しているため、この問題は開発者やWebサイト管理者に影響を与えないことを警告する必要があります。このため、まったく問題なくログインできたため、ユーザーがログインできないことについて不平を言うことすら信じられませんでした。
私は同じ問題を抱えていましたが、URLにparam&display = touchを追加して修正しました
試してください、それは役立つかもしれません
Appidを確認し、 https://developers.facebook.com/ でサイトURLモバイルサイトURLを更新したことを確認します
アプリ開発者の場合、より具体的なエラーメッセージが表示される場合がありますが、一般的にそのメッセージは次の2つのいずれかを意味します。
私はあなたが答えを得るかもしれないことを知っていますが、これは解決策を得るためにまだスレッドを下っている人たちのためです。
Uは上記のすべての解決策を試すことができますが、別の解決策を確認する前にデバイスまたはシミュレータから以前のアプリを削除してください
すべてのソリューションを試してみましたが、以前のアプリを削除していないため応答が得られず、ビルドをクリーンアップするだけでは条件が満たされません。 :)
設定>詳細設定>セキュリティ>有効なoauthリダイレクトURI
リダイレクトURIでhttp://
を指定する必要があります。
私にとって問題は、アプリのURLが実行中のURL(つまり、異なるディレクトリ、同じドメイン)と完全に一致しなかったことです
私は同じ問題に直面し、理由は私のapp was not live
および公開されています。
設定タブの連絡先メールにメールIDを追加し、アプリをライブにします(以前はライブにするために無効にされていました)。
私のアプリをライブにした後、適切な画像、タイトル、説明を共有ダイアログに表示し、下にアプリ名を表示します。
ここで述べたすべての答えを試しました。しかし、うまくいきませんでした。削除して再度作成する必要がありました。私はそれが新しい「認証された紹介」によるものだと推測しています。承認されていないOpen Graphオブジェクトを追加した場合、エラーが発生する可能性があります。
redirect_url
の代わりにredirect_uri
をパラメーターとして使用していたため、このエラーが発生しました。
サーバー側認証 docページは、redirect_url
を使用するように言っています:
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_url=YOUR_REDIRECT_URI
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
しかし、これは間違っています。 OAuthダイアログ docは、代わりにredirect_uri
を使用するように指示していますが、これは機能するため、一方のみを使用し、他方は使用できないと想定しています。
https://www.facebook.com/dialog/oauth/?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URL
&state=YOUR_STATE_VALUE
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
私の場合の理由は完全に異なっていました。ページの読み込み後にフィードダイアログを自動的に開こうとしていました。そして、10回の9回でこのエラーが表示されました。最初に、@ Peter Roomeが示唆するようにshow_error: true
パラメーターを追加しましたが、助けにはならず、104: Invalid signature
を表示しますが、まったく説明的ではありません。
それから私は理由を理解しました。コードは$(document).ready
jQuery関数にありました。また、コードが実行される時点で、Facebookのものがまだロードされていなかったようです。コードを$(window).load
ブロック(すべてのページコンテンツが読み込まれた後に実行されます)に移動しましたが、問題は解決しました。
このタイプのエラーを解決する可能性はありません。そのため、facebookに表示されているのと同じカスタムダイアログを使用し、ログインせずに何度もメッセージを投稿する方が良いでしょう。 Facebookからアプリを削除しても、ログインを要求してメッセージを正常に投稿できます。
私は同じ問題を抱えていて、根本的な原因は異なっていました:
別のアプリケーションのテストユーザーとしてログインしました。そのため、テストユーザーが作成されたアプリではないアプリを承認できませんでした。
ログアウトして、認証しようとしたアプリの通常ユーザーまたはテストユーザーとしてログインすると、すべてが正常でした。
私の場合、アプリで使用されているアカウントに年齢の問題がありました。
FBアプリにアルコールコンテンツがある場合、21歳未満のFBユーザーは、FBアプリで認証しようとするとエラーをスローします。