Emp*_*yee 4 google-apps google-apps-script oauth-2.0 google-admin-sdk google-directory-api
我已经阅读了 Admin ADK Directory API 文档中的所有相关页面以及 stackoverflow 上的几个问题,但我仍然陷入困境。
我是我的 Google Apps 域的超级管理员,我希望我的域中的用户能够创建自己的 Google 网上论坛。我制作了一个 Google 表单,用户可以在其中指定群组的名称和电子邮件。然后,Google 表单响应表有一个“表单提交时”触发器,它调用我的代码来创建组。
createGroupTest()当我从脚本编辑器运行时,此代码有效。它会立即在我的 Google Apps 域中创建该组。
当“表单提交”触发器运行该函数时,此代码不起作用onFormSubmit(e)。catch(e)我收到了来自俗语的电子邮件Exception: Failed to authenticate for service: Groups。
有谁知道是什么导致 oauth 身份验证在脚本编辑器中工作,但在 onFormSubmit 函数调用时却不起作用?
function onFormSubmitTest() {
var t = new Date();
t = t.getTime();
onFormSubmit([t, "AAA Test Group " + t], ["aaa.testgroup." + t + "@mydomain.com"], ["me@mydomain.com"]);
}
var consumerKey = "mydomain.com";
var consumerSecret = "xxxxxxxxxxxxxxxxxxxxxxxx";
var domainName = "mydomain.com";
function onFormSubmit(e) {
var timestamp = e.values[0];
var groupName = e.values[1];
var groupEmail = e.values[2];
var owner = e.values[3];
owner = owner.split("@")[0];
var description = 'test';
var requestBody = {email: groupEmail, name: groupName, description: description};
var scope = "https://www.googleapis.com/auth/admin.directory.group";
var fetchArgs = googleOAuth_("Groups", scope);
fetchArgs.method = "POST";
fetchArgs.contentType = "application/json";
fetchArgs.payload = JSON.stringify(requestBody);
fetchArgs.muteHttpExceptions = true;
var url = 'https://www.googleapis.com/admin/directory/v1/groups?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
UrlFetchApp.fetch(url, fetchArgs);
}
function googleOAuth_(name,scope) {
var oAuthConfig = UrlFetchApp.addOAuthService(name)
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey(consumerKey);
oAuthConfig.setConsumerSecret(consumerSecret);
return {oAuthServiceName:name, oAuthUseToken:'always'};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2267 次 |
| 最近记录: |