دعوة مستخدم أو "مجموعة Google" أو تطبيق Google Chat إلى مساحة أو إضافتهم

يشرح هذا الدليل طريقة استخدام الطريقة create() في المورد Membership من Google Chat API لدعوة أو إضافة مستخدم أو "مجموعة Google" أو تطبيق Chat إلى مساحة تُعرَف أيضًا باسم إنشاء عضوية. عند إنشاء عضوية، إذا تم إيقاف سياسة القبول التلقائي لدى العضو المحدّد، تتم دعوته وعليه قبول دعوة المساحة قبل الانضمام. وفي حال عدم إنشاء اشتراك، تتم إضافة العميل مباشرةً إلى المساحة المحدّدة.

إذا كنت مشرفًا في Google Workspace، يمكنك إضافة مستخدمين أو تطبيقات "مجموعات Google" أو Chat إلى أي مساحة في مؤسستك على Google Workspace.

يمثّل مورد Membership ما إذا كان مستخدمًا أو تطبيق Google Chat قد تمت دعوته إلى مساحة أو كان جزءًا منها أو غير متواجد فيها.

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

Node.js

Python

Java

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

دعوة مستخدم أو إضافته إلى مساحة بصفته مستخدمًا

لدعوة مستخدم أو إضافته إلى مساحة باستخدام مصادقة المستخدم، عليك إرسال ما يلي في طلبك:

  • حدِّد نطاق تفويض chat.memberships.
  • استخدِم الطريقة CreateMembership().
  • نقْل parent كاسم المورد للمساحة التي تريد إنشاء اشتراك فيها.
  • نقْل membership كمثيل من Membership مع ضبط حقله member على ما يلي:
    • تم ضبط الحقل type على HUMAN.
    • الحقل name مضبوط على users/{user} حيث يكون {user} هو المستخدم الذي تريد إضافته إلى المساحة. لتحديد مستخدم Chat، استبدِل {user} بأي مما يلي:
      • معرّف الشخص في People API على سبيل المثال، إذا كانت قيمة People API person resourceName هي people/123456789، استخدِم القيمة users/123456789.
      • معرّف المستخدِم في Directory API.
      • عنوان البريد الإلكتروني للمستخدِم على سبيل المثال، users/[email protected] أو users/[email protected]. إذا كان المستخدم يستخدم "حساب Google" أو كان ينتمي إلى مؤسسة مختلفة على Google Workspace، عليك استخدام عنوان بريده الإلكتروني.

يضيف المثال التالي مستخدمًا إلى مساحة باستخدام مصادقة المستخدم:

Node.js

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

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

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

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    membership: {
      member: {
        // Replace USER_NAME here
        name: 'users/USER_NAME',
        // User type for the membership
        type: 'HUMAN'
      }
    }
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/create_membership_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.memberships"]

# This sample shows how to create membership with user credential for a human
# user
def create_membership_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateMembershipRequest(
        # Replace SPACE_NAME here
        parent = "spaces/SPACE_NAME",
        membership = {
            "member": {
                # Replace USER_NAME here
                "name": "users/USER_NAME",
                # user type for the membership
                "type_": "HUMAN"
            }
        }
    )

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

    # Handle the response
    print(response)

create_membership_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMembershipUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMembershipRequest;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SpaceName;
import com.google.chat.v1.User;

// This sample shows how to create membership with user credential for a human
// user.
public class CreateMembershipUserCred {

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

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateMembershipRequest.Builder request = CreateMembershipRequest.newBuilder()
        // replace SPACE_NAME here
        .setParent("spaces/SPACE_NAME")
        .setMembership(Membership.newBuilder()
          .setMember(User.newBuilder()
            // replace USER_NAME here
            .setName("users/USER_NAME")
            // user type for the membership
            .setType(User.Type.HUMAN)));
      Membership response = chatServiceClient.createMembership(request.build());

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

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create membership with user credential for a human user
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships'
 * referenced in the manifest file (appsscript.json).
 */
function createMembershipUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = 'spaces/SPACE_NAME';
  const membership = {
    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.Members.create(membership, parent);

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

لتنفيذ العيّنة، استبدِل ما يلي:

  • SPACE_NAME: المعرّف من name المساحة يمكنك الحصول على المعرّف من خلال استدعاء الوسيطة ListSpaces() أو من عنوان URL للمساحة.
  • USER_NAME: رقم تعريف مستخدم.

تعرض Chat API مثيلًا من Membership الذي يوضّح تفاصيل اشتراك المستخدم الذي تم إنشاؤه.

دعوة "مجموعة Google" أو إضافتها إلى مساحة

لدعوة "مجموعة Google" أو إضافتها إلى مساحة باستخدام مصادقة المستخدم (لا تتيح مصادقة التطبيق دعوة "مجموعة Google" أو إضافتها إلى مساحة)، يجب إدخال الخطوات التالية في طلبك:

  • حدِّد نطاق تفويض chat.memberships.
  • استخدِم الطريقة CreateMembership().
  • نقْل parent كاسم المورد للمساحة التي تريد إنشاء اشتراك فيها.
  • نقْل membership كنسخة من Membership مع ضبط الحقل name من groupMember على groups/{group} حيث يكون {group} هو رقم تعريف المجموعة التي تريد إنشاء عضوية لها. يمكن استرداد معرّف المجموعة باستخدام Cloud Identity API.

لا يمكن إضافة "مجموعات Google" إلى محادثة جماعية أو رسالة مباشرة، ولكن يمكن إضافتها فقط إلى مساحة مُسمّاة.

يضيف المثال التالي مجموعة إلى مساحة مُسمّاة باستخدام مصادقة المستخدم:

Node.js

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

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

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

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    membership: {
      groupMember: {
        // Replace GROUP_NAME here
        name: 'groups/GROUP_NAME'
      }
    }
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/create_membership_user_cred_for_group.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.memberships"]

# This sample shows how to create membership with user credential for a group
def create_membership_with_user_cred_for_group():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateMembershipRequest(
        # Replace SPACE_NAME here
        parent = "spaces/SPACE_NAME",
        membership = {
            "groupMember": {
                # Replace GROUP_NAME here
                "name": "groups/GROUP_NAME"
            }
        }
    )

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

    # Handle the response
    print(response)

create_membership_with_user_cred_for_group()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMembershipUserCredForGroup.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMembershipRequest;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SpaceName;
import com.google.chat.v1.Group;

// This sample shows how to create membership with user credential for a group.
public class CreateMembershipUserCredForGroup {

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

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateMembershipRequest.Builder request = CreateMembershipRequest.newBuilder()
        // replace SPACE_NAME here
        .setParent("spaces/SPACE_NAME")
        .setMembership(Membership.newBuilder()
          .setGroupMember(Group.newBuilder()
            // replace GROUP_NAME here
            .setName("groups/GROUP_NAME")));
      Membership response = chatServiceClient.createMembership(request.build());

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

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create membership with user credential for a group
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships'
 * referenced in the manifest file (appsscript.json).
 */
function createMembershipUserCredForGroup() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = 'spaces/SPACE_NAME';
  const membership = {
    groupMember: {
      // TODO(developer): Replace GROUP_NAME here
      name: 'groups/GROUP_NAME'
    }
  };

  // Make the request
  const response = Chat.Spaces.Members.create(membership, parent);

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

لتشغيل العيّنة، استبدِل ما يلي:

  • SPACE_NAME: المعرّف من name المساحة يمكنك الحصول على المعرّف من خلال استدعاء الوسيطة ListSpaces() أو من عنوان URL للمساحة.
  • GROUP_NAME: معرّف مجموعة

تعرض Chat API مثيلًا من Membership الذي يوضّح تفاصيل اشتراك المستخدم الذي تم إنشاؤه.

إضافة تطبيق Chat إلى مساحة

لا يمكن لتطبيق Chat إضافة تطبيق آخر كعضو في مساحة. لإضافة تطبيق Chat إلى مساحة أو رسالة مباشرة بين مستخدمَين بشريين، أرسِل ما يلي في طلبك مع مصادقة المستخدم (لا تتيح مصادقة التطبيق دعوة تطبيق Chat أو إضافته إلى مساحة):

  • حدِّد نطاق تفويض chat.memberships.app.
  • استخدِم الطريقة CreateMembership().
  • نقْل parent كاسم المورد للمساحة التي تريد إنشاء اشتراك فيها.
  • نقْل membership كمثيل من Membership مع ضبط حقله member على ما يلي:
    • تم ضبط الحقل type على BOT.
    • تم ضبط الحقل name على users/app، وهو اسم بديل يمثّل التطبيق ويُستخدَم عند memanggil Chat API.

يضيف المثال التالي تطبيق Chat إلى مساحة:

Node.js

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

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

// This sample shows how to create membership with app credential for an app
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    membership: {
      member: {
        // Member name for app membership, do not change this
        name: 'users/app',
        // User type for the membership
        type: 'BOT'
      }
    }
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/create_membership_user_cred_for_app.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.memberships.app"]

# This sample shows how to create membership with app credential for an app
def create_membership_with_user_cred_for_app():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateMembershipRequest(
        # Replace SPACE_NAME here
        parent = "spaces/SPACE_NAME",
        membership = {
            "member": {
                # member name for app membership, do not change this.
                "name": "users/app",
                # user type for the membership
                "type_": "BOT"
            }
        }
    )

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

    # Handle the response
    print(response)

create_membership_with_user_cred_for_app()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMembershipUserCredForApp.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMembershipRequest;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SpaceName;
import com.google.chat.v1.User;

// This sample shows how to create membership with user credential for the
// calling app.
public class CreateMembershipUserCredForApp {

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

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateMembershipRequest.Builder request = CreateMembershipRequest.newBuilder()
        // replace SPACE_NAME here
        .setParent("spaces/SPACE_NAME")
        .setMembership(Membership.newBuilder()
          .setMember(User.newBuilder()
            // member name for app membership, do not change this.
            .setName("users/app")
            // user type for the membership
            .setType(User.Type.BOT)));
      Membership response = chatServiceClient.createMembership(request.build());

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

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create membership with app credential for an app
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships.app'
 * referenced in the manifest file (appsscript.json).
 */
function createMembershipUserCredForApp() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = 'spaces/SPACE_NAME';
  const membership = {
    member: {
      // Member name for app membership, do not change this
      name: 'users/app',
      // User type for the membership
      type: 'BOT'
    }
  };

  // Make the request
  const response = Chat.Spaces.Members.create(membership, parent);

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

لتنفيذ العيّنة، استبدِل SPACE_NAME بمعرّف من name المساحة. يمكنك الحصول على المعرّف من خلال استدعاء الوسيطة ListSpaces() أو من عنوان URL للمساحة.

تعرض Chat API مثيلًا من Membership الذي يوضّح تفاصيل اشتراك المستخدم الذي تم إنشاؤه.

دعوة مستخدم أو إضافته إلى مساحة كتطبيق Chat

تتطلّب مصادقة التطبيق موافقة المشرف لمرة واحدة.

لدعوة مستخدم أو إضافته إلى مساحة باستخدام مصادقة التطبيق، عليك إرسال المعلومات التالية في طلبك:

  • حدِّد نطاق تفويض chat.app.memberships.
  • استخدِم طريقة create في مورد membership.
  • اضبط parent على اسم المورد للمساحة التي تريد إنشاء اشتراك فيها.
  • اضبط السمة member على users/{user} حيث يكون {user} هو المستخدم الذي تريد إنشاء عضوية له، وهو:
    • معرّف الشخص في People API على سبيل المثال، إذا كانت قيمة person resourceName في People API هي people/123456789، اضبط membership.member.name على users/123456789.
    • معرّف المستخدِم في Directory API.
    • عنوان البريد الإلكتروني للمستخدِم على سبيل المثال، users/[email protected] أو users/[email protected]. إذا كان المستخدم يستخدم حسابًا على Google أو ينتمي إلى مؤسسة مختلفة على Google Workspace، يجب استخدام عنوان بريده الإلكتروني.

إنشاء مفتاح واجهة برمجة التطبيقات

لاستدعاء طريقة واجهة برمجة التطبيقات في "معاينة المطوّر"، يجب استخدام إصدار غير متاح للجميع من "معاينة المطوّر" لمستند استكشاف واجهة برمجة التطبيقات. لمصادقة الطلب، يجب إدخال مفتاح واجهة برمجة التطبيقات.

لإنشاء مفتاح واجهة برمجة التطبيقات، افتح مشروع تطبيقك على Google Cloud واتّبِع الخطوات التالية:

  1. في وحدة تحكّم Google Cloud، انتقِل إلى رمز القائمة > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.

    الانتقال إلى "بيانات الاعتماد"

  2. انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات.
  3. يتم عرض مفتاح واجهة برمجة التطبيقات الجديد.
    • انقر على رمز النسخ لنسخ مفتاح واجهة برمجة التطبيقات لاستخدامه في رمز تطبيقك. ويمكن أيضًا العثور على مفتاح واجهة برمجة التطبيقات في قسم "مفاتيح واجهة برمجة التطبيقات" في بيانات اعتماد مشروعك.
    • انقر على تقييد المفتاح لتعديل الإعدادات المتقدّمة والحد من استخدام مفتاح واجهة برمجة التطبيقات. لمزيد من التفاصيل، يُرجى الاطّلاع على فرض قيود على مفاتيح واجهة برمجة التطبيقات.

كتابة نص برمجي يستدعي Chat API

يضيف المثال التالي مستخدمًا إلى مساحة باستخدام مصادقة التطبيق:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_app_create.py.
  2. أدرِج الرمز التالي في chat_membership_app_create.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل ما يلي:

    • API_KEY: مفتاح واجهة برمجة التطبيقات الذي أنشأته لإنشاء نقطة نهاية الخدمة لواجهة برمجة التطبيقات Chat API.

    • SPACE: اسم مساحة يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

    • USER: رقم تعريف مستخدم.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_membership_app_create.py

إضافة مستخدمين أو "مجموعات Google" إلى مساحة بصفتك مشرفًا في Google Workspace

إذا كنت مشرفًا في Google Workspace، يمكنك استخدام الطريقة create() لإضافة المستخدمين أو "مجموعات Google" أو تطبيقات Chat إلى أي مساحة في مؤسستك على Google Workspace.

لطلب هذه الطريقة بصفتك مشرف Google Workspace، عليك إجراء ما يلي:

  • عليك استدعاء الطريقة باستخدام مصادقة المستخدم، وتحديد نطاق التفويض الذي يتوافق مع استدعاء الطريقة باستخدام امتيازات المشرف.
  • في طلبك، حدِّد مَعلمة طلب البحث useAdminAccess إلى true.

لمزيد من المعلومات والأمثلة، يُرجى الاطّلاع على مقالة إدارة مساحات Google Chat بصفتك مشرفًا في Google Workspace.

القيود والاعتبارات

  • باستخدام مصادقة التطبيقات، يمكن لتطبيق Chat دعوة مستخدمين أو إضافتهم، ولكن لا يمكن تطبيقه في "مجموعات Google" أو Chat. لإضافة نفسه، يجب أن يستخدم أي تطبيق Chat مصادقة المستخدم من خلال نطاق تفويض chat.memberships.