یک کاربر، Google Group یا برنامه Google Chat را به یک فضا دعوت یا اضافه کنید

این راهنما نحوه استفاده از متد create() در منبع Membership از API چت گوگل را برای دعوت یا اضافه کردن یک کاربر، گروه گوگل یا برنامه چت به فضایی که به عنوان ایجاد عضویت نیز شناخته می‌شود، توضیح می‌دهد. هنگام ایجاد عضویت، اگر سیاست پذیرش خودکار عضو مشخص شده خاموش باشد، دعوت شده است و باید قبل از پیوستن، دعوت فضا را بپذیرد. در غیر این صورت، ایجاد عضویت، عضو را مستقیماً به فضای مشخص شده اضافه می‌کند.

اگر سرپرست Google Workspace هستید، می‌توانید کاربران، گروه‌های Google یا برنامه‌های چت را به هر فضایی در سازمان Google Workspace خود اضافه کنید.

منبع Membership نشان می‌دهد که آیا یک کاربر انسانی یا برنامه Google Chat به یک فضا دعوت شده، بخشی از آن است یا در آن حضور ندارد.

پیش‌نیازها

نود جی اس

پایتون

جاوا

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

دعوت یا اضافه کردن یک کاربر به یک فضا به عنوان کاربر

برای دعوت یا اضافه کردن کاربر به فضایی با احراز هویت کاربر ، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.memberships را مشخص کنید.
  • متد CreateMembership() را فراخوانی کنید.
  • نام منبع فضایی که قرار است در آن عضویت ایجاد شود را به عنوان parent وارد کنید.
  • membership به عنوان نمونه‌ای از Membership با member فیلد آن که با موارد زیر تنظیم شده است، ارسال کنید:
    • فیلد type روی HUMAN تنظیم شده است.
    • فیلد name روی users/{user} تنظیم شده است که در آن {user} شخصی است که می‌خواهید به فضا اضافه کنید. برای مشخص کردن کاربر چت ، {user} را با هر یک از موارد زیر جایگزین کنید:
      • شناسه شخص در API مربوط به افراد. برای مثال، اگر resourceName person در API مربوط به افراد people/123456789 باشد، آنگاه کاربر مقدار users/123456789 را خواهد داشت.
      • شناسه کاربر در API دایرکتوری.
      • آدرس ایمیل کاربر. برای مثال، users/222larabrown@gmail.com یا users/larabrown@cymbalgroup.com . اگر کاربر از حساب گوگل استفاده می‌کند یا به سازمان دیگری در Google Workspace تعلق دارد، باید از آدرس ایمیل او استفاده کنید.

مثال زیر یک کاربر را با احراز هویت کاربر به فضا اضافه می‌کند:

نود جی اس

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

await main();

پایتون

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

جاوا

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 : شناسه کاربری.

API چت نمونه‌ای از Membership را برمی‌گرداند که جزئیات عضویت کاربر ایجاد شده را شرح می‌دهد.

دعوت یا اضافه کردن یک گروه گوگل به یک فضا

برای دعوت یا اضافه کردن یک گروه گوگل به یک فضا با احراز هویت کاربر ( احراز هویت برنامه از دعوت یا اضافه کردن یک گروه گوگل به یک فضا پشتیبانی نمی‌کند)، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.memberships را مشخص کنید.
  • متد CreateMembership() را فراخوانی کنید.
  • نام منبع فضایی که قرار است در آن عضویت ایجاد شود را به عنوان parent وارد کنید.
  • membership به عنوان نمونه‌ای از Membership با name فیلد groupMember که روی groups/{group} تنظیم شده است، ارسال کنید، که در آن {group} شناسه گروهی است که می‌خواهید برای آن عضویت ایجاد کنید. شناسه گروه را می‌توان با استفاده از Cloud Identity API بازیابی کرد.

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

مثال زیر یک گروه را با احراز هویت کاربر به یک فضای نامگذاری شده اضافه می‌کند:

نود جی اس

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

await main();

پایتون

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

جاوا

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 : شناسه گروه.

API چت نمونه‌ای از Membership را برمی‌گرداند که جزئیات عضویت کاربر ایجاد شده را شرح می‌دهد.

یک برنامه چت به یک فضا اضافه کنید

یک برنامه چت نمی‌تواند برنامه دیگری را به عنوان عضو به یک فضا اضافه کند. برای اضافه کردن یک برنامه چت به یک فضا یا یک پیام مستقیم بین دو کاربر انسانی، موارد زیر را در درخواست خود با احراز هویت کاربر ارسال کنید ( احراز هویت برنامه از دعوت یا اضافه کردن یک برنامه چت به یک فضا پشتیبانی نمی‌کند):

  • دامنه‌ی مجوز chat.memberships.app را مشخص کنید.
  • متد CreateMembership() را فراخوانی کنید.
  • نام منبع فضایی که قرار است در آن عضویت ایجاد شود را به عنوان parent وارد کنید.
  • membership به عنوان نمونه‌ای از Membership با member فیلد آن که با موارد زیر تنظیم شده است، ارسال کنید:
    • فیلد type روی BOT تنظیم شده است.
    • فیلد name روی users/app تنظیم شده است؛ یک نام مستعار که نشان دهنده برنامه‌ای است که Chat API را فراخوانی می‌کند.

مثال زیر یک برنامه چت را به یک فضا اضافه می‌کند:

نود جی اس

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 an app membership.
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);
}

await main();

پایتون

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

جاوا

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 فضا به دست آورید.

API چت نمونه‌ای از Membership را برمی‌گرداند که جزئیات عضویت کاربر ایجاد شده را شرح می‌دهد.

دعوت یا اضافه کردن کاربر به یک فضا به عنوان یک برنامه چت

احراز هویت برنامه نیاز به تأیید یک‌باره مدیر دارد.

برای دعوت یا اضافه کردن یک کاربر به فضایی با احراز هویت برنامه ، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.app.memberships را مشخص کنید.
  • متد create را روی منبع membership فراخوانی کنید.
  • نام منبع فضایی که قرار است عضویت در آن ایجاد شود را به عنوان parent تنظیم کنید.
  • member روی users/{user} تنظیم کنید، که در آن {user} شخصی است که می‌خواهید برای او عضویت ایجاد کنید و یکی از موارد زیر است:
    • شناسه شخص در API مربوط به افراد. برای مثال، اگر resourceName person در API مربوط به افراد people/123456789 باشد، آنگاه membership.member.name روی users/123456789 تنظیم کنید.
    • شناسه کاربر در API دایرکتوری.
    • آدرس ایمیل کاربر. برای مثال، users/222larabrown@gmail.com یا users/larabrown@cymbalgroup.com . اگر کاربر از حساب گوگل استفاده می‌کند یا به سازمان دیگری در Google Workspace تعلق دارد، باید از آدرس ایمیل او استفاده کنید.

اسکریپتی بنویسید که Chat API را فراخوانی کند

مثال زیر یک کاربر را با احراز هویت برنامه به فضایی اضافه می‌کند:

پایتون

  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)
    
        # 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. در کد، موارد زیر را جایگزین کنید:

    • SPACE : نام یک فضا که می‌توانید آن را از متد spaces.list در Chat API یا از URL یک فضا به دست آورید.

    • USER : شناسه کاربری.

  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_membership_app_create.py

به عنوان مدیر Google Workspace، کاربران یا گروه‌های Google را به یک فضا اضافه کنید

اگر مدیر Google Workspace هستید، می‌توانید متد create() را برای افزودن کاربران، گروه‌های Google یا برنامه‌های چت به هر فضایی در سازمان Google Workspace خود فراخوانی کنید.

برای فراخوانی این روش به عنوان مدیر Google Workspace، موارد زیر را انجام دهید:

  • با استفاده از احراز هویت کاربر، متد را فراخوانی کنید و یک محدوده مجوز مشخص کنید که از فراخوانی متد با استفاده از امتیازات مدیر پشتیبانی کند.
  • در درخواست خود، پارامتر query useAdminAccess را برابر با true قرار دهید.

برای اطلاعات و مثال‌های بیشتر، به مدیریت فضاهای چت گوگل به عنوان مدیر فضای کاری گوگل مراجعه کنید.

محدودیت‌ها و ملاحظات

  • با احراز هویت برنامه ، یک برنامه چت می‌تواند کاربران را دعوت یا اضافه کند، اما نمی‌تواند گروه‌های گوگل یا برنامه‌های چت را اضافه کند. برای اضافه کردن خودش، یک برنامه چت باید از احراز هویت کاربر با دامنه مجوز chat.memberships استفاده کند.