Alanlara kullanıcı, Google Grubu veya Google Chat uygulaması davet etme ya da ekleme

Bu kılavuzda, bir alana kullanıcı, Google grubu veya Chat uygulaması davet etmek ya da eklemek (üyelik oluşturma olarak da bilinir) için Google Chat API'nin Membership kaynağındaki create() yönteminin nasıl kullanılacağı açıklanmaktadır. Üyelik oluştururken, belirtilen üyenin otomatik kabul politikası devre dışıysa davet edilir ve katılmadan önce alan davetini kabul etmesi gerekir. Aksi takdirde, üyelik oluşturulduğunda üye doğrudan belirtilen alana eklenir.

Google Workspace yöneticisiyseniz Google Workspace kuruluşunuzdaki herhangi bir alana kullanıcı, Google Gruplar veya Chat uygulaması ekleyebilirsiniz.

Membership kaynağı, bir insan kullanıcının veya Google Chat uygulamasının alana davet edilip edilmediğini, bir kısmının olup olmadığını ya da bir alanda mevcut olup olmadığını belirtir.

Ön koşullar

Node.js

Python

Java

Apps Komut Dosyası

Bir kullanıcıyı alana kullanıcı olarak davet etme veya ekleme

Kullanıcı kimlik doğrulaması olan bir alana kullanıcı davet etmek veya eklemek için isteğinizde aşağıdakileri iletin:

  • chat.memberships yetkilendirme kapsamını belirtin.
  • CreateMembership() yöntemini çağırın.
  • Üyeliğin oluşturulacağı alanın kaynak adı olarak parent değerini iletin.
  • member alanı aşağıdaki şekilde ayarlanmış şekilde membership öğesini Membership örneği olarak iletin:
    • type alanı HUMAN olarak ayarlandı.
    • name alanı users/{user} olarak ayarlanır. Burada {user}, alana eklemek istediğiniz kullanıcıdır. Chat kullanıcısını belirtmek için {user} değerini aşağıdakilerden biriyle değiştirin:
      • People API'deki kişinin kimliği. Örneğin, People API kişi resourceName değeri people/123456789 ise users/123456789 değerini kullanın.
      • Directory API'deki kullanıcı kimliği.
      • Kullanıcının e-posta adresi. Örneğin, users/222larabrown@gmail.com veya users/larabrown@cymbalgroup.com. Kullanıcı bir Google Hesabı kullanıyorsa veya farklı bir Google Workspace kuruluşuna aitse e-posta adresini kullanmanız gerekir.

Aşağıdaki örnekte, kullanıcı kimlik doğrulaması ile bir kullanıcının alana eklenmesi gösterilmektedir:

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

Apps Komut Dosyası

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

Örneği çalıştırmak için aşağıdaki kodu değiştirin:

  • SPACE_NAME: Alanın name kimliği. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden edinebilirsiniz.
  • USER_NAME: kullanıcı kimliği.

Chat API, oluşturulan kullanıcı üyeliğini ayrıntılarıyla gösteren bir Membership örneği döndürür.

Alanlara Google grubu davet etme veya ekleme

Kullanıcı kimlik doğrulaması ile bir alana Google Grubu davet etmek veya bir Google Grubu eklemek için (Uygulama kimlik doğrulaması, bir alana Google Grubu davet etmeyi veya eklemeyi desteklemez) isteğinizde aşağıdaki bilgileri iletin:

  • chat.memberships yetkilendirme kapsamını belirtin.
  • CreateMembership() yöntemini çağırın.
  • Üyelik oluşturulacak alanın kaynak adı olarak parent değerini iletin.
  • {group} üyelik oluşturmak istediğiniz grup kimliğiyse groupMember öğesinin name alanını groups/{group} olarak ayarlayarak membership öğesini Membership örneği olarak iletin. Grup kimliği, Cloud Identity API kullanılarak alınabilir.

Google Grupları, grup sohbetine veya doğrudan mesaja değil, yalnızca adlandırılmış bir alana eklenebilir.

Aşağıdaki örnekte, kullanıcı kimlik doğrulamasıyla adlandırılmış bir alana grup eklenmektedir:

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

Apps Komut Dosyası

sohbet/gelişmiş-hizmet/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);
}

Sana Özel örneğini çalıştırmak için aşağıdakileri değiştirin:

  • SPACE_NAME: Alanın name bilgilerinden alınan kimlik. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden edinebilirsiniz.
  • GROUP_NAME: grup kimliği.

Chat API, oluşturulan kullanıcı üyeliğiyle ilgili ayrıntıların yer aldığı bir Membership örneği döndürür.

Alanlara Chat uygulaması ekleme

Chat uygulamaları, alanlara üye olarak başka bir uygulama ekleyemez. Bir alana Chat uygulaması veya iki gerçek kullanıcı arasındaki doğrudan mesaj eklemek için isteğinizde kullanıcı kimlik doğrulamasıyla aşağıdakileri iletin (Uygulama kimlik doğrulaması, bir alana Chat uygulaması davet etme veya ekleme işlemini desteklemez):

  • chat.memberships.app yetkilendirme kapsamını belirtin.
  • CreateMembership() yöntemini çağırın.
  • Üyeliğin oluşturulacağı alanın kaynak adı olarak parent değerini iletin.
  • membership öğesini, member alanı aşağıdaki şekilde ayarlanmış bir Membership örneği olarak iletin:
    • type alanı BOT olarak ayarlandı.
    • name alanı users/app olarak ayarlanmıştır; Chat API'yi çağıran uygulamayı temsil eden bir takma ad.

Aşağıdaki örnekte, bir alana Chat uygulaması eklenmektedir:

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

Apps Komut Dosyası

sohbet/gelişmiş-hizmet/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);
}

Örneği çalıştırmak için SPACE_NAME kısmını alanın name kimliğindeki kimlikle değiştirin. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden edinebilirsiniz.

Chat API, oluşturulan kullanıcı üyeliğini ayrıntılarıyla gösteren bir Membership örneği döndürür.

Bir kullanıcıyı Chat uygulaması olarak alana davet etme veya ekleme

Uygulama kimlik doğrulaması için tek seferlik yönetici onayı gerekir.

Uygulama kimlik doğrulamasıyla bir kullanıcıyı davet etmek veya bir alana eklemek için isteğinizde aşağıdakileri iletin:

  • chat.app.memberships yetkilendirme kapsamını belirtin.
  • membership kaynağında create yöntemini çağırın.
  • parent değerini, üyeliğin oluşturulacağı alanın kaynak adı olarak ayarlayın.
  • member değerini users/{user} olarak ayarlayın. {user}, üyelik oluşturmak istediğiniz kullanıcıdır ve şu durumlardan birindedir:
    • People API'deki kişinin kimliği. Örneğin, People API kişi resourceName people/123456789 ise membership.member.name users/123456789 olarak ayarlanır.
    • Directory API'deki kullanıcı kimliği.
    • Kullanıcının e-posta adresi. Örneğin, users/222larabrown@gmail.com veya users/larabrown@cymbalgroup.com. Kullanıcı bir Google Hesabı kullanıyorsa veya farklı bir Google Workspace kuruluşuna aitse e-posta adresini kullanmanız gerekir.

API anahtarı oluşturma

Geliştirici Önizlemesi API yöntemini çağırmak için API keşif belgesinin herkese açık olmayan bir geliştirici önizleme sürümünü kullanmanız gerekir. İsteğin kimliğini doğrulamak için bir API anahtarı göndermeniz gerekir.

API anahtarını oluşturmak için uygulamanızın Google Cloud projesini açıp aşağıdakileri yapın:

  1. Google Cloud Console'da Menü > API'ler ve Hizmetler > Kimlik bilgileri'ne gidin.

    Kimlik Bilgileri'ne gidin

  2. Kimlik bilgileri oluştur > API anahtarı'nı tıklayın.
  3. Yeni API anahtarınız gösterilir.
    • API anahtarınızı uygulamanızın kodunda kullanmak için Kopyala'yı seçin. API anahtarı, projenizin kimlik bilgilerindeki "API anahtarları" bölümünde de bulunabilir.
    • Gelişmiş ayarları güncellemek ve API anahtarınızın kullanımını sınırlandırmak için Anahtarı kısıtla'yı tıklayın. Daha fazla bilgi için API anahtarı kısıtlamaları uygulama bölümüne bakın.

Chat API'yi çağıran bir komut dosyası yazma

Aşağıdaki örnekte, uygulama kimlik doğrulamasıyla bir kullanıcı alana eklenmektedir:

Python

  1. Çalışma dizininizde chat_membership_app_create.py adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_membership_app_create.py bölümüne ekleyin:

    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. Kodda aşağıdakileri değiştirin:

    • API_KEY: Chat API için hizmet uç noktasını oluşturmak üzere oluşturduğunuz API anahtarı.

    • SPACE: Bir alan adı. Bu bilgiyi Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden edinebilirsiniz.

    • USER: Kullanıcı kimliği.

  4. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_membership_app_create.py

Google Workspace yöneticisi olarak bir alana kullanıcı veya Google Grupları ekleme

Google Workspace yöneticisiyseniz Google Workspace kuruluşunuzdaki herhangi bir alana kullanıcı, Google Gruplar veya Chat uygulamaları eklemek için create() yöntemini çağırabilirsiniz.

Bu yöntemi Google Workspace yöneticisi olarak çağırmak için aşağıdakileri yapın:

  • Kullanıcı kimlik doğrulamasını kullanarak yöntemi çağırın ve yöntemin yönetici ayrıcalıkları kullanılarak çağrılmasını destekleyen bir yetkilendirme kapsamı belirtin.
  • İsteğinizde useAdminAccess ile true arasındaki sorgu parametresini belirtin.

Daha fazla bilgi ve örnek için Google Chat alanlarını Google Workspace yöneticisi olarak yönetme başlıklı makaleyi inceleyin.

Sınırlamalar ve dikkat edilmesi gereken hususlar

  • Uygulama kimlik doğrulaması ile bir Chat uygulaması kullanıcıları davet edebilir veya ekleyebilir ancak Google Gruplar veya Chat uygulamalarını davet edemez. Chat uygulamasının kendisini eklemesi için chat.memberships yetkilendirme kapsamıyla kullanıcı kimlik doğrulaması kullanması gerekir.