2012-05-01 13 views
1

私はいくつかのユーザーがお金や努力に貢献する拡張機能を持っています。これらのユーザーを電子メールアドレスで識別できるようにしたいので、「ありがとうございました!」と表示できます。次回彼らは拡張をロードします。エクステンションはGoogle Chromeからユーザーの電子メールアドレスを取得できますか?

Google Chromeからユーザーの電子メールアドレスを取得する方法はありますか?

+0

なぜちょうどそれのためにそれらを聞かないWouldnを? –

+0

私は余分なユーザーのやりとりを避けようとしていましたが、ユーザーの約0.1%しか実際に寄与していないと推測しています。ユーザーの100%を入力することを躊躇しています。あなたが正しいと思うのは私の「プランB」です – scraimer

答えて

1

私は何かsimiliar自分自身をやろうとしています。私はユーザーのためにいくつかのクラウドデータを保存できるようにGoogleアカウントに基づいたIDを取得しようとしています。同じ方法でメールアドレスを取得できると思いますが、許可を承認する必要があります。成功すれば、コードを投稿します。今すぐ取得しようとしています: http://smus.com/oauth2-chrome-extensions/

私自身のgoogle apiキーとその作業。

これまでに多くの成功を収めていません。まともなドキュメントを持っている唯一の方法を実装する最後の2時間を費やし、それは機能が償却されていることを私に伝えています。結局のところ、このoauth2のやり方を試してみる必要があります。

+0

ええ、私はOAuthが基本的に解決策であることを期待していましたが、 Google Chrome拡張機能のウェブサイトの「アプリケーション用OAuth」のドキュメントでは、Google Chromeの認証を受けているかどうか、または各ユーザーの電子メールアドレスプロバイダを認証する必要があるかどうかは不明でした。 – scraimer

+0

@scraimerユーザーは別に認証する必要があるかどうかは分かりませんでしたか? – user417669

8

大丈夫、彼女が解決しました。

http://smus.com/oauth2-chrome-extensions/

しかし、すべてではない、それがそこに説明されている:このウェブサイトは基本的にそれを説明しています。したがって:

まず、APIクライアントIDとクライアントシークレットが必要です。これにより、ユーザーが詳細を使用する権限を与えることができます。次の手順では、Chromeの拡張機能で動作します方法でそれを設定します。クライアントIDを作成します

  • ゴーAPIアクセス
  • にAPIを作成

    1. GoogleのAPIコンソール
    2. 名前とロゴを付けてください。ユーザーがアプリケーションの詳細を取得する許可を求められたときに、この名前とロゴが表示されます。次
    3. 選択Webアプリケーション
    4. どれ
    5. [OK]をクリックまたは何でもそれはあるがないようにjavascriptの起源のフィールドを削除するURIを取得するには[詳細]をクリックし、http://www.google.com/robots.txt
    6. にリダイレクトURIを設定してJavaScriptの起源
    7. を許可クライアントIDとクライアントシークレットを後でコピーします。あなたのhtmlファイルと同じディレクトリにフォルダと呼ばれるのOAuth2でそれを配置する必要があります https://github.com/borismus/oauth2-extensions/tree/master/lib

    第二に、あなたは利用できるここにあるのOAuth2 JavaScriptライブラリを、必要があります。

    であなたのhtmlファイル、次のものを追加:あなたのmanifest.jsonをで

    <script type="text/javascript" src="oauth2/oauth2.js"></script> 
    <script type="text/javascript"> 
    var googleAuth = new OAuth2('google', { 
        client_id: ' $(YOUR CLIENT ID HERE) ', 
        client_secret: ' $(YOUR CLIENT SECRET HERE) ', 
        api_scope: 'https://www.googleapis.com/auth/userinfo.email' 
    }); 
    
    googleAuth.authorize(function() { 
        // We should now have googleAuth.getAccessToken() returning a valid token value for us 
        // Create an XMLHttpRequest to get the email address 
        var xhr = new XMLHttpRequest(); 
        xhr.onreadystatechange = function() { 
        if(xhr.readyState == 4) { 
         if(xhr.status == 200) { 
         var parseResult = JSON.parse(xhr.responseText); 
         // The email address is located naw: 
         var email = parseResult["email"]; 
         } 
        } 
        } 
        // Open it up as GET, POST didn't work for me for the userinfo 
        xhr.open("GET","https://www.googleapis.com/oauth2/v1/userinfo",true); 
        // Set the content & autherization 
        xhr.setRequestHeader('Content-Type', 'application/json'); 
        xhr.setRequestHeader('Authorization', "OAuth " + googleAuth.getAccessToken()); 
        xhr.send(null); 
        // Debugging stuff so we can see everything in the xhr. Do not leave this in production code 
        console.log(xhr); 
    });</script> 
    

    をあなたが必要とする:

    "パーミッションを":[ "https://accounts.google.com/o/ oauth2/token "、" https://www.googleapis。COM /のOAuth2/V1/userinfoを "]

    また、あなたが必要とするマニフェストファイルで:。

    "content_scripts": [ { 
        "matches": ["http://www.google.com/robots.txt*"], 
        "js": ["oauth2/oauth2_inject.js"], 
        "run_at": "document_start" } 
    

    かなりそれの世話をする必要があります

  • +0

    拡張機能をインストールした後にユーザーがアクセス許可を受け入れる必要があるのですか?または、拡張機能をインストールすることによってデフォルトで許可されますか? – user417669

    関連する問題