我如何设置自定义签名跨域Gmail API
How can I set custom signatures across a domain Gmail API
我想把我的Google Apps域上的所有用户的签名设置为他们的姓名和职位。通过我的研究,我发现唯一免费的方法就是使用Gmail API。我成功地获得了域名上所有用户的列表(包含所需的信息,我想设置签名的电子邮件地址,姓名,职位),只需使用https://developers.google.com/admin-sdk/directory/v1/quickstart/js的快速入门指南。
在listUsers函数的末尾,我添加了loadGmailApi代码。一旦api被加载,它就会运行一个名为setSignatures的函数。
function setSignatures() {
var request = gapi.client.gmail.users.settings.sendAs.update({
'userId': email,
'sendAsEmail': email,
'signature': '<strong style="color: rgb(230, 145, 56); font-family: arial, sans-serif; font-size: large;">' + name + '</strong>'
});
request.execute(function(resp) {
console.log(resp);
});
}
当变量"email"是我自己的时候,这个工作完美,但是当它是其他人的时候,我得到以下错误:403 Delegation denied for 'myemail'。我是一个超级管理员。
我现在发现我需要使用一个服务帐户。然后我完全按照这个指南如何获得谷歌服务帐户访问令牌javascript。唯一的区别是我使用
来授权gapi.auth.authorize({
不是gapi.analytics.auth.authorize({
因为我不需要分析API。我希望这不会造成问题。我需要的目录和gmail API。在上面链接中提供的代码的末尾,我loadDirectoryApi()并运行代码,像前面一样再次获取所有用户信息。我甚至无法设置签名,因为此时,我得到一个错误提示:401 Login Required.
所以如果我用我自己的电子邮件尝试这个,我得到一个403,当我尝试一个服务帐户时,我得到一个401。它说需要登录,我怎么登录?我认为服务帐户实际上并不登录,但我使用JWT制作访问令牌。我通过
授权gapi.auth.authorize({
'serverAuth': {'access_token': token},
'scope': 'https://www.googleapis.com/auth/admin.directory.user',
'client_id': 'myClientID'
});
我做错了什么?请帮助。我需要知道如何"登录"或使用服务帐户进行身份验证,以便我可以更新签名。
即使你是超级管理员,你也不能默认使用gmail api更改其他用户的电子邮件签名。
首先,你需要在谷歌开发控制台创建一个服务帐户,并为该帐户添加域范围授权。
之后,你去你的谷歌管理员和添加服务帐户与API控制所需的范围。
然后你需要在你的python脚本中使用这些凭据。
基本上它所做的是,它允许你冒充其他用户和更改电子邮件签名。您不需要密码,因为服务帐户具有域范围的权限。下面的链接解释了如何做到这一点。
但是链接描述了它使用PHP,但它仍然可以帮助您创建一个域范围的委托服务帐户。
https://moometric.com/integrations/gsuite/use-gmail-api-update-signatures-gsuite-users-php/- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 获取gmail-api-javascript中的主题行
- 使用gmail-api发送电子邮件错误:此api不支持解析表单编码的输入
- 如何使用google-api-javascript-client或“Contacts API版本3.0”从gmail导入
- 如何使用JavaScript从Gmail API解析JSON
- Gmail API 返回 400 个带有批处理请求的错误请求
- 使用节点.js Gmail API 发送现有草稿
- 如何在使用 Gmail API 发送新邮件后获取邮件 ID
- 节点 js 与 gmail api,API 返回错误:错误:unauthorized_client
- 使用 Gmail API 获取带有格式的邮件正文
- 尝试使用 Gmail 的 Node.js API 修改标签时出现“未添加或删除标签错误”
- 使用Gmail API发送HTML电子邮件
- 缺少草稿消息-javascript Gmail API-如何构建请求的主体
- GMail API with JS AJAX calls
- GMail API从chrome扩展访问?403禁止
- 使用gmail API chrome扩展标记gmail邮件时出现的问题
- 401(未经授权)错误使用jQuery's $.get和GMail API
- 模板显示Gmail API JSON输出在HTML中
- 如何使用Gmail的Node.js API设置收件人
- 我如何设置自定义签名跨域Gmail API