יצירת מרחב משותף עם שם ב-Google Chat

במדריך הזה מוסבר איך ליצור מרחב משותף בעל שם באמצעות השיטה create() במשאב Space של Google Chat API.

מרחב משותף בעל שם (שבו spaceType הוא SPACE) הוא מקום שבו אנשים שולחים הודעות, משתפים קבצים ועובדים יחד. מרחבים משותפים עם שם יכולים לכלול אפליקציות של Chat. במרחבים משותפים עם שם יש מנהלי מרחבים משותפים שיכולים להחיל הגדרות ניהוליות, תיאורים, להוסיף או להסיר אנשים ואפליקציות.

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

אחרי שיוצרים מרחב משותף עם שם, המשתמש המאומת הוא המשתתף היחיד במרחב המשותף. כדי להוסיף משתמשים למרחב המשותף, צריך להפעיל את השיטה create() במשאב Membership לכל אדם או אפליקציה שרוצים להוסיף. לחלופין, אפשר להשתמש ב-method‏ setUp() כדי ליצור מרחב משותף בעל שם ולהוסיף אליו משתמשים בו-זמנית.

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

Node.js

Python

Java

Apps Script

יצירת מרחב משותף בעל שם כמשתמשים

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

  • מציינים את היקף ההרשאה chat.spaces.create או chat.spaces.
  • קוראים ל-method‏ CreateSpace() ומעבירים את space כמכונה של Space עם השדות הבאים:
    • spaceType הוגדרה לערך SPACE.
    • displayName מוגדר לשם המרחב המשותף שגלוי למשתמשים.
    • אפשר גם להגדיר מאפיינים אחרים, כמו:
      • spaceDetails – תיאור שגלוי למשתמשים וכללי ההתנהגות במרחב המשותף.
      • predefinedPermissionSettings – הרשאות מוגדרות מראש למרחב המשותף. לדוגמה, אפשר להגדיר שרק מנהלי המרחב המשותף או כל המשתתפים יוכלו לפרסם הודעות.

כך יוצרים מרחב משותף עם שם:

Node.js

chat/client-libraries/cloud/create-space-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces.create'];

// This sample shows how to create a named space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    space: {
      spaceType: 'SPACE',
      // Replace DISPLAY_NAME here.
      displayName: 'DISPLAY_NAME'
    }
  };

  // Make the request
  const response = await chatClient.createSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/create_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces.create"]

def create_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        }
    )

    # Make the request
    response = client.create_space(request)

    # Handle the response
    print(response)

create_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateSpaceRequest;
import com.google.chat.v1.Space;

// This sample shows how to create space with user credential.
public class CreateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces.create";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateSpaceRequest.Builder request = CreateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"));
      Space response = chatServiceClient.createSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to create space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.create'
 * referenced in the manifest file (appsscript.json).
 */
function createSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };

  // Make the request
  const response = Chat.Spaces.create(space);

  // Handle the response
  console.log(response);
}

יצירת מרחב משותף בשם כאפליקציית Chat

כדי לאמת אפליקציה, נדרש אישור אדמין חד-פעמי.

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

  • מציינים את היקף ההרשאה chat.app.spaces.create או chat.app.spaces.
  • קוראים לשיטה create במשאב Space.
  • מגדירים את spaceType לערך SPACE.
  • מגדירים את displayName לשם המרחב המשותף שגלוי למשתמשים. בדוגמה הבאה, הערך של displayName מוגדר ל-API-made.
  • מציינים את מספר הלקוח של דומיין Google Workspace באמצעות השדה customer.
  • אפשר גם להגדיר מאפיינים אחרים של המרחב המשותף, כמו spaceDetails (תיאור גלוי למשתמשים וקבוצת הנחיות למרחב המשותף).

יצירה של מפתח API

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

כדי ליצור את מפתח ה-API, פותחים את הפרויקט של האפליקציה ב-Google Cloud ומבצעים את הפעולות הבאות:

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create credentials (יצירת פרטי כניסה) > API key (מפתח API).
  3. מפתח ה-API החדש מוצג.
    • לוחצים על סמל ההעתקה כדי להעתיק את מפתח ה-API לשימוש בקוד של האפליקציה. אפשר למצוא את מפתח ה-API גם בקטע 'מפתחות API' בפרטי הכניסה של הפרויקט.
    • לוחצים על Restrict key כדי לעדכן את ההגדרות המתקדמות ולהגביל את השימוש במפתח ה-API. פרטים נוספים זמינים במאמר החלת הגבלות על מפתחות API.

כתיבת סקריפט שמפעיל את Chat API

כך יוצרים מרחב משותף עם שם:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # 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.app.spaces.create"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then creates a Chat space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().create(
    
          # Details about the space to create.
          body = {
    
            # To create a named space, set spaceType to SPACE.
            'spaceType': 'SPACE',
    
            # The user-visible name of the space.
            'displayName': 'API-made',
    
            # The customer ID of the Workspace domain.
            'customer': 'CUSTOMER'
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. בקוד, מחליפים את הפרטים הבאים:

    • API_KEY: מפתח ה-API שיצרתם כדי ליצור את נקודת הקצה של השירות ל-Chat API.

    • CUSTOMER: מזהה הלקוח של הדומיין של המרחב המשותף בפורמט customer/{customer}, כאשר {customer} הוא הערך של ID ממשאב הלקוח של Admin SDK. כדי ליצור מרחב משותף באותו ארגון ב-Google Workspace שבו נמצאת אפליקציית Chat, משתמשים ב-customers/my_customer.

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

    python3 chat_space_create_named_app.py

פתיחת המרחב המשותף ב-Google Chat

כדי לנווט למרחב המשותף, משתמשים במזהה המשאב שלו כדי ליצור את כתובת ה-URL שלו. מזהה המשאב של המרחב המשותף name מופיע בגוף התשובה ב-Google Chat. לדוגמה, אם הערך של name במרחב המשותף הוא spaces/1234567, אפשר לעבור למרחב המשותף באמצעות כתובת ה-URL הבאה: https://mail.google.com/chat/u/0/#chat/space/1234567.