0

重複の可能性:
FacebookAPIエラー191

使用しているコードで次のエラーが発生します。エラーは

APIエラーコード:191 APIエラーの説明:指定されたURLはアプリケーションによって所有されていませんエラーメッセージ:redirect_uriはアプリケーションによって所有されていません。

<?php   
$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret,'cookie' => true));
if($facebook->getUser() < 1)
{
    $red_url = $page_url.'?sk=app_'.$app_id;
    $redir = $facebook->getLoginUrl(array('redirect_uri'=>$red_url,'next'=>$red_url,'scope'=>'offline_access,publish_stream,status_update,photo_upload,user_birthday'));
    echo "<script>top.location.href='".$redir."';</script>";
    exit;
}
$user = $facebook->api('/me');

誰かがこれを回避する方法とこれが起こる理由を説明できますか?

4

3 に答える 3

0

「クロスサイトスクリプティング」と言えますか;)?

回避策:

ブラウザ、設定の編集、Webサイト<=アプリの設定にサイトのURLを追加

ここにもう少し背景があります:

* http://techblog.hybris.com/2012/06/05/oauth2-the-implicit-flow-aka-as-the-client-side-flow/

redirect_uri:サーバーは、client_idの設定と一致する必要があるredirect_uri(強くお勧めします)を構成しました。Client_idとredirect_uriはどちらも、アプリ開発者が事前に取得する必要のあるサーバー側の設定です。

于 2013-01-19T22:50:43.283 に答える
0

アプリがそのWebサイトへのアクセスを許可されていることをFacebookに通知する必要があります。

アプリの設定を編集します(FB開発者ダッシュボードを介して)。基本設定ページで、「FacebookログインのあるWebサイト」をクリックして、サイトアドレスを入力します。

FacebookアプリのWebサイトを編集する

于 2013-01-19T23:12:47.577 に答える
0

Facebookアプリケーションを開くときは、アプリケーションを実行するドメインを設定する必要があります。また、(ほぼ)アプリがFacebookと接触するすべての場所(特にクライアント側)は、同じURLからのものである必要があります。ドメイン(またはそのサブドメイン)

あなたの場合、Facebookにユーザーのアプリを承認してから$red_url、アプリがインストールされているページであると私が理解しているユーザーにリダイレクトするように指示しましたが、このリンクはアプリケーションのドメインの下にありません(facebook.comアプリとして登録した場合を除く)アプリケーションダッシュボードのドメイン

ユーザーをその特定のタブにリダイレクトする場合は、アプリケーションのドメインの下にプロキシファイルを作成して、ユーザーをタブにリダイレクトすることができます。次に例を示します。

アプリダッシュボードmydomain.comにアプリドメインとして登録したとします。次に-たとえば、次のスクリプトを含む名前のファイルを作成し、その下に配置します。redirect.phphttp://www.mydomain.com/my_directory/redirect.php

<?php
$app_id ="ENTER_YOUR_APP_ID_HERE";
$page_url = "ENTER_THE_PAGE_URL_HERE"; //for example: http://www.facebook.com/techmarketing.co.il
$red_url = $page_url.'?sk=app_'.$app_id;

header("Location: {$red_url}");

スクリプトは次のように変更されます。

<?php   
$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret,'cookie' => true));
if($facebook->getUser()==0)
{
    $red_url = "http://www.mydomain.com/my_directory/redirect.php";
    $redir = $facebook->getLoginUrl(array('redirect_uri'=>$red_url,'next'=>$red_url,'scope'=>'offline_access,publish_stream,status_update,photo_upload,user_birthday'));
    echo "<script>top.location.href='".$redir."';</script>";
    exit;
}
$user = $facebook->api('/me');
于 2013-01-19T23:31:32.240 に答える