Tworzenie SMS-ów

Z tego artykułu dowiesz się, jak tworzyć i wysyłać SMS-y w aplikacji Google Chat. Więcej informacji o wiadomościach znajdziesz w artykule Omówienie wiadomości w Google Chat.

Wymagania wstępne

Node.js

Python

Google Apps Script

Tworzenie SMS-ów

W tej sekcji opisujemy, jak tworzyć SMS-y na 2 sposoby: przez odpowiadanie na interakcję użytkownika i asynchroniczne wywoływanie interfejsu Google Chat API.

Odpowiedz użytkownikowi

W tym przykładzie aplikacja do obsługi czatu tworzy i wysyła SMS-a za każdym razem, gdy zostanie dodana do pokoju. Więcej informacji o sprawdzonych metodach wdrażania użytkowników znajdziesz w tym artykule.

Aby wysłać SMS-a, gdy użytkownik doda Twoją aplikację do obsługi czatu do pokoju, ta aplikacja odpowiada na ADDED_TO_SPACE zdarzenie interakcji.

Aby odpowiedzieć SMS-em na zdarzenia interakcji ADDED_TO_SPACE, użyj tego kodu:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if(req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Scheduler at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

Google Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Scheduler at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

Przykładowy kod zwraca następujący komunikat tekstowy:

Przykładowy komunikat wprowadzający.

Wywoływanie interfejsu Google Chat API

Z tej sekcji dowiesz się, jak utworzyć wiadomość tekstową przez asynchroniczne wywoływanie interfejsu Google Chat API.

Asynchroniczne wywoływanie interfejsu Chat API wymaga uwierzytelniania. Gdy aplikacja Google Chat tworzy SMS-a, może użyć uwierzytelniania aplikacji (aby wysłać wiadomość jako aplikację do obsługi czatu) lub uwierzytelniania użytkownika (aby wysłać wiadomość w imieniu użytkownika). Z tej sekcji dowiesz się, jak wysyłać SMS-y przy użyciu obu metod uwierzytelniania.

Aby skonfigurować uwierzytelnianie i dowiedzieć się więcej na temat asynchronicznego tworzenia wiadomości, zapoznaj się z przewodnikiem po interfejsie Chat API.

Tworzenie SMS-ów z uwierzytelnianiem w aplikacji

Aby wysłać SMS-a z uwierzytelnianiem aplikacji:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_create_text_message_app.py.
  2. Umieść ten kod w pliku chat_create_text_message_app.py:

    from httplib2 import Http
    from oauth2client.service_account import ServiceAccountCredentials
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name(
        'credentials.json', SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http()))
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    print(result)
    
  3. W kodzie zastąp SPACE nazwą pokoju, którą możesz uzyskać za pomocą metody spaces.list() w interfejsie Chat API lub z adresu URL pokoju.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_create_text_message_app.py
    

Interfejs Chat API zwraca instancję Message, która zawiera szczegóły wysłanej wiadomości.

Tworzenie SMS-ów z uwierzytelnianiem użytkowników

Aby wysłać SMS-a z uwierzytelnianiem użytkownika:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_create_text_message_user.py.
  2. Umieść ten kod w pliku chat_create_text_message_user.py:

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then creates a text message in a Chat space.
        '''
    
        # Start with no credentials.
        creds = None
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                        'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().messages().create(
    
            # The space to create the message in.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to create.
            body={'text': 'Hello, world!'}
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W kodzie zastąp SPACE nazwą pokoju, którą możesz uzyskać za pomocą metody spaces.list() w interfejsie Chat API lub z adresu URL pokoju.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_create_text_message_user.py
    

Interfejs Chat API zwraca instancję Message, która zawiera szczegóły wysłanej wiadomości.

Rozwiązywanie problemów

Gdy aplikacja lub karta do Google Chat zwróci błąd, w interfejsie czatu pojawi się komunikat „Coś poszło nie tak” lub „Nie udało się przetworzyć żądania”. Czasami w interfejsie Google Chat nie pojawia się żaden komunikat o błędzie, ale aplikacja lub karta Google Chat zwraca nieoczekiwany wynik, np. może się nie pojawić wiadomość na karcie.

Mimo że komunikat o błędzie może nie wyświetlać się w interfejsie Google Chat, dostępne są opisowe komunikaty o błędach i dane dziennika, które pomogą Ci w rozwiązywaniu problemów pojawiających się po włączeniu rejestrowania błędów w aplikacjach do obsługi czatu. Informacje o wyświetlaniu, debugowaniu i naprawianiu błędów znajdziesz w artykule Rozwiązywanie problemów z Google Chat i ich rozwiązywanie.