إنشاء مساحة في Google Chat وإضافة أعضاء

يوضّح هذا الدليل كيفية استخدام طريقة setUp() في مورد Space ضمن Google Chat API لإنشاء مساحة في Chat وإضافة أعضاء إليها.

يمثّل Space المورد مكانًا يمكن فيه للمستخدمين وتطبيقات Chat إرسال الرسائل ومشاركة الملفات والتعاون. تتوفّر عدة أنواع من المساحات:

  • الرسائل المباشرة هي محادثات بين مستخدمَين أو بين مستخدم وتطبيق Chat.
  • المحادثات الجماعية هي محادثات بين ثلاثة مستخدمين أو أكثر وتطبيقات Chat.
  • المساحات المسماة هي مساحات دائمة يرسل فيها المستخدمون الرسائل ويشاركون الملفات ويتعاونون.

يمكنك استخدام طريقة setUp() لتنفيذ أيّ من الإجراءات التالية:

  • إنشاء مساحة تحمل اسمًا وتضم أعضاءً أوليين
  • إنشاء رسالة مباشرة بين شخصين
  • إعداد رسالة جماعية بين عدة مستخدمين

عند إعداد مساحة، ضَع في اعتبارك ما يلي:

  • يتم تلقائيًا إضافة المستخدم الذي يجري المكالمة (المصادق عليه) إلى المساحة، لذا لا تحتاج إلى تحديد عضوية المستخدم في الطلب.
  • عند إنشاء رسالة مباشرة، إذا كانت هناك رسالة مباشرة بين مستخدمَين، سيتم عرض الرسالة المباشرة. بخلاف ذلك، يتم إنشاء رسالة مباشرة.
  • عند إنشاء محادثة جماعية، إذا لم تتم إضافة أي من العضويات المقدَّمة في الطلب إلى المحادثة الجماعية (على سبيل المثال، مشكلة في الأذونات)، قد يتم إنشاء محادثة جماعية فارغة (تتضمّن المستخدم الذي يجري المكالمة فقط).
  • لا يمكنك إعداد مساحات تتضمّن ردودًا متسلسلة أو إضافة مستخدمين من خارج مؤسستك على Google Workspace.
  • يتم استبعاد العضويات المكررة (بما في ذلك المستخدم الذي يجري المكالمة) الواردة في الطلب بدلاً من أن تؤدي إلى حدوث خطأ في الطلب.
  • عندما يثبّت مشرف Google Workspace تطبيقًا في Chat لجميع مستخدمي مؤسسة Google Workspace، ينشئ Google Chat رسالة مباشرة بين تطبيق Chat المثبَّت وكل مستخدم في المؤسسة، لذلك لا حاجة إلى إعداد الرسائل المباشرة آليًا. بدلاً من ذلك، يمكنك استخدام list spaces لعرض جميع الرسائل المباشرة أو find a direct message للحصول على تفاصيل حول رسالة مباشرة محدّدة.

المتطلبات الأساسية

Node.js

Python

Java

برمجة التطبيقات

إعداد مساحة

لإعداد مساحة، مرِّر ما يلي في طلبك:

  • حدِّد نطاق تفويض 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 resourceName هو people/123456789، يمكنك إضافة المستخدم إلى المساحة من خلال تضمين عضوية مع users/123456789 كـ member.name.
    • حدِّد groups/{group} لإضافة مجموعة كعضو في مساحة، حيث يمثّل {group} رقم تعريف المجموعة التي تريد إنشاء عضوية لها. يمكن استرداد رقم تعريف المجموعة باستخدام Cloud Identity API. على سبيل المثال، إذا عرضت Cloud Identity API مجموعة بالاسم groups/123456789، اضبط membership.groupMember.name على groups/123456789. لا يمكن إضافة "مجموعات Google" إلى محادثة جماعية أو رسالة مباشرة، بل إلى مساحة عمل تحمل اسمًا فقط.

لإنشاء رسالة مباشرة بين المستخدم الذي يجري المكالمة ومستخدم بشري آخر، حدِّد عضوية المستخدم البشري في طلبك.

لإنشاء رسالة مباشرة بين المستخدم الذي يجري المكالمة والتطبيق الذي يجري المكالمة، اضبط قيمة space.singleUserBotDm على true ولا تحدّد أي عضويات. يمكنك استخدام هذه الطريقة فقط لإعداد رسالة مباشرة مع تطبيق الاتصال. لإضافة تطبيق الاتصال كعضو في مساحة أو رسالة مباشرة حالية بين مستخدمَين، اطّلِع على إنشاء عضوية.

ينشئ المثال التالي مساحة مسماة وعضوية واحدة في المساحة لمستخدمَين بشريَين (المستخدم الذي تمّت مصادقته ومستخدم آخر).

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);

Python

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()

Java

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.