یک فضای چت Google ایجاد کنید و اعضا اضافه کنید

این راهنما نحوه استفاده از متد setUp() را در منبع Space Google Chat API برای ایجاد فضای چت و افزودن اعضا به آن توضیح می‌دهد.

منبع Space مکانی را نشان می‌دهد که در آن افراد و برنامه‌های چت می‌توانند پیام ارسال کنند، فایل‌ها را به اشتراک بگذارند و با هم همکاری کنند. چند نوع فضا وجود دارد:

  • پیام‌های مستقیم (DM) مکالمات بین دو کاربر یا یک کاربر و یک برنامه چت هستند.
  • چت گروهی مکالمه بین سه یا چند کاربر و برنامه های چت است.
  • فضاهای نام‌گذاری شده مکان‌هایی هستند که افراد در آن پیام می‌فرستند، فایل‌ها را به اشتراک می‌گذارند و همکاری می‌کنند.

برای انجام هر یک از موارد زیر می توانید از متد setUp() استفاده کنید:

  • یک فضای نامگذاری شده با اعضای اولیه ایجاد کنید.
  • یک پیام مستقیم بین دو نفر ایجاد کنید.
  • یک پیام گروهی بین چند نفر تنظیم کنید.

هنگام تنظیم یک فضا، موارد زیر را در نظر بگیرید:

  • کاربر تماس گیرنده (تایید شده) به طور خودکار به فضا اضافه می شود، بنابراین نیازی نیست عضویت کاربر را در درخواست مشخص کنید.
  • هنگام ایجاد یک پیام مستقیم (DM)، اگر یک DM بین دو کاربر وجود داشته باشد، آن DM برگردانده می شود. در غیر این صورت یک DM ایجاد می شود.
  • هنگام ایجاد یک چت گروهی، اگر هیچ یک از عضویت های ارائه شده در درخواست با موفقیت به گپ گروهی اضافه نشود (به عنوان مثال، مشکل مجوز)، ممکن است یک چت گروهی خالی (شامل تنها کاربر تماس گیرنده) ایجاد شود.
  • نمی‌توانید فضاهایی را با پاسخ‌های رشته‌ای تنظیم کنید یا افرادی را خارج از Google Workspace خود اضافه کنید.
  • عضویت های تکراری (از جمله کاربر تماس گیرنده) ارائه شده در درخواست به جای اینکه منجر به خطای درخواست شود، فیلتر می شوند.

پیش نیازها

Node.js

پایتون

جاوا

اسکریپت برنامه ها

فضایی را تنظیم کنید

برای تنظیم فضا، موارد زیر را در درخواست خود بنویسید:

  • محدوده مجوز chat.spaces.create یا chat.spaces را مشخص کنید.
  • متد SetUpSpace() را فراخوانی کنید.
  • space به عنوان نمونه ای از Space با تمام فیلدهای لازم مانند displayName یا spaceType ارسال کنید.
  • memberships به عنوان آرایه ای از نمونه های Membership پاس کنید. برای هر نمونه:
    • users/{user} برای افزودن یک کاربر انسانی به عنوان عضو فضایی مشخص کنید، جایی که {user} یا {person_id} برای person از People API یا شناسه یک user در Directory API است. برای مثال، اگر People API person resourceName people/123456789 باشد، می‌توانید کاربر را با عضویت با users/123456789 به‌عنوان member.name .name به فضا اضافه کنید.
    • برای افزودن یک گروه به عنوان عضو فضایی، groups/{group} مشخص کنید، جایی که {group} شناسه گروهی است که می‌خواهید برای آن عضویت ایجاد کنید. شناسه گروه را می توان با استفاده از Cloud Identity API بازیابی کرد. به عنوان مثال، اگر Cloud Identity API گروهی را با نام groups/123456789 برمی گرداند، سپس membership.groupMember.name را روی groups/123456789 تنظیم کنید. Google Groups را نمی توان به یک چت گروهی یا DM اضافه کرد، بلکه فقط به یک فضای نامگذاری شده اضافه می شود.

برای ایجاد DM بین کاربر تماس گیرنده و کاربر انسانی دیگر، عضویت کاربر انسانی را در درخواست خود مشخص کنید.

برای ایجاد DM بین کاربر تماس گیرنده و برنامه تماس گیرنده، space.singleUserBotDm را روی true تنظیم کنید و هیچ عضویتی را مشخص نکنید. شما فقط می توانید از این روش برای تنظیم DM با برنامه تماس استفاده کنید. برای افزودن برنامه تماس به عنوان عضوی از یک فضا یا یک DM موجود بین دو کاربر انسانی، به ایجاد عضویت مراجعه کنید.

مثال زیر یک فضای نامگذاری شده ایجاد می کند و یک عضویت در فضا برای دو کاربر انسانی (کاربر تایید شده و یک کاربر دیگر) ایجاد می کند.

Node.js

chat/client-libraries/cloud/set-up-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 set up a named space with one initial member
// 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'
    },
    memberships: [{
      member: {
        // Replace USER_NAME here.
        name: 'users/USER_NAME',
        type: 'HUMAN'
      }
    }]
  };

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

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

main().catch(console.error);

پایتون

chat/client-libraries/cloud/set_up_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 set_up_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.SetUpSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        },
        memberships = [{
            "member": {
                # Replace USER_NAME here.
                "name": 'users/USER_NAME',
                "type_": 'HUMAN'
            }
        }]
    )

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

    # Handle the response
    print(response)

set_up_space_with_user_cred()

جاوا

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/SetUpSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SetUpSpaceRequest;
import com.google.chat.v1.Space;
import com.google.chat.v1.User;

// This sample shows how to set up a named space with one initial member with
// user credential.
public class SetUpSpaceUserCred {

  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))) {
      SetUpSpaceRequest.Builder request = SetUpSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"))
        .addAllMemberships(ImmutableList.of(Membership.newBuilder()
          .setMember(User.newBuilder()
            // Replace USER_NAME here.
            .setName("users/USER_NAME")
            .setType(User.Type.HUMAN)).build()));
      Space response = chatServiceClient.setUpSpace(request.build());

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

اسکریپت برنامه ها

chat/advanced-service/Main.gs
/**
 * This sample shows how to set up a named space with one initial member 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 setUpSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };
  const memberships = [{
    member: {
      // TODO(developer): Replace USER_NAME here
      name: 'users/USER_NAME',
      // User type for the membership
      type: 'HUMAN'
    }
  }];

  // Make the request
  const response = Chat.Spaces.setup({ space: space, memberships: memberships });

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

برای اجرای نمونه، موارد زیر را جایگزین کنید:

  • DISPLAY_NAME : نام نمایشی فضای جدید.
  • USER_NAME : شناسه کاربر دیگر که باید عضویت در آن لحاظ شود.

برای رفتن به فضا، از شناسه منبع فضا برای ساخت URL فضا استفاده کنید. می‌توانید شناسه منبع را از name فضا در بدنه پاسخ Google Chat دریافت کنید. برای مثال، اگر name فضای شما spaces/1234567 است، می‌توانید با استفاده از URL زیر به فضا بروید: https://mail.google.com/chat/u/0/#chat/space/1234567 .