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