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

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

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

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

پیش نیازها

Node.js

پایتون

جاوا

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

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

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

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

پایتون

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

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

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

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

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

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

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

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

پایتون

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

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

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

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

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

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

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

پایتون

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

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

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

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

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

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

یک کلید API ایجاد کنید

برای فراخوانی یک روش API پیش‌نمایش برنامه‌نویس، باید از یک نسخه پیش‌نمایش برنامه‌نویس غیرعمومی سند کشف API استفاده کنید. برای احراز هویت درخواست، باید یک کلید API ارسال کنید.

برای ایجاد کلید API، پروژه Google Cloud برنامه خود را باز کنید و کارهای زیر را انجام دهید:

  1. در کنسول Google Cloud، به منو > APIs & Services > Credentials بروید.

    به Credentials بروید

  2. روی ایجاد اعتبارنامه > کلید API کلیک کنید.
  3. کلید API جدید شما نمایش داده می شود.
    • روی Copy کلیک کنید تا کلید API خود را برای استفاده در کد برنامه خود کپی کنید. کلید API را می‌توانید در بخش «کلیدهای API» اعتبار پروژه‌تان پیدا کنید.
    • برای به‌روزرسانی تنظیمات پیشرفته و محدود کردن استفاده از کلید API، روی Restrict key کلیک کنید. برای جزئیات بیشتر، به اعمال محدودیت‌های کلید API مراجعه کنید.

اسکریپتی بنویسید که 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, 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 : کلید API که برای ساختن نقطه پایانی سرویس برای Chat API ایجاد کردید.

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

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

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

    python3 chat_membership_app_create.py

کاربران یا Google Groups را به عنوان سرپرست Google Workspace به فضا اضافه کنید

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

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

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

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

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

  • با احراز هویت برنامه ، یک برنامه گپ می‌تواند کاربران را دعوت یا اضافه کند، اما نه Google Groups یا برنامه‌های Chat. برای افزودن خود، یک برنامه Chat باید از احراز هویت کاربر با محدوده مجوز chat.memberships استفاده کند.