0

私はFBのAPIを使用してChromeの拡張機能を書いていますが、この単純なコード:Chromeの拡張機能:REDIRECT_URI問題

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 

    function login() 
    { 
     FB.login(handleLogin); 
    } 

    function handleLogin(response) 
    { 
     //if a user fails to log in... 
     if (!response.session) 
     { 
     document.write('Failed'); 
      return; 
     } 

     //searching users by the name of mike 
     //FB.api("https://stackoverflow.com/search?q=mike&fields=name,picture&type=user", handleSearch); 
    } 

    //the API key of the application, change it to yours 
    FB.init({ apiKey: 'c4a22dc0e8dc317cd80618bb9556e34d' }); 
</script> 

エラーで実行されることはありません

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

私はウェブサイトを持っていないも、私はウェブサイトにログインfacebookをリンクしようとしているが、私はちょうど私の友人は(連絡先のニュースを表示していました少しのウィジェットのような)を使用するため

をChromeの拡張機能を作成したいです

これを解決する方法はありますか?

+0

こんにちはPaul、Madhur、私も同様の問題があります。しかし実際の問題は、facebook oauth urlを要求した後にアクセストークンを取得する方法がないことです。トークンはブラウザによって透過的に処理される302リダイレクトURLにあり、今まで検索したものと同じように取得する方法はありません。私は、サーバー側のフローを使用するか、プロキシサーバーを使って302リダイレクトを処理し、トークンを取得するように制御することを考えています。あなたはこの種の問題を抱えていましたか? –

+0

私は、urlフラグメントがサーバーに渡されていないことに気付きました。したがって、唯一の解決策は、サーバー側フロー認証を使用することです。 –

答えて

3

これを参照してください: http://developers.facebook.com/docs/authentication/と、下部にデスクトップアプリケーションというセクションがあります。

あなたはdekstopのアプリのために、このURLを使用する必要があります。

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=https://www.facebook.com/connect/login_success.html 
+0

ありがとう、ちょっとした情報:これはアプリケーションのURLの「開発者」ページに入力する必要があるURLではありません。これは、「クライアント側の流れ」の節に記載されたURLです。 –

+0

あなたは正しいと思います... –

+0

ユーザーがFacebookからログアウトしているかどうかをどのように知っていますか? (あなたの内線内ではない)。 –

1

あなたは成功URLがサーバー上にある一つであり、あなたの拡張子がそのURLにコンテンツスクリプトを実行していています。コンテンツスクリプト内のクロムAPIを使用して、アクセストークンをどこかに保存することができます。

+0

これは唯一の選択肢のようです。ありがとう –

関連する問題