אימות כאפליקציית Google Chat

במדריך הזה מוסבר איך להגדיר חשבון שירות ולהשתמש בו כדי לגשת ל-Google Chat API מטעם אפליקציית Chat. קודם מוסבר איך יוצרים חשבון שירות. לאחר מכן, נסביר איך לכתוב סקריפט שמשתמש בחשבון השירות כדי לבצע אימות באמצעות Chat API ולפרסם הודעה במרחב משותף ב-Chat.

כשמבצעים אימות באמצעות חשבון שירות, כדי לקבל נתונים על מרחב משותף ב-Chat או לבצע בו פעולות, אפליקציות Chat צריכות להיות חברות במרחב המשותף. לדוגמה, כדי להציג את רשימת המשתתפים במרחב משותף או ליצור הודעה במרחב משותף, אפליקציית Chat צריכה להיות רשומה כחברה במרחב המשותף. החריג היחיד הוא כשאפליקציה ב-Chat יוצרת מרחב משותף באמצעות אימות האפליקציה. במקרה כזה, האפליקציה יוצרת את המרחב המשותף ואז הופכת אוטומטית לחבר/ה בו.

שיטות של Google Chat API שתומכות באימות אפליקציות עם היקפי הרשאה ששמותיהם מתחילים ב-https://www.googleapis.com/auth/chat.app.* מחייבות אישור אדמין חד-פעמי. שיטות של Google Chat API שתומכות בהרשאת אפליקציה עם היקף ההרשאה https://www.googleapis.com/auth/chat.bot לא מחייבות אישור נוסף. היקפי ההרשאה https://www.googleapis.com/auth/chat.app.* זמינים בתצוגה המקדימה למפתחים.

אם אפליקציית Chat צריכה לגשת לנתוני משתמשים או לבצע פעולות בשם משתמש, צריך לבצע אימות כמשתמש במקום זאת. אדמינים של דומיינים יכולים להעניק הענקת גישה ברמת הדומיין כדי לאשר לחשבון השירות של אפליקציית Chat לגשת לנתוני המשתמשים שלכם, בלי לחייב כל משתמש לתת הסכמה. למידע נוסף, ראו אימות והרשאה באמצעות הענקת גישה ברמת הדומיין.

למידע נוסף על המקרים שבהם נדרש אימות באפליקציות Chat ועל סוג האימות הנדרש, ראו סוגי האימות הנדרשים בסקירה הכללית על אימות והרשאה ב-Chat API.

דרישות מוקדמות

Java

  • JDK בגרסה 1.7 ואילך
  • הכלי לניהול חבילות Maven
  • פרויקט Maven שהוגדר. כדי לאתחל פרויקט חדש, מריצים את הפקודה הבאה בממשק שורת הפקודה:
    mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
  • אפליקציית Google Chat שמופעלות בה תכונות אינטראקטיביות. כדי ליצור אפליקציה אינטראקטיבית ל-Chat באמצעות שירות HTTP, יש להשלים את מדריך למתחילים הזה.
  • מוסיפים את אפליקציית Chat למרחב המשותף. במאמר בדיקת תכונות אינטראקטיביות באפליקציות של Google Chat מוסבר איך מוסיפים את אפליקציית Chat.

Python

Node.js

  • Node.js 14 ואילך
  • הכלי לניהול חבילות npm
  • פרויקט Node.js שהושקה בו גרסת build. כדי לאתחל פרויקט חדש, יוצרים תיקייה חדשה, עוברים אליה ומריצים את הפקודה הבאה בממשק שורת הפקודה:
    npm init
  • אפליקציית Google Chat שמופעלות בה תכונות אינטראקטיביות. כדי ליצור אפליקציה אינטראקטיבית ל-Chat באמצעות שירות HTTP, יש להשלים את מדריך למתחילים הזה.
  • מוסיפים את אפליקציית Chat למרחב המשותף. במאמר בדיקת תכונות אינטראקטיביות באפליקציות של Google Chat מוסבר איך מוסיפים את אפליקציית Chat.

Apps Script

שלב 1: יוצרים חשבון שירות במסוף Google Cloud

יוצרים חשבון שירות שאפשר להשתמש בו באפליקציית Chat כדי לגשת ל-Google APIs.

יצירה של חשבון שירות

כדי ליצור חשבון שירות:

מסוף Google Cloud

  1. במסוף Google Cloud, עוברים לתפריט > IAM & Admin > Service Accounts.

    לדף Service accounts

  2. לוחצים על Create service account.
  3. ממלאים את פרטי חשבון השירות ולוחצים על Create and continue (יצירה והמשך).
  4. אופציונלי: מקצים תפקידים לחשבון השירות כדי לתת גישה למשאבים של הפרויקט ב-Google Cloud. פרטים נוספים זמינים במאמר הענקה, שינוי וביטול גישה למשאבים.
  5. לוחצים על המשך.
  6. אופציונלי: מזינים משתמשים או קבוצות שיכולים לנהל את חשבון השירות הזה ולבצע בו פעולות. פרטים נוספים זמינים במאמר ניהול התחזות לחשבון שירות.
  7. לוחצים על סיום. כותבים את כתובת האימייל של חשבון השירות.

CLI של gcloud

  1. יוצרים את חשבון השירות:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. אופציונלי: מקצים תפקידים לחשבון השירות כדי לתת גישה למשאבים של הפרויקט ב-Google Cloud. פרטים נוספים זמינים במאמר הענקה, שינוי וביטול גישה למשאבים.

חשבון השירות מופיע בדף של חשבון השירות. בשלב הבא יוצרים מפתח פרטי לחשבון השירות.

יצירת מפתח פרטי

כדי ליצור ולהוריד מפתח פרטי לחשבון השירות:

  1. במסוף Google Cloud, עוברים לתפריט > IAM & Admin > Service Accounts.

    לדף Service accounts

  2. בוחרים את חשבון השירות.
  3. לוחצים על Keys (מפתחות) > Add key (הוספת מפתח) > Create new key (יצירת מפתח חדש).
  4. בוחרים באפשרות JSON ולוחצים על Create.

    זוג המפתחות הציבורי/הפרטי החדש נוצר ומוריד למחשב כקובץ חדש. שומרים את קובץ ה-JSON שהורדתם בתור credentials.json בספריית העבודה. הקובץ הזה הוא העותק היחיד של המפתח. מידע נוסף על אחסון המפתח באופן מאובטח זמין במאמר ניהול מפתחות של חשבונות שירות.

  5. לוחצים על סגירה.

למידע נוסף על חשבונות שירות, תוכלו לקרוא את המאמר חשבונות שירות במסמכי העזרה של IAM ב-Google Cloud.

בשלב הבא יוצרים לקוח OAuth תואם ל-Google Workspace Marketplace לחשבון השירות הזה.

לקבל אישור מהאדמין

כדי להשתמש בהיקף הרשאה שמתחיל ב-https://www.googleapis.com/auth/chat.app.*, שזמין כחלק מ-Developer Preview, צריך לקבל אישור אדמין חד-פעמי לאפליקציית Chat.

כדי להשתמש בהיקף ההרשאה https://www.googleapis.com/auth/chat.bot, לא נדרש אישור מאדמין.

כדי לקבל אישור מהאדמין, צריך להכין את חשבון השירות של אפליקציית Chat עם הפרטים הבאים:

  • לקוח OAuth תואם ל-Google Workspace Marketplace.
  • הגדרת האפליקציה ב-Google Workspace Marketplace SDK.

יצירת לקוח OAuth תואם ל-Google Workspace Marketplace

כדי ליצור לקוח OAuth תואם ל-Google Workspace Marketplace:

  1. במסוף Google Cloud, נכנסים לתפריט > IAM ואדמין > חשבונות שירות.

    לדף Service accounts

  2. לוחצים על חשבון השירות שיצרתם לאפליקציית Chat.

  3. לוחצים על הגדרות מתקדמות.

  4. לוחצים על Create Google Workspace Marketplace-compatible OAuth client.

  5. לוחצים על המשך.

תוצג הודעת אישור על כך שנוצר לקוח OAuth תואם ל-Google Workspace Marketplace.

הגדרת אפליקציית Chat ב-Google Workspace Marketplace SDK

כדי להגדיר את אפליקציית Chat ב-Google Workspace Marketplace SDK:

  1. במסוף Google Cloud, מפעילים את Google Workspace Marketplace SDK.

    הפעלת Google Workspace Marketplace SDK

  2. במסוף Google Cloud, נכנסים אל תפריט > APIs & Services > Enabled APIs & services > Google Workspace Marketplace SDK > App Configuration.

    כניסה לדף 'הגדרת אפליקציה'

  3. ממלאים את הדף 'הגדרת האפליקציה'. האופן שבו מגדירים את אפליקציית Chat תלוי בקהל היעד ובגורמים אחרים. במאמר הגדרת האפליקציה ב-Google Workspace Marketplace SDK מוסבר איך למלא את דף ההגדרות של האפליקציה. במסגרת המדריך הזה, מזינים את הפרטים הבאים:

    1. בקטע ניראות האפליקציה, בוחרים באפשרות פרטי.
    2. בקטע Installation settings (הגדרות ההתקנה), בוחרים באפשרות Individual + admin install (התקנה אישית + התקנה של אדמין).
    3. בקטע App integrations (שילובי אפליקציות), בוחרים באפשרות Chat app (אפליקציית Chat).
    4. בקטע היקפי OAuth, מזינים את כל היקפי האימות שבהם משתמשת אפליקציית Chat.

    5. בקטע פרטים למפתחים, מזינים את שם המפתח, כתובת ה-URL של אתר המפתח וכתובת האימייל של המפתח.

    6. לוחצים על שמירת הטיוטה.

קבלת אישור מהאדמין

עכשיו, אחרי שחשבון השירות מוגדר לקבל אישור מהאדמין, צריך לקבל את האישור מאדמין ב-Google Workspace שיכול להעניק אישור. לשם כך, פועלים לפי השלבים שמפורטים במאמר הגדרת הרשאה לאפליקציות של Chat.

שלב 2: התקנת ספריית הלקוח של Google ופריטים אחרים בקשרי תלות

מתקינים את ספריית הלקוח של Google ואת יחסי התלות האחרים הנדרשים לפרויקט.

Java

כדי להוסיף את ספריות הלקוח של Google ואת יחסי התלות הנדרשים האחרים לפרויקט Maven, עורכים את הקובץ pom.xml בספרייה של הפרויקט ומוסיפים את יחסי התלות הבאים:

<dependencies>
  <!-- ... existing dependencies ... -->
  <dependency>
    <groupId>com.google.apis</groupId>
    <artifactId>google-api-services-chat</artifactId>
    <version>v1-rev20230905-2.0.0</version>
  </dependency>
  <dependency>
    <groupId>com.google.auth</groupId>
    <artifactId>google-auth-library-oauth2-http</artifactId>
    <version>1.19.0</version>
  </dependency>
  <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10.1</version>
  </dependency>
</dependencies>

Python

אם עדיין לא התקנתם את ספריות הלקוח של Google ל-Python, מריצים את הפקודה הבאה בממשק שורת הפקודה:

pip3 install --upgrade google-api-python-client google-auth

Node.js

כדי להוסיף את ספריות הלקוח של Google לפרויקט Node.js, עוברים לספרייה של הפרויקט ומריצים את הפקודה הבאה בממשק שורת הפקודה:

npm install "@googleapis/chat"

Apps Script

בדוגמה הזו נעשה שימוש בספריית OAuth2 for Apps Script כדי ליצור אסימון JWT לאימות של חשבון שירות. כדי להוסיף את הספרייה לפרויקט Apps Script:

  1. בצד ימין, לוחצים על עריכה .
  2. בצד ימין, לצד ספריות, לוחצים על הוספת ספרייה .
  3. מזינים את מזהה הסקריפט 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF.
  4. לוחצים על חיפוש ואז על הוספה.

בדוגמה הזו נעשה שימוש בשירות Chat מתקדם כדי לבצע קריאה ל-Google Chat API. כדי להפעיל את השירות בפרויקט Apps Script:

  1. בצד ימין, לוחצים על עריכה .
  2. בצד ימין, לצד Services, לוחצים על Add a service .
  3. בוחרים באפשרות Google Chat API.
  4. בקטע Version, בוחרים באפשרות v1.
  5. לוחצים על הוספה.

אפשר להשתמש בכל שפה שנתמכת בספריות הלקוח שלנו.

שלב 3: כותבים סקריפט שמשתמש בחשבון השירות כדי לבצע אימות באמצעות Chat API

הקוד הבא מבצע אימות באמצעות Chat API באמצעות חשבון שירות, ולאחר מכן מפרסם הודעה במרחב משותף ב-Chat:

Java

  1. פותחים את הקובץ src/main/java/com/google/chat/app/authsample/App.java בספרייה של הפרויקט.
  2. מחליפים את התוכן ב-App.java בקוד הבא:

    package com.google.chat.app.authsample;
    
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.http.HttpRequestInitializer;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.services.chat.v1.HangoutsChat;
    import com.google.api.services.chat.v1.model.Message;
    import com.google.auth.http.HttpCredentialsAdapter;
    import com.google.auth.oauth2.GoogleCredentials;
    
    /**
     * Authenticates with Chat API using service account credentials,
     * then creates a Chat message.
     */
    public class App {
        // Specify required scopes.
        private static final String CHAT_SCOPE = "https://www.googleapis.com/auth/chat.bot";
    
        // Specify service account details.
        private static final String PRIVATE_KEY_RESOURCE_URI = "/credentials.json";
    
        public static void main( String[] args ) {
            try {
                // Run app.
                Message response = App.createChatMessage();
                // Print details about the created message.
                System.out.println(response);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        private static Message createChatMessage() throws Exception {
            // Build the Chat API client and authenticate with the service account.
            GoogleCredentials credentials = GoogleCredentials.fromStream(
                App.class.getResourceAsStream(PRIVATE_KEY_RESOURCE_URI))
                .createScoped(CHAT_SCOPE);
            HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials);
            HangoutsChat chatService = new HangoutsChat.Builder(
                GoogleNetHttpTransport.newTrustedTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .setApplicationName("auth-sample-app")
                .build();
    
            // The space to create the message in.
            //
            // Replace SPACE_NAME with a space name.
            // Obtain the space name from the spaces resource of Chat API,
            // or from a space's URL.
            String spaceName = "spaces/SPACE_NAME";
    
            // Create a Chat message.
            Message message = new Message().setText("Hello, world!");
            return chatService.spaces().messages().create(spaceName, message).execute();
        }
    }
    
  3. בקוד, מחליפים את SPACE_NAME בשם המרחב המשותף. אפשר לקבל את השם מהשיטה spaces.list ב-Chat API או מכתובת ה-URL של המרחב המשותף.

  4. יוצרים ספריית משנה חדשה בשם resources בספרייה של הפרויקט.

  5. מוודאים שקובץ המפתח הפרטי של חשבון השירות נקרא credentials.json ומעתיקים אותו לתיקיית המשנה resources.

  6. כדי להגדיר את Maven כך שיכלול את קובץ המפתח הפרטי בחבילת הפרויקט, עורכים את הקובץ pom.xml בתיקיית הפרויקט ומוסיפים את ההגדרה הבאה לקטע <build>:

    <build>
      <!-- ... existing configurations ... -->
      <resources>
        <resource>
          <directory>resources</directory>
        </resource>
      </resources>
    </build>
    
  7. כדי להגדיר את Maven כך שיכלול את יחסי התלות בחבילת הפרויקט וגם כדי להריץ את הכיתה הראשית של האפליקציה, עורכים את הקובץ pom.xml בתיקיית הפרויקט ומוסיפים את ההגדרה הבאה לקטע <plugins>:

    <plugins>
      <!-- ... existing configurations ... -->
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.google.chat.app.authsample.App</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
    

Python

  1. בספריית העבודה, יוצרים קובץ בשם chat_app_auth.py.
  2. מוסיפים את הקוד הבא ב-chat_app_auth.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    creds = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=creds)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE_NAME with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE_NAME',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    # Prints details about the created message.
    print(result)
    
  3. בקוד, מחליפים את SPACE_NAME בשם של המרחב המשותף. אפשר לקבל את השם מהשיטה spaces.list ב-Chat API או מכתובת ה-URL של המרחב המשותף. חשוב לוודא שקובץ המפתח הפרטי של חשבון השירות נקרא credentials.json.

Node.js

  1. בספרייה של הפרויקט, יוצרים קובץ בשם chat_app_auth.js.
  2. מוסיפים את הקוד הבא ב-chat_app_auth.js:

    const chat = require('@googleapis/chat');
    
    async function createMessage() {
      const auth = new chat.auth.GoogleAuth({
    
        // Specify service account details.
        keyFilename: 'credentials.json',
    
        // Specify required scopes.
        scopes: ['https://www.googleapis.com/auth/chat.bot']
    
      });
      const authClient = await auth.getClient();
    
      // Create the Chat API client and authenticate with the service account.
      const chatClient = await chat.chat({
        version: 'v1',
        auth: authClient
      });
    
      // Create a Chat message.
      const result = await chatClient.spaces.messages.create({
    
        // The space to create the message in.
        //
        // Replace SPACE_NAME with a space name.
        // Obtain the space name from the spaces resource of Chat API,
        // or from a space's URL.
        parent: 'spaces/SPACE_NAME',
    
        // The message to create.
        requestBody: { 'text': 'Hello, world!' }
    
      });
      return result;
    }
    
    // Execute function then print details about the created message.
    createMessage().then(console.log);
    
  3. בקוד, מחליפים את SPACE_NAME בשם המרחב המשותף. אפשר לקבל את השם מהשיטה spaces.list ב-Chat API או מכתובת ה-URL של המרחב המשותף. חשוב לוודא שקובץ המפתח הפרטי של חשבון השירות נקרא credentials.json.

Apps Script

  1. עורכים את הקובץ appsscript.json במסוף Apps Script ומוסיפים את היקף הרשאות ה-OAuth הנדרש לשליחת בקשות חיצוניות לקבלת אסימון ה-OAuth של חשבון השירות:

      "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request"
      ]
    
  2. שומרים את הקוד הבא בקובץ בשם ChatAppAuth.gs בפרויקט שלכם ב-Apps Script:

    // Specify the contents of the file credentials.json.
    const CREDENTIALS = CREDENTIALS;
    
    const SCOPE = 'https://www.googleapis.com/auth/chat.bot';
    
    // The space to create the message in.
    //
    // Replace SPACE_NAME with a space name.
    // Obtain the space name from the spaces resource of Chat API,
    // or from a space's URL.
    const PARENT = 'spaces/SPACE_NAME'
    
    /**
     * Authenticates with Chat API using app credentials, then posts a message.
     */
    function createMessageWithAppCredentials() {
      try {
        const service = getService_();
        if (!service.hasAccess()) {
          console.error(service.getLastError());
          return;
        }
    
        // Specify the message to create.
        const message = {'text': 'Hello world!'};
    
        // Call Chat API with a service account to create a message.
        const result = Chat.Spaces.Messages.create(
            message,
            PARENT,
            {},
            // Authenticate with the service account token.
            {'Authorization': 'Bearer ' + service.getAccessToken()});
    
        // Log details about the created message.
        console.log(result);
    
      } catch (err) {
        // TODO (developer) - Handle exception.
        console.log('Failed to create message with error %s', err.message);
      }
    }
    
    /**
     * Configures the OAuth library to authenticate with the service account.
     */
    function getService_() {
      return OAuth2.createService(CREDENTIALS.client_email)
          .setTokenUrl('https://oauth2.googleapis.com/token')
          .setPrivateKey(CREDENTIALS.private_key)
          .setIssuer(CREDENTIALS.client_email)
          .setSubject(CREDENTIALS.client_email)
          .setScope(SCOPE)
          .setPropertyStore(PropertiesService.getScriptProperties());
    }
    
  3. בקוד, מחליפים את CREDENTIALS בתוכן של הקובץ credentials.json.

  4. בקוד, מחליפים את SPACE_NAME בשם המרחב המשותף. אפשר לקבל את השם מהשיטה spaces.list ב-Chat API או מכתובת ה-URL של המרחב המשותף.

שלב 4: מריצים את הדוגמה המלאה

בספריית העבודה, יוצרים ומריצים את הדוגמה:

Java

mvn compile assembly:single
java -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar

Python

python3 chat_app_auth.py

Node.js

node chat_app_auth.js

Apps Script

פותחים את הקובץ ChatAppAuth.gs בעורך של Apps Script ולוחצים על הפעלה.

הסקריפט שולח בקשה מאומתת ל-Chat API, שמגיבה על ידי פרסום הודעה במרחב משותף ב-Chat כאפליקציה ל-Chat.

פתרון בעיות בדוגמה

בקטע הזה מתוארות בעיות נפוצות שעשויות להתרחש במהלך ניסיון להריץ את הדוגמה הזו.

אין לך הרשאה להשתמש באפליקציה הזו

כשמריצים את הסקריפט, יכול להיות שתופיע הודעת השגיאה הבאה:

<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">

הודעת השגיאה הזו מופיעה אם לאפליקציית Chat אין הרשאה ליצור הודעות ב-Chat במרחב המשותף שצוין.

כדי לפתור את השגיאה, צריך להוסיף את אפליקציית Chat למרחב המשותף ב-Chat שצוין בסקריפט.

האדמין צריך להעניק לאפליקציה את היקף ההרשאה הנדרש של OAuth לביצוע הפעולה הזו

כשמריצים את הסקריפט, יכול להיות שתופיע הודעת השגיאה הבאה:

<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}?alt=json returned "The administrator must grant the app the required OAuth authorization scope for this action.". Details: "The administrator must grant the app the required OAuth authorization scope for this action.">

הודעת השגיאה הזו מופיעה אם אדמין ב-Google Workspace עדיין לא העניק לאפליקציית Chat אישור חד-פעמי לשימוש בהיקפי הרשאה שמתחילים בשם https://www.googleapis.com/auth/chat.app.*.

כדי לפתור את השגיאה:

  • צריך לבקש מהאדמין ב-Google Workspace לאשר את אפליקציית Chat. כשמטפלים בשגיאה הזו בלוגיקה של אפליקציית Chat, כדאי לשלוח הודעה שמציינת שאפליקציית Chat זקוקה לאישור האדמין כדי לבצע את הפעולה המבוקשת, למשל: To perform this action, I need approval. <https://support.google.com/a?p=chat-app-auth|Learn more>.
  • אם השיטה של Google Chat API תומכת בהיקף ההרשאה https://www.googleapis.com/auth/chat.bot, שלא מחייב אישור של אדמין, מומלץ להשתמש בה במקום זאת. כדי לבדוק אילו היקפי הרשאה השיטה תומכת בהם, אפשר לעיין במסמכי העזרה של Google Chat API.