Google chrome extension 我的扩展能否获得用户';谷歌浏览器的电子邮件地址?

Google chrome extension 我的扩展能否获得用户';谷歌浏览器的电子邮件地址?,google-chrome-extension,Google Chrome Extension,我有一个扩展,一些用户为此付出了金钱或努力。我希望能够通过这些用户的电子邮件地址来识别他们,这样我就可以在他们下次加载扩展时显示“谢谢!” 有没有办法从Google Chrome获取用户的电子邮件地址?我自己也在尝试做类似的事情。我正试图获得一个基于他们谷歌账户的ID,这样我就可以为用户存储一些云数据。我相信你可以通过同样的方法获得电子邮件地址,但他们必须批准权限。如果我成功了,我会发布代码。现在,我正试图得到: 使用我自己的谷歌api密钥和那个 到目前为止没有多少成功。在过去的两个小时里,我

我有一个扩展,一些用户为此付出了金钱或努力。我希望能够通过这些用户的电子邮件地址来识别他们,这样我就可以在他们下次加载扩展时显示“谢谢!”


有没有办法从Google Chrome获取用户的电子邮件地址?

我自己也在尝试做类似的事情。我正试图获得一个基于他们谷歌账户的ID,这样我就可以为用户存储一些云数据。我相信你可以通过同样的方法获得电子邮件地址,但他们必须批准权限。如果我成功了,我会发布代码。现在,我正试图得到:

使用我自己的谷歌api密钥和那个


到目前为止没有多少成功。在过去的两个小时里,我实现了唯一一个有不错文档的方法,它告诉我这个特性被贬低了。也许得试着让这个oauth2废话发挥作用。

我自己也在尝试做类似的事情。我正试图获得一个基于他们谷歌账户的ID,这样我就可以为用户存储一些云数据。我相信你可以通过同样的方法获得电子邮件地址,但他们必须批准权限。如果我成功了,我会发布代码。现在,我正试图得到:

使用我自己的谷歌api密钥和那个


到目前为止没有多少成功。在过去的两个小时里,我实现了唯一一个有不错文档的方法,它告诉我这个特性被贬低了。也许得试着让这个oauth2废话起作用。

好了,把她解决了。本网站主要介绍:

但并不是所有这些都在这里解释。因此:

首先,您需要一个API客户机ID和客户机机密,以便用户授权您使用其详细信息。以下步骤将以一种与chrome扩展一起工作的方式进行设置:

  • 谷歌API控制台
  • 创建一个API
  • 转到API访问
  • 创建客户端ID
  • 给它一个名称和一个徽标,当用户被要求获得您的应用程序检索其详细信息的权限时,将显示此名称和徽标。下一个
  • 选择Web应用程序
  • 单击“更多”以获取URI和授权的javascript来源
  • 将重定向URI设置为
  • 删除javascript源字段,使其不存在
  • 单击OK(确定)或其他选项,将客户端ID和客户端密码复制出来以备将来使用 其次,您需要oauth2 javascript库,该库可在以下位置获得:

    您需要将其放入名为oauth2的文件夹中,该文件夹与html文件位于同一目录中

    在html文件中添加以下内容:

    <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>
    

    这应该可以解决问题

    好了,把她解决了。本网站主要介绍:

    但并不是所有这些都在这里解释。因此:

    首先,您需要一个API客户机ID和客户机机密,以便用户授权您使用其详细信息。以下步骤将以一种与chrome扩展一起工作的方式进行设置:

  • 谷歌API控制台
  • 创建一个API
  • 转到API访问
  • 创建客户端ID
  • 给它一个名称和一个徽标,当用户被要求获得您的应用程序检索其详细信息的权限时,将显示此名称和徽标。下一个
  • 选择Web应用程序
  • 单击“更多”以获取URI和授权的javascript来源
  • 将重定向URI设置为
  • 删除javascript源字段,使其不存在
  • 单击OK(确定)或其他选项,将客户端ID和客户端密码复制出来以备将来使用 其次,您需要oauth2 javascript库,该库可在以下位置获得:

    您需要将其放入名为oauth2的文件夹中,该文件夹与html文件位于同一目录中

    在html文件中添加以下内容:

    <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>
    

    这应该可以解决问题

    为什么不直接向他们要呢?这难道不是一个很好的方法吗?我试图避免额外的用户交互。我估计只有大约0.1%的用户真正贡献了。我很犹豫是否要求100%的用户输入他们的电子邮件,只是为了发现这不相关。但你是对的——这是我的“B计划”。为什么不直接向他们要呢?这难道不是一个很好的方法吗?我试图避免额外的用户交互。我估计只有大约0.1%的用户真正贡献了。我很犹豫是否要求100%的用户输入他们的电子邮件,只是为了发现这不相关。但你是对的——这是我的“B计划”。是的,我希望OAuth基本上是解决方案;但是通过阅读Google Chrome Extensions网站上“OAuth for applications”的文档,不清楚我是要针对Google Chrome进行身份验证,还是必须针对每个用户的电子邮件地址提供程序进行身份验证。@scraimer你知道用户是否必须单独进行身份验证吗?是的,我希望OAuth基本上是解决方案;但是从Google Chrome Extensions网站上“OAuth for applications”的文档来看,不清楚我是否会对Google Chrome进行身份验证,或者,我必须根据每个用户的电子邮件地址提供程序进行身份验证。@scraimer您是否知道用户是否必须单独进行身份验证?那么,用户在安装扩展后是否需要接受权限,或者他们在默认情况下通过安装扩展来接受权限?但是如果我不使用js库呢?我的意思是,我们确实有身份oauth步骤,,。。。这里:我说得对吗?我们也可以使用它来进行后期授权吗?那么用户在安装扩展后是否需要接受权限,或者他们在默认情况下通过安装扩展来接受权限?但是如果我不使用js库呢?我的意思是,我们确实有身份oauth步骤,,。。。这里:我说得对吗?我们可以做p吗