إعداد مساحة تضم الأعضاء الأوليين

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

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

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

عند إعداد مساحة، يجب مراعاة ما يلي:

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

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

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 في واجهة برمجة التطبيقات للدليل. فعلى سبيل المثال، إذا كان الشخص الذي يستخدم واجهة برمجة تطبيقات "الأشخاص" 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.