Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 如何利用我的Gcloud服务帐户正确运行脚本?_Google Apps Script_Google Api_Scripting_Service Accounts - Fatal编程技术网

Google apps script 如何利用我的Gcloud服务帐户正确运行脚本?

Google apps script 如何利用我的Gcloud服务帐户正确运行脚本?,google-apps-script,google-api,scripting,service-accounts,Google Apps Script,Google Api,Scripting,Service Accounts,请原谅我的帖子马虎,这是我第一次出现堆栈溢出 我已经编写了一个GoogleAPI脚本来记录域中所有用户的姓名、电子邮件和IMAP状态。我创建了一个具有所有者权限的服务帐户,以便有权访问数据。似乎我没有配置我的服务帐户凭据以使其正常工作 我的错误消息是“ReferenceError:“OAuth2”未定义 这是我需要工作的主要代码。我可以这样做,只是我的所有者的电子邮件,但我需要循环通过所有帐户的域名 当我尝试循环浏览所有帐户时,我得到“对gmail.users.settings.getImap的

请原谅我的帖子马虎,这是我第一次出现堆栈溢出

我已经编写了一个GoogleAPI脚本来记录域中所有用户的姓名、电子邮件和IMAP状态。我创建了一个具有所有者权限的服务帐户,以便有权访问数据。似乎我没有配置我的服务帐户凭据以使其正常工作

我的错误消息是“ReferenceError:“OAuth2”未定义

这是我需要工作的主要代码。我可以这样做,只是我的所有者的电子邮件,但我需要循环通过所有帐户的域名

当我尝试循环浏览所有帐户时,我得到“对gmail.users.settings.getImap的API调用失败,错误为:拒绝委派name@example.com"


您是否将OAuth库连接到脚本?查看此repo以了解如何执行此库不是内置的,您必须将该库显式添加到脚本中。感谢您的响应!这是对OAuth错误的修复。我现在收到错误“对gmail.users.settings.getImap的API调用失败,错误为:的委派被拒绝。”user@example.com". 这是我得到的最初错误,我认为链接服务帐户可以修复它。你能告诉我是什么导致了这个错误吗?我的服务帐户仍然没有正确链接到我的代码吗?您是否已将OAuth库连接到脚本?查看此repo以了解如何执行此库不是内置的,您必须将该库显式添加到脚本中。感谢您的响应!这是对OAuth错误的修复。我现在收到错误“对gmail.users.settings.getImap的API调用失败,错误为:的委派被拒绝。”user@example.com". 这是我得到的最初错误,我认为链接服务帐户可以修复它。你能告诉我是什么导致了这个错误吗?我的服务帐户仍然没有正确链接到我的代码吗?
function listAllUsers() {
  var pageToken;
  var page;

  do {
    page = AdminDirectory.Users.list({
      domain: 'example.com',
      orderBy: 'givenName',
      maxResults: 100,
      pageToken: pageToken
    });
    var users = page.users;
    if (users) {
      for (var i = 0; i < users.length; i++) {
        var user = users[i];
        Logger.log('%s (%s)', user.name.fullName, user.primaryEmail);

 var response =
    Gmail.Users.Settings.getImap (user.primaryEmail);
Logger.log('%s', response );

      }
    } else {
      Logger.log('No users found.');
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}
var JSON = {
    "private_key": "Your Private Key",
    "client_email": "serviceacount@example.iam.gserviceaccount.com",
    "client_id": "1234567890",
    "user_email": "name@example.com"
};

function getOAuthService(user) {
    return OAuth2.createService("Service Account")
        .setTokenUrl('https://accounts.google.com/o/oauth2/token')
        .setPrivateKey(JSON.private_key)
        .setIssuer(JSON.client_email)
        .setSubject(JSON.user_email)
        .setPropertyStore(PropertiesService.getScriptProperties())
        .setParam('access_type', 'offline')
        .setScope('https://www.googleapis.com/auth/drive');
}

function getUserFiles() {
    var service = getOAuthService();
    service.reset();
    if (service.hasAccess()) {
        var url = 'https://www.googleapis.com/drive/v2/files?pageSize=1';
        var response = UrlFetchApp.fetch(url, {
            headers: {
                Authorization: 'Bearer ' + service.getAccessToken()
            }
        });
        Logger.log(response.getContentText());
    }
}

function reset() {
    var service = getOAuthService();
    service.reset();
}