Google apps script 谷歌+;如果我的代码没有对Google的可见引用,OAuth关闭会影响我吗;?

Google apps script 谷歌+;如果我的代码没有对Google的可见引用,OAuth关闭会影响我吗;?,google-apps-script,oauth-2.0,google-api,google-plus,google-oauth,Google Apps Script,Oauth 2.0,Google Api,Google Plus,Google Oauth,我收到一封来自谷歌的电子邮件,警告我,我的谷歌应用程序脚本项目将受到即将到来的(2019年1月28日-2019年3月7日)谷歌+API关闭的影响 你好,谷歌+开发者 下面的电子邮件包含您最近使用的Google+API。注意:它包括Google+OAuth范围请求,这些请求也会受到Google+关闭的影响。之前发送给活动API调用方的电子邮件中没有包含有关OAuth请求的信息。最后一封提醒电子邮件将在2月份发送给仍有活动API或OAuth请求活动的用户 我需要知道什么? 2019年3月7日,所有G

我收到一封来自谷歌的电子邮件,警告我,我的谷歌应用程序脚本项目将受到即将到来的(2019年1月28日-2019年3月7日)谷歌+API关闭的影响

你好,谷歌+开发者

下面的电子邮件包含您最近使用的Google+API。注意:它包括Google+OAuth范围请求,这些请求也会受到Google+关闭的影响。之前发送给活动API调用方的电子邮件中没有包含有关OAuth请求的信息。最后一封提醒电子邮件将在2月份发送给仍有活动API或OAuth请求活动的用户

我需要知道什么? 2019年3月7日,所有Google+API和Google+登录将完全关闭。这将是一次渐进式关闭,API调用最早在2019年1月28日开始间歇性失败,OAuth对Google+范围的请求最早在2019年2月15日开始间歇性失败

我需要做什么? 请在2019年3月7日之前更新下面列出的项目,并确保它们不再使用Google+API或请求Google+OAuth范围。下面的数据显示了您的项目最近调用了哪些Google+API方法,以及它请求的Google+OAuth范围。 注意:如果您看到对people.get的调用,这些调用可能是在您的应用程序中使用Google+登录功能的结果,该功能现在已被完全弃用,正在关闭。开发者应该从Google+登录功能迁移到更全面的Google登录认证系统

该电子邮件明确说明了我的项目中的故障,提供了以下位置详细信息:

Project...............:My_GAS_Project_Name  
Google+ API Name......:OAuth    
Version...............:N/A
Method or OAuth Scope.:plus.me
但我认为这是一个假阳性

我使用的是OAuth API,但不是Google+API。我搜索了以下字符串;在我的代码中有“plus”和“+”,在任何地方都找不到引用*

*是的,到处都有“+”,但它们中的每一个都被视为字符串连接操作

这是项目中的OAuth功能:

function _getAuthenticationToken_() {
  // Check we have access to the service
  var service = getService();
  if (!service.hasAccess()) {
    var authorizationUrl = service.getAuthorizationUrl();
    _log_('INFO', 'Open the following URL and re-run the script: ' + authorizationUrl);
    return;
  }

  Logger.log('Passed Authentication');

  //Get the Access Token
  return service.getAccessToken();

  function getService() {
    // Create a new service with the given name. The name will be used when
    // persisting the authorized token, so ensure it is unique within the
    // scope of the property store.
    return OAuth2.createService('jlr-edw-dev-service')

    // Set the endpoint URLs, which are the same for all Google services.
    .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
    .setTokenUrl('https://accounts.google.com/o/oauth2/token')

    // Set the client ID and secret, from the Google Developers Console.
    .setClientId(CLIENT_ID)
    .setClientSecret(CLIENT_SECRET)

    // Set the name of the callback function in the script referenced
    // above that should be invoked to complete the OAuth flow.
    .setCallbackFunction('authCallback')

    // Set the property store where authorized tokens should be persisted.
    .setPropertyStore(PropertiesService.getUserProperties())

    // Set the scopes to request (space-separated for Google services).
    // this is admin access for the sqlservice and access to the cloud-platform:
    .setScope(
      'https://www.googleapis.com/auth/sqlservice.admin ' + 
      'https://www.googleapis.com/auth/cloud-platform')

    //Removed because this Should be covered by cloud-platform
    //'https://www.googleapis.com/auth/devstorage.read_write ' 

    // Below are Google-specific OAuth2 parameters.

    // Sets the login hint, which will prevent the account chooser screen
    // from being shown to users logged in with multiple accounts.
    .setParam('login_hint', Session.getActiveUser().getEmail())

    // Requests offline access.
    .setParam('access_type', 'offline')

    // Forces the approval prompt every time. This is useful for testing,
    // but not desirable in a production application.
    .setParam('approval_prompt', 'force');
  }

  function authCallback(request) {
    var cloudSQLService = getService();
    var isAuthorized = cloudSQLService.handleCallback(request);

    if (isAuthorized) {
      _log_('INFO', 'Access Approved');
      return HtmlService.createHtmlOutput('Success! You can close this tab.');
    } else {
      _log_('INFO', 'Access Denied');
      return HtmlService.createHtmlOutput('Denied. You can close this tab');
    }
  }
}
我是否应该忽略谷歌的警告,或者我是否可以检查其他任何东西来确认这些项目没有风险

我应该补充的是,这些项目是通过谷歌应用程序脚本执行API公开的,它们的功能是通过一个脚本执行的。只有以这种方式访问的项目才被标记

针对DaImTo的评论,添加了更多详细信息

在项目资源中打开的唯一库是OAuth:

Google+API和People API均已关闭:

该项目的API仪表板也不包括Google+:

更新

我想我可能知道现在发生了什么。下图显示了这些组件。

1) 这些是从用于执行Google应用程序脚本的Java程序中提取的作用域。它们包括范围“”

2) 这是scopes文档

3) 这些是授予Google应用程序脚本项目的范围。基于描述性名称,它看起来像“plus.me”已经包含在内,即“知道你在谷歌上是谁”

因此,出于某种原因,在请求访问“”时,请求被扩展为包括“”。我想这可能是因为“serinfo.email”已经被弃用了

已解决

谷歌的进一步沟通澄清了这确实是一个误报,不需要修改代码

尊敬的开发商:

本周早些时候,我们向您发送了一封与您的项目相关的电子邮件,该项目将受到Google+API关闭的影响,这也会影响对Google+OAuth范围的请求

该电子邮件列出您的一个或多个项目正在请求“plus.me”范围,因此将受到影响。我们想澄清的是,只有直接请求“plus.me”范围的项目才会受到影响。此范围可能已在某些电子邮件中列出,即使您的项目没有直接请求。对于由此造成的任何混乱,我们深表歉意

如果您直接请求“plus.me”范围、任何其他Google+OAuth范围或进行任何Google+API调用,请确保在2019年3月7日之前从项目中删除这些请求

要查看您的项目是否直接请求“plus.me”或任何其他Google+OAuth作用域,请执行以下操作:

•如果您的项目是用谷歌应用程序脚本编写的,您可以通过在应用程序脚本编辑器中查看项目属性来查看项目请求的范围

•如果您的项目不是用Google Apps脚本编写的,请检查您的代码,查看OAuth范围请求中对“plus.me”的引用。我们建议您使用支持登录或社交功能的任何第三方库查看项目,因为这些库也可能会受到关闭的影响

感谢您成为有价值的Google+开发者

真诚地, Google+API团队


我认为你应该在谷歌开发者控制台中进行检查。确保您没有在项目中启用google+api。这可能导致了假阳性


这是我唯一能想到的。即使这是一个代码问题,谷歌也无法真正访问开发人员的代码,他们也不会扫描每个脚本来发出警告

谢谢。没有明确启用Google+或People API(上面的屏幕截图)。我不希望扫描代码,但在代码中包含引用会导致库自动添加到后台配置信息中,例如appscript.json。所以我想向人们保证,我没有以这种方式引起引用。我认为谷歌比扫描人们的代码做得更好。但我可以通知团队,看看我们是否能找到你收到电子邮件的原因。