Facebook APIエラー191
-
11-10-2019 - |
質問
プロジェクトをFacebookと統合しようとしています。私は最初は赤ちゃんの一歩を踏み出し、ログインし、Facebookセッションを取得し、ユーザーデータを取得しようとしています。私はそれをローカルで開発しているので、私のFacebookアプリケーションの設定は次のとおりです。
site URL: http://127.0.0.1:8888/mySite/
Canvas URLは上記と同じです。サイトドメインを指定していません。
ただし、ログインボタンをクリックすると、エラーが表示されます。
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application.
現時点では、リダイレクトなどに対処するためのサーバー側のコードを作成していません。 ウェブサイト用のFacebook.
何が間違っていましたか?それは明らかに私のFacebookアプリケーションの設定と関係がありますが、私は何がわかりません!
解決
アップデート:
APIエラーコードに答えるには:191
redirect_uri
サイトURLと等しい(または相対)する必要があります。
ヒント: 特定のページを指す完全なURLの代わりにベースURLを使用します。
お勧めしません: たとえば、使用する場合 www.mydomain.com/fb/test.html
あなたのサイトURLと持っているように www.mydomain.com/fb/secondPage.html
なので redirect_uri
これにより、191エラーが発生します。
おすすめされた: 代わりに、あなたのサイトURLを次のようなベースURLに設定してください。 www.mydomain.com/
また www.mydomain.com/fb/
.
私はFacebookを通過しました Pythonサンプルアプリケーション 今日、そして私はそうでした ショックを受けた 使用できると明確に述べていました http://localhost:8080/
なので サイトのURL 地元で開発している場合:
サイトURLを構成し、Webサーバーに向けます。ローカルで開発している場合は、使用できます http:// localhost:8080/
私がいる間 だった 確かにあなたはそれをすることができません、私自身の経験(非常に古いテスト)に基づいて、あなたは実際に できる Facebookアプリケーションをローカルでテストしてください!
そこで、私は私の古いアプリケーションを手に取り、その名前、サイトURL、およびCanvas URLを編集しました:サイトURL: http://localhost:80/fblocal/
最新情報をダウンロードしました Facebook PHP-SDK そしてそれを私に投げました xampp/htdocs/fblocal/
フォルダ。
しかし、私はあなたと同じエラーがありました!きがついた xampp 自動リダイレクトを行っています http://localhost/fblocal/
そこで、設定を簡単に変更しました http://localhost/fblocal/
そして、エラーはなくなりました しかし アプリケーションを削除する必要がありました プライバシー設定)そして私のアプリケーションを再インストールすると、ここに結果があります。
その後、を求めました publish_stream
許可、そして私は自分のプロフィールに公開することができました(PHP-SDKを使用):
$user = $facebook->getUser();
if ($user) {
try {
$post = $facebook->api('/me/feed', 'post', array('message'=>'Hello World, from localhost!'));
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
結果:
他のヒント
私にとって、それは不足しているアプリドメインでした。アプリに移動し、アプリドメインとしてサイトのルートが設定されていることを確認してください。スクリーンショットを参照してください。
これは、URLの間違いのためだけです。
WebサイトのURLが指定されている場合は、正しい必要があります。
私はウェブサイトのURLについて言及しました http://localhost:3000/
そしてローカルホストとしてのドメインですが、私のブラウザで私は実行していました http://0.0.0.0:3000/
.
サーバーを実行したとき localhost:3000
問題を解決しました。
私が言ったように、localhostのFacebookとしてのサイトURLは、実行中の場合、同じものにリダイレクトされます0.0.0.0:3000
, 、「アプリケーション構成によってURLが許可されていない場合」というエラーが増加します。
また、Facebook認証方法を使用しているときに同じ問題に直面していました。しかし、Facebook APIの次の変更でその問題を修正します(Apps >> My App >> Basic
).
- ===>に与えたURLを削除しました Facebookのアプリ (キャンバスURL)
- ===>のみサイトURLを与えました Facebookログイン付きウェブサイト オプション
次に、WebページにそのappidとAppの秘密を与えました。
したがって、ログインボタンをクリックすると、アクセス権限が要求され、それがリダイレクトしてURLを提供します(Facebookログイン付きウェブサイト ).
同じ問題がありました:
$params = array('redirect_uri' => 'facebook.com/pages/foobar-dev');
$facebook->getLoginUrl($params);
Redirect_uriをDevloperページからライブページに変更すると、191エラーが発生しました。
そこで、$ paramsを削除しました:
$facebook->getLoginUrl();
App-Requestの後、FBはアプリURL自体にリダイレクトされますfe:my.domain.com
私が今やっているのは、FB iframeの中にいるかどうかにかかわらず、アプリのindex.phpをチェックすることです。そうでない場合は、ライブFBページFEにリダイレクトします。
$app = 'facebook.com/pages/foobar-live';
$rd = (isset($_SERVER['HTTP_REFERER'])) ? parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) : false;
if ($rd == 'apps.facebook.com' || (!isset($_REQUEST['signed_request']))) {
echo '<script>window.parent.location = "'.$app.'";</script>';
die();
}
また、secion -webサイトでWebサイトを指定しても、Facebookログインを備えたWebサイト - >サイトURLがeg http://example.com, 、しかし、アプリドメインセクションが空で、www.example.comとしてWebサイトを開くと、このエラーも表示されます。 「App Domains」セクションでそれを回避するために、www.example.com、monthing.example.comなどのサブドメインを許可します。
Facebookアプリページで、GOTO THE BASIC TAB。 「Facebookログイン付きのWebサイト」オプションを見つけます。
サイトURLがあります:そこに入力完全なURLを置きます(たとえば http://mywebsite.com/mylogin.aspx )。これは、アプリIDが123456789の場合のように、コールで使用できるURLです
これはエラー191 Googleでの最初の質問なので、私が追加したいもの:
署名されたリクエストのために自分のサイトの代わりにFacebookにリダイレクトする場合、ユーザーがセキュアなブラウジングを持っていて、アプリがSSLなしでFacebookにリダイレクトされた場合、このエラーが発生する可能性があります。
地元で作業しています...フィードAPIを機能させることはできませんでしたが、共有APIは問題なくすぐに機能しました。
リダイレクトURLをに渡すことでこれを修正しました FacebookRedirectLoginHelper::getAccessToken()
私のコールバック関数で:
から変更
try {
$accessToken = $helper->getAccessToken();
}
...
に
try {
$accessToken = $helper->getAccessToken($fbRedirectUrl);
}
...
私は浮浪者の箱で開発しています、そしてそれは FacebookRedirectLoginHelper::getCurrentUrl()
有効なURLを生成する問題がありました。