質問

プロジェクトを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と等しい(または相対)する必要があります。
enter image description here

ヒント: 特定のページを指す完全な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/ そして、エラーはなくなりました しかし アプリケーションを削除する必要がありました プライバシー設定)そして私のアプリケーションを再インストールすると、ここに結果があります。
alt text

その後、を求めました 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;
    }
}

結果:alt text

他のヒント

私にとって、それは不足しているアプリドメインでした。アプリに移動し、アプリドメインとしてサイトのルートが設定されていることを確認してください。スクリーンショットを参照してください。

app domains is in the basic settings of your app

これは、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).

  1. ===>に与えたURLを削除しました Facebookのアプリ (キャンバスURL)
  2. ===>のみサイト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です

https://graph.facebook.com/oauth/authorize?client_id=123456789&redirect_uri=http://mywebsite/mylogin.aspx&scope=publish_actions

これはエラー191 Googleでの最初の質問なので、私が追加したいもの:

署名されたリクエストのために自分のサイトの代わりにFacebookにリダイレクトする場合、ユーザーがセキュアなブラウジングを持っていて、アプリがSSLなしでFacebookにリダイレクトされた場合、このエラーが発生する可能性があります。

地元で作業しています...フィードAPIを機能させることはできませんでしたが、共有APIは問題なくすぐに機能しました。

リダイレクトURLをに渡すことでこれを修正しました FacebookRedirectLoginHelper::getAccessToken() 私のコールバック関数で:

から変更

try {
        $accessToken = $helper->getAccessToken();
}
...

try {
        $accessToken = $helper->getAccessToken($fbRedirectUrl);
}
...

私は浮浪者の箱で開発しています、そしてそれは FacebookRedirectLoginHelper::getCurrentUrl() 有効なURLを生成する問題がありました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top