Google Apps Script-Kurzanleitung

In Kurzanleitungen wird erläutert, wie Sie eine Anwendung einrichten und ausführen, die eine Google Workspace API aufruft.

Bei Google Workspace-Kurzanleitungen werden einige Details des Authentifizierungs- und Autorisierungsvorgangs mithilfe der API-Clientbibliotheken verarbeitet. Wir empfehlen, die Clientbibliotheken für Ihre eigenen Anwendungen zu verwenden. In dieser Kurzanleitung wird ein vereinfachter Authentifizierungsansatz verwendet, der für eine Testumgebung geeignet ist. Für eine Produktionsumgebung sollten Sie sich mit den Informationen zur Authentifizierung und Autorisierung vertraut machen, bevor Sie die für Ihre Anwendung geeigneten Anmeldedaten auswählen.

Erstellen Sie ein Google Apps Script, das Anfragen an die Google Drive Activity API sendet.

Zielsetzungen

  • Erstellen Sie das Skript.
  • Aktivieren Sie die Google Drive Activity API.
  • Führen Sie das Beispiel aus.

Voraussetzungen

  • Ein Google-Konto
  • Zugriff auf Google Drive

Skript erstellen

  1. Rufen Sie script.google.com/create auf, um ein neues Skript zu erstellen.
  2. Ersetzen Sie den Inhalt des Skripteditors durch den folgenden Code:

drive/activity-v2/quickstart.gs
/**
 * Lists 10 activity for a Drive user.
 * @see https://developers.google.com/drive/activity/v2/reference/rest/v2/activity/query
 */
function listDriveActivity() {
  const request = {
    pageSize: 10
    // Use other parameter here if needed.
  };
  try {
    // Activity.query method is used Query past activity in Google Drive.
    const response = DriveActivity.Activity.query(request);
    const activities = response.activities;
    if (!activities || activities.length === 0) {
      console.log('No activity.');
      return;
    }
    console.log('Recent activity:');
    for (const activity of activities) {
      // get time information of activity.
      const time = getTimeInfo(activity);
      // get the action details/information
      const action = getActionInfo(activity.primaryActionDetail);
      // get the actor's details of activity
      const actors = activity.actors.map(getActorInfo);
      // get target information of activity.
      const targets = activity.targets.map(getTargetInfo);
      // print the time,actor,action and targets of drive activity.
      console.log('%s: %s, %s, %s', time, actors, action, targets);
    }
  } catch (err) {
    // TODO (developer) - Handle error from drive activity API
    console.log('Failed with an error %s', err.message);
  }
}

/**
 * @param {object} object
 * @return {string}  Returns the name of a set property in an object, or else "unknown".
 */
function getOneOf(object) {
  for (const key in object) {
    return key;
  }
  return 'unknown';
}

/**
 * @param {object} activity Activity object.
 * @return {string} Returns a time associated with an activity.
 */
function getTimeInfo(activity) {
  if ('timestamp' in activity) {
    return activity.timestamp;
  }
  if ('timeRange' in activity) {
    return activity.timeRange.endTime;
  }
  return 'unknown';
}

/**
 * @param {object} actionDetail The primary action details of the activity.
 * @return {string} Returns the type of action.
 */
function getActionInfo(actionDetail) {
  return getOneOf(actionDetail);
}

/**
 * @param {object} user The User object.
 * @return {string}  Returns user information, or the type of user if not a known user.
 */
function getUserInfo(user) {
  if ('knownUser' in user) {
    const knownUser = user.knownUser;
    const isMe = knownUser.isCurrentUser || false;
    return isMe ? 'people/me' : knownUser.personName;
  }
  return getOneOf(user);
}

/**
 * @param {object} actor The Actor object.
 * @return {string} Returns actor information, or the type of actor if not a user.
 */
function getActorInfo(actor) {
  if ('user' in actor) {
    return getUserInfo(actor.user);
  }
  return getOneOf(actor);
}

/**
 * @param {object} target The Target object.
 * @return {string} Returns the type of a target and an associated title.
 */
function getTargetInfo(target) {
  if ('driveItem' in target) {
    const title = target.driveItem.title || 'unknown';
    return 'driveItem:"' + title + '"';
  }
  if ('drive' in target) {
    const title = target.drive.title || 'unknown';
    return 'drive:"' + title + '"';
  }
  if ('fileComment' in target) {
    const parent = target.fileComment.parent || {};
    const title = parent.title || 'unknown';
    return 'fileComment:"' + title + '"';
  }
  return getOneOf(target) + ':unknown';
}

  1. Klicken Sie auf „Speichern“ .
  2. Klicken Sie auf Unbenanntes Projekt, geben Sie Kurzanleitung ein und klicken Sie auf Umbenennen.

Google Drive Activity API aktivieren

  1. Öffnen Sie das Apps Script-Projekt.
  2. Klicke auf Editor .
  3. Klicken Sie neben Dienste auf „Dienst hinzufügen“ .
  4. Wählen Sie die Drive Activity API aus und klicken Sie auf Hinzufügen.

Beispiel ausführen

Klicken Sie im Apps Script-Editor auf Ausführen.

Wenn Sie das Beispiel zum ersten Mal ausführen, werden Sie aufgefordert, den Zugriff zu autorisieren:

  1. Klicken Sie auf Berechtigungen prüfen.
  2. Wählen Sie ein Konto aus.
  3. Klicke auf Zulassen.

Das Ausführungsprotokoll des Skripts wird am unteren Rand des Fensters angezeigt.

Nächste Schritte