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

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

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

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

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

  • أنشئ مساحة مُسمّاة تتضمّن الأعضاء الأوائل.
  • أنشئ رسالة مباشرة بين شخصَين.
  • إعداد رسالة جماعية بين عدة مستخدمين

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

  • تتم إضافة المستخدم المتصل (المُعتمَد) تلقائيًا إلى المساحة، لذا لست بحاجة إلى تحديد عضوية المستخدم في الطلب.
  • عند إنشاء رسالة مباشرة، إذا كانت هناك رسالة مباشرة بين مستخدمَين، يتم عرض الرسالة المباشرة. بخلاف ذلك، يتم إنشاء رسالة مباشرة.
  • عند إنشاء محادثة جماعية، إذا لم تتم إضافة أي من العضويات المقدَّمة في الطلب بنجاح إلى المحادثة الجماعية (على سبيل المثال، بسبب مشكلة في الأذونات)، قد يتم إنشاء محادثة جماعية فارغة (تتضمّن المستخدم المتصل فقط).
  • لا يمكنك إعداد مساحات تتضمّن ردودًا متسلسلة أو إضافة مستخدمين من خارج حسابك على 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 في Directory API. على سبيل المثال، إذا كان resourceName في واجهة برمجة التطبيقات People API هو 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.