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

Bu kılavuzda, Google Chat API'nin Membership kaynağındaki create() yöntemini kullanarak bir kullanıcıyı, Google Grubu'nu veya Chat uygulamasını alana davet etme ya da ekleme (üyelik oluşturma) açıklanmaktadır. Üyelik oluştururken belirtilen üyenin otomatik kabul etme politikası devre dışıysa bu üye 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 Grubu veya Chat uygulaması ekleyebilirsiniz.

Membership resource bir kullanıcının veya Google Chat uygulamasının bir alana davet edilip edilmediğini, alanda bulunup bulunmadığını ya da alanda bulunmadığını gösterir.

Ö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.
  • Üyelik oluşturulacak alanın kaynak adı olarak parent değerini iletin.
  • membership öğesini, Membership örneği olarak iletin.
      member alanını aşağıdaki değerlerle ayarlayın:
    • type alanı HUMAN olarak ayarlanır.
    • name alanı users/{user} olarak ayarlanır. Burada {user}, alana eklemek istediğiniz kişidir. Chat kullanıcısını belirtmek için {user} yerine aşağıdakilerden herhangi birini kullanın:
      • People API'deki kişinin kimliği. Örneğin, People API person resourceName people/123456789 ise users/123456789 değerini kullanın.
      • Directory API'deki kullanıcının kimliği.
      • Kullanıcının e-posta adresi. Örneğin, users/222larabrown@gmail.com veya users/larabrown@cymbalgroup.com. Kullanıcı Google Hesabı kullanıyorsa veya farklı bir Google Workspace kuruluşuna aitse kullanıcının e-posta adresini kullanmanız gerekir.

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

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

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

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

Alana Google Grubu davet etme veya ekleme

Kullanıcı kimlik doğrulaması olan bir alana Google Grubu davet etmek veya eklemek için (Uygulama kimlik doğrulaması, Google Grubu'nun alana davet edilmesini veya eklenmesini desteklemez) isteğinizde aşağıdakileri 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.
  • membership öğesini Membership örneği olarak iletin. {group}, üyelik oluşturmak istediğiniz grup kimliğidir. groupMember alanının name değeri groups/{group} olarak ayarlanmalıdır. Grubun 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ı

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

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

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

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

Alana Chat uygulaması ekleme

Bir Chat uygulaması, başka bir uygulamayı alana üye olarak ekleyemez. Bir alana veya iki kullanıcı arasındaki doğrudan mesaja Chat uygulaması eklemek için isteğinizde kullanıcı kimlik doğrulaması ile birlikte aşağıdakileri iletin (Uygulama kimlik doğrulaması, Chat uygulamasının bir alana davet edilmesini veya eklenmesini desteklemez):

  • chat.memberships.app yetkilendirme kapsamını belirtin.
  • CreateMembership() yöntemini çağırın.
  • Üyelik oluşturulacak alanın kaynak adı olarak parent değerini iletin.
  • membership öğesini, Membership örneği olarak iletin.
      member alanını aşağıdaki değerlerle ayarlayın:
    • type alanı BOT olarak ayarlanır.
    • name alanı users/app olarak ayarlanı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ı

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

Örneği çalıştırmak için SPACE_NAME yerine alanın name kimliğini girin. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.

Chat API, oluşturulan kullanıcı üyeliğini ayrıntılandıran 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ı olan bir alana kullanıcı davet etmek veya 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. Burada {user}, üyelik oluşturmak istediğiniz kişidir ve şunlardan biri olmalıdır:
    • People API'deki kişinin kimliği. Örneğin, People API person resourceName people/123456789 ise membership.member.name değerini users/123456789 olarak ayarlayın.
    • Directory API'deki kullanıcının 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 kullanıcının e-posta adresini kullanmanız gerekir.

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

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

Python

  1. Çalışma dizininizde chat_membership_app_create.py adlı bir dosya oluşturun.
  2. chat_membership_app_create.py'ya aşağıdaki kodu 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)
    
        # 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. Koddaki aşağıdaki yerleri değiştirin:

    • SPACE: Chat API'deki spaces.list yöntemiyle veya bir alanın URL'sinden alabileceğiniz bir alan adı.

    • USER: Kullanıcı kimliği.

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

    python3 chat_membership_app_create.py

Google Workspace yöneticisi olarak alanlara kullanıcı veya Google Grubu ekleme

Google Workspace yöneticisiyseniz create() yöntemini çağırarak Google Workspace kuruluşunuzdaki herhangi bir alana kullanıcı, Google Grubu veya Chat uygulaması ekleyebilirsiniz.

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

  • Kullanıcı kimlik doğrulamasıyla 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 sorgu parametresini true olarak belirtin.

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

Sınırlamalar ve dikkat edilmesi gereken noktalar

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