Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 从授权邮箱获取未读邮件计数_Google Apps Script_Google Admin Sdk - Fatal编程技术网

Google apps script 从授权邮箱获取未读邮件计数

Google apps script 从授权邮箱获取未读邮件计数,google-apps-script,google-admin-sdk,Google Apps Script,Google Admin Sdk,我正在寻找一种方法来找到未读邮件计数的委托邮箱从任何谷歌API的 我不确定这是否可能,但它将帮助我为一家公司开发一个帮助工具,该公司使用此工具为1000多名用户提供帮助。许多代表团正在进行中,我渴望找到一种方法来实现这一点 但我可能需要一些帮助,也许是来自了解谷歌管理SDK可能性的人 我想使用Google Apps脚本收集未读邮件计数。电子邮件设置API允许您进行以下操作 用户无法访问另一个通过IMAP授权其访问权限的用户的邮箱,因此您无法作为用户进行身份验证并检查授权邮箱 您应该使用OAuth

我正在寻找一种方法来找到未读邮件计数的委托邮箱从任何谷歌API的

我不确定这是否可能,但它将帮助我为一家公司开发一个帮助工具,该公司使用此工具为1000多名用户提供帮助。许多代表团正在进行中,我渴望找到一种方法来实现这一点

但我可能需要一些帮助,也许是来自了解谷歌管理SDK可能性的人


我想使用Google Apps脚本收集未读邮件计数。

电子邮件设置API允许您进行以下操作

用户无法访问另一个通过IMAP授权其访问权限的用户的邮箱,因此您无法作为用户进行身份验证并检查授权邮箱

您应该使用OAuth 2.0服务帐户来访问

一旦通过身份验证,您就可以选择Gmail“所有邮件”文件夹(如果您只想计入收件箱,则可以选择收件箱)。并进行一次测试以确定用户有多少未读消息

仅供参考,我的应用程序,GYB可以做到这一点。有一个问题。你也需要这样做。获取所有邮件的未读邮件数的命令如下:

gyb --email delegated-mailbox@yourcompany.com --service-account your-service@account.com --action count --search "is:unread"

电子邮件设置API允许您执行以下操作:

用户无法访问另一个通过IMAP授权其访问权限的用户的邮箱,因此您无法作为用户进行身份验证并检查授权邮箱

您应该使用OAuth 2.0服务帐户来访问

一旦通过身份验证,您就可以选择Gmail“所有邮件”文件夹(如果您只想计入收件箱,则可以选择收件箱)。并进行一次测试以确定用户有多少未读消息

仅供参考,我的应用程序,GYB可以做到这一点。有一个问题。你也需要这样做。获取所有邮件的未读邮件数的命令如下:

gyb --email delegated-mailbox@yourcompany.com --service-account your-service@account.com --action count --search "is:unread"

我从谷歌+(GooglePlus)上的天然气社区那里得到了我的答案,所以这里的海报都是我的功劳

塞尔吉: 看看这个要点,它展示了如何在GAS中进行两条腿的OAuth身份验证。

使用2条腿的Oauth,您可以访问其他用户的ATOM提要:

它的一段工作代码:

function gmail2lo(user) {
 var OAUTH_CONSUMER_SECRET = 'secret';
  var domain = 'domain'; //use the domain as key in apps panel
  var username = 'user';
  var xuser = username+'@'+domain;
  var method = "GET";
  var baseUrl = "https://mail.google.com/mail/feed/atom";

  var timestamp = Math.round(new Date().getTime() / 1000);  

  var paramsJson;
  var paramsOauth = {
    oauth_consumer_key : domain,
    oauth_nonce : timestamp,
    oauth_signature_method : "HMAC-SHA1",
    oauth_timestamp : timestamp,
    oauth_version : "1.0",
    'xoauth_requestor_id' : xuser
  };

  var paramsStringArray =  [];
  for (var k in paramsJson)
    paramsStringArray.push(k + '=' + encodeURIComponent(paramsJson[k]));

  var oauthStringArray = [];  
  for (var k in paramsOauth)
    oauthStringArray.push(k + '=' + encodeURIComponent(paramsOauth[k]));

  var paramsString = paramsStringArray.concat(oauthStringArray).sort().join('&');
  var signatureBaseString = method +"&"+ encodeURIComponent(baseUrl) +"&"+ encodeURIComponent(paramsString);
  var signatureBytes = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_1, signatureBaseString, OAUTH_CONSUMER_SECRET+'&');
  var signature = encodeURIComponent(Utilities.base64Encode(signatureBytes));

  var xoauthString = 'OAuth ' + oauthStringArray.sort().slice(0,oauthStringArray.length-1).join(", ") + ', oauth_signature=' + signature;

  var ooptions = {
    headers : {authorization: xoauthString}
  }

  url  = baseUrl;
  url += "?" + paramsStringArray.join("&") + '&xoauth_requestor_id=' + encodeURIComponent(xuser);

  var response = UrlFetchApp.fetch(url, ooptions).getContentText();

}

我从谷歌+(GooglePlus)上的天然气社区那里得到了我的答案,所以这里的海报都是我的功劳

塞尔吉: 看看这个要点,它展示了如何在GAS中进行两条腿的OAuth身份验证。

使用2条腿的Oauth,您可以访问其他用户的ATOM提要:

它的一段工作代码:

function gmail2lo(user) {
 var OAUTH_CONSUMER_SECRET = 'secret';
  var domain = 'domain'; //use the domain as key in apps panel
  var username = 'user';
  var xuser = username+'@'+domain;
  var method = "GET";
  var baseUrl = "https://mail.google.com/mail/feed/atom";

  var timestamp = Math.round(new Date().getTime() / 1000);  

  var paramsJson;
  var paramsOauth = {
    oauth_consumer_key : domain,
    oauth_nonce : timestamp,
    oauth_signature_method : "HMAC-SHA1",
    oauth_timestamp : timestamp,
    oauth_version : "1.0",
    'xoauth_requestor_id' : xuser
  };

  var paramsStringArray =  [];
  for (var k in paramsJson)
    paramsStringArray.push(k + '=' + encodeURIComponent(paramsJson[k]));

  var oauthStringArray = [];  
  for (var k in paramsOauth)
    oauthStringArray.push(k + '=' + encodeURIComponent(paramsOauth[k]));

  var paramsString = paramsStringArray.concat(oauthStringArray).sort().join('&');
  var signatureBaseString = method +"&"+ encodeURIComponent(baseUrl) +"&"+ encodeURIComponent(paramsString);
  var signatureBytes = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_1, signatureBaseString, OAUTH_CONSUMER_SECRET+'&');
  var signature = encodeURIComponent(Utilities.base64Encode(signatureBytes));

  var xoauthString = 'OAuth ' + oauthStringArray.sort().slice(0,oauthStringArray.length-1).join(", ") + ', oauth_signature=' + signature;

  var ooptions = {
    headers : {authorization: xoauthString}
  }

  url  = baseUrl;
  url += "?" + paramsStringArray.join("&") + '&xoauth_requestor_id=' + encodeURIComponent(xuser);

  var response = UrlFetchApp.fetch(url, ooptions).getContentText();

}

谢谢,这就是方向。我忘了提一件事:我想用谷歌应用程序脚本来实现它…我不知道用谷歌应用程序脚本来实现这一点的任何方法。谢谢,这就是方向。我忘了提一件事:我想用谷歌应用程序脚本来实现它…我不知道用谷歌应用程序脚本来实现这一点的任何方法。