Zaawansowana usługa czatu

Usługa Zaawansowany Chat umożliwia korzystanie z interfejsu Google Chat API w Apps Script. Ten interfejs API umożliwia skryptom znajdowanie, tworzenie i modyfikowanie pokoi w Chat, dodawanie i usuwanie użytkowników z pokoi oraz odczytywanie i publikowanie wiadomości tekstowych, kart, załączników i reakcji.

Wymagania wstępne

Dokumentacja

Więcej informacji o tej usłudze znajdziesz w dokumentacji interfejsu Chat API. Podobnie jak wszystkie usługi zaawansowane w Apps Script, usługa Chat korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API.

Przykładowy kod

Te przykłady pokazują, jak za pomocą usługi zaawansowanej wykonywać typowe działania w interfejsie Google Chat API.

Opublikuj wiadomość z danymi logowania użytkownika

Poniższy przykład pokazuje, jak opublikować wiadomość w pokoju na czacie w imieniu użytkownika.

  1. Dodaj zakres autoryzacji chat.messages.create do pliku appsscript.json projektu Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.messages.create"
    ]
    
  2. Dodaj do kodu projektu Apps Script funkcję podobną do tej:

    advanced/chat.gs
    /**
     * Posts a new message to the specified space on behalf of the user.
     * @param {string} spaceName The resource name of the space.
     */
    function postMessageWithUserCredentials(spaceName) {
      try {
        const message = {'text': 'Hello world!'};
        Chat.Spaces.Messages.create(message, spaceName);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }

Wysyłanie wiadomości z informacjami o aplikacji

Poniższy przykład pokazuje, jak opublikować wiadomość na czacie w imieniu aplikacji. Korzystanie z zaawansowanej usługi Chat z kontem usługi nie wymaga określania zakresów autoryzacji w appsscript.json. Więcej informacji o uwierzytelnianiu za pomocą kont usługi znajdziesz w artykule Uwierzytelnianie jako aplikacja Google Chat.

advanced/chat.gs
/**
 * Posts a new message to the specified space on behalf of the app.
 * @param {string} spaceName The resource name of the space.
 */
function postMessageWithAppCredentials(spaceName) {
  try {
    // See https://developers.google.com/chat/api/guides/auth/service-accounts
    // for details on how to obtain a service account OAuth token.
    const appToken = getToken_();
    const message = {'text': 'Hello world!'};
    Chat.Spaces.Messages.create(
        message,
        spaceName,
        {},
        // Authenticate with the service account token.
        {'Authorization': 'Bearer ' + appToken});
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to create message with error %s', err.message);
  }
}

Uzyskiwanie dostępu do pokoju

Poniższy przykład pokazuje, jak uzyskać informacje o przestrzeni w Chat.

  1. Dodaj zakres autoryzacji chat.spaces.readonly do pliku appsscript.json projektu Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.readonly"
    ]
    
  2. Dodaj do kodu projektu Apps Script funkcję podobną do tej:

    advanced/chat.gs
    /**
     * Gets information about a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function getSpace(spaceName) {
      try {
        const space = Chat.Spaces.get(spaceName);
        console.log('Space display name: %s', space.displayName);
        console.log('Space type: %s', space.spaceType);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to get space with error %s', err.message);
      }
    }

Utwórz pokój

Poniższy przykład pokazuje, jak utworzyć pokój w Google Chat.

  1. Dodaj zakres autoryzacji chat.spaces.create do pliku appsscript.json projektu Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.create"
    ]
    
  2. Dodaj do kodu projektu Apps Script funkcję podobną do tej:

    advanced/chat.gs
    /**
     * Creates a new Chat space.
     */
    function createSpace() {
      try {
        const space = {'displayName': 'New Space', 'spaceType': 'SPACE'};
        Chat.Spaces.create(space);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create space with error %s', err.message);
      }
    }

Wyświetlanie listy subskrypcji

Ten przykład pokazuje, jak wyświetlić listę wszystkich użytkowników pokoju w Google Chat.

  1. Dodaj zakres autoryzacji chat.memberships.readonly do pliku appsscript.json projektu Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships.readonly"
    ]
    
  2. Dodaj do kodu projektu Apps Script funkcję podobną do tej:

    advanced/chat.gs
    /**
     * Lists all the members of a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function listMemberships(spaceName) {
      let response;
      let pageToken = null;
      try {
        do {
          response = Chat.Spaces.Members.list(spaceName, {
            pageSize: 10,
            pageToken: pageToken
          });
          if (!response.memberships || response.memberships.length === 0) {
            pageToken = response.nextPageToken;
            continue;
          }
          response.memberships.forEach((membership) => console.log(
              'Member resource name: %s (type: %s)',
              membership.name,
              membership.member.type));
          pageToken = response.nextPageToken;
        } while (pageToken);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed with error %s', err.message);
      }
    }

Rozwiązywanie problemów

Jeśli zobaczysz znak Error 400: invalid_scope z komunikatem o błędzie Some requested scopes cannot be shown, oznacza to, że w pliku appsscript.json projektu Apps Script nie określono żadnych zakresów autoryzacji. W większości przypadków Apps Script automatycznie określa zakresy, których potrzebuje skrypt, ale gdy używasz usługi zaawansowanej Google Chat, musisz ręcznie dodać zakresy autoryzacji używane przez skrypt do pliku manifestu projektu Apps Script. Zobacz Ustawianie jawnych zakresów.

Aby naprawić ten błąd, dodaj odpowiednie zakresy autoryzacji do pliku appsscript.json projektu Apps Script w ramach tablicy oauthScopes. Aby na przykład wywołać metodę spaces.messages.create , dodaj ten kod:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Limity i kwestie do rozważenia

Usługa Zaawansowany czat nie obsługuje:

Aby pobrać załącznik do wiadomości lub wywołać metodę w wersji przedpremierowej, użyj UrlFetchApp.