77

プロジェクトを Facebook と統合しようとしています。私は最初は赤ちゃんの一歩を踏み出し、ログインしてFacebookセッションを取得し、ユーザーデータを取得しようとしています. ローカルで開発しているため、Facebook アプリケーションの設定は次のとおりです。

site URL: http://127.0.0.1:8888/mySite/

キャンバスの 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 for Websitesのチュートリアルに基づいて JavaScript SDK を追加しただけです。

私は何を間違えましたか?これは明らかに私の Facebook アプリケーションの設定に関係しているのですが、何が原因かわかりません!

4

11 に答える 11

89

更新:
API エラー コードに答えるには: 191
redirect_uri、サイト URL と同じ (または相対的) である必要があります。
ここに画像の説明を入力

ヒント: 特定のページを指す完全な URL ではなく、ベース URL を使用してください。

推奨されません:たとえばwww.mydomain.com/fb/test.html、サイト URL としてwww.mydomain.com/fb/secondPage.htmlを使用し、これを使用するredirect_uriと 191 エラーが発生します。

推奨:代わりに、サイト URL をwww.mydomain.com/ORのようなベース URL に設定しますwww.mydomain.com/fb/


今日、Facebook Python サンプル アプリケーションを試してみましたが、ローカルで開発している場合にサイト URLとして使用できることが明確に記載されていたことにショックを受けました。http://localhost:8080/

サイト URL を構成し、それを Web サーバーに向けます。ローカルで開発している場合は、 http://localhost:8080/を使用できます。

それできないと確信していましたが、私自身の経験 (非常に古いテストですが) に基づいて、実際には Facebook アプリケーションをローカルでテストできるようです!

そこで、私の古いアプリケーションを手に取り、その名前、サイト URL、およびキャンバス URL を編集しました: サイト URL:http://localhost:80/fblocal/

最新のFacebook PHP-SDKxampp/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;
    }
}

結果: 代替テキスト

于 2011-01-14T14:02:08.567 に答える
11

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

アプリ ドメインはアプリの基本設定にあります

于 2013-05-23T16:47:44.803 に答える
8

これは単に URL の誤りによるものです。

どのような Web サイト URL が指定されていても、正しい必要があります。

ウェブサイトの URL をhttp://localhost:3000/ localhost、ドメインを localhost と記載しましたが、私のブラウザではhttp://0.0.0.0:3000/.

サーバーを実行するlocalhost:3000と、問題が解決しました。

前述したように、サイト URL は Facebook の localhost として同じ URL にリダイレクトされます。実行 0.0.0.0:3000中の場合、「指定された URL はアプリケーション構成によって許可されていません」というエラーが発生します。

于 2012-04-30T08:20:09.483 に答える
2

Facebook認証方法を使用しているときにも同じ問題に直面していました。しかし、Facebook API の次の変更により、その問題を修正します ( Apps >> My App >> Basic)。

  1. ===> Facebook のアプリ(キャンバス URL)で指定した URL を削除しました
  2. ===> FacebookログインオプションのあるWebサイトでのみサイトURLを指定しました

次に、Web ページでその AppId と App Secret を指定しました。

したがって、ログインボタンをクリックすると、アクセス許可が要求され、リダイレクトされて URL ( Facebook ログインのある Web サイト) が提供されます。

于 2012-09-10T12:25:06.577 に答える
0

また、セクションでウェブサイトを指定した場合でも、Facebookログインのウェブサイト->サイトのURLを http://example.comとして指定しても、アプリドメインセクションが空で、ウェブサイトを www.example. com もこのエラーが発生します。「App Domains」セクションでこれを回避するには、example.com と記述します。これにより、www.example.com、something.example.com などのサブドメインが許可されます。

于 2012-12-05T13:42:13.823 に答える
0

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

于 2015-09-08T09:44:11.927 に答える
0

同じ問題がありました:

$params = array('redirect_uri' => 'facebook.com/pages/foobar-dev');
$facebook->getLoginUrl($params);

開発者ページからライブページにredirect_uriを変更したら、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();
}
于 2012-11-21T17:22:15.823 に答える