Gelişmiş Sohbet Hizmeti

Advanced Chat hizmeti, Apps Komut Dosyası'nda Google Chat API'yi kullanmanızı sağlar. Bu API, komut dosyalarının Chat alanlarını bulmasına, oluşturmasına ve değiştirmesine, alanlara üye ekleyip kaldırmasına ve metin, kart, ek ve tepkiler içeren mesajları okumasına ya da yayınlamasına olanak tanır.

Ön koşullar

Referans

Bu hizmet hakkında daha fazla bilgi edinmek için Chat API referans belgelerini inceleyin. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi Chat hizmeti de genel API ile aynı nesneleri, yöntemleri ve parametreleri kullanır.

Örnek kod

Bu örnekler, gelişmiş hizmeti kullanarak sık yapılan Google Chat API işlemlerini nasıl gerçekleştireceğinizi gösterir.

Kullanıcı kimlik bilgilerini içeren bir mesaj yayınlayın

Aşağıdaki örnek, kullanıcı adına bir Chat alanında nasıl mesaj gönderileceğini göstermektedir.

  1. chat.messages.create yetkilendirme kapsamını, Apps Komut Dosyası projesinin appsscript.json dosyasına ekleyin:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.messages.create"
    ]
    
  2. Apps Komut Dosyası projesinin koduna şunun gibi bir işlev ekleyin:

    advanced/chat.gs
    /**
     * Posts a new message to the specified space on behalf of the user.
     * @param {string} spaceName The resource name of the space.
     */
    function postMessageWithUserCredentials(spaceName) {
      try {
        const message = {'text': 'Hello world!'};
        Chat.Spaces.Messages.create(message, spaceName);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }

Uygulama kimlik bilgileriyle mesaj yayınlayın

Aşağıdaki örnek, uygulama adına bir Chat alanında nasıl mesaj gönderileceğini göstermektedir. Gelişmiş Chat hizmetini bir hizmet hesabıyla kullanmak, appsscript.json ürününde yetkilendirme kapsamlarını belirtmenizi gerektirmez. Hizmet hesaplarıyla kimlik doğrulama hakkında ayrıntılı bilgi için Google Chat uygulaması olarak kimlik doğrulama başlıklı makaleyi inceleyin.

advanced/chat.gs
/**
 * Posts a new message to the specified space on behalf of the app.
 * @param {string} spaceName The resource name of the space.
 */
function postMessageWithAppCredentials(spaceName) {
  try {
    // See https://developers.google.com/chat/api/guides/auth/service-accounts
    // for details on how to obtain a service account OAuth token.
    const appToken = getToken_();
    const message = {'text': 'Hello world!'};
    Chat.Spaces.Messages.create(
        message,
        spaceName,
        {},
        // Authenticate with the service account token.
        {'Authorization': 'Bearer ' + appToken});
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to create message with error %s', err.message);
  }
}

Alan al

Aşağıdaki örnekte, bir Chat alanı hakkında nasıl bilgi edinileceği gösterilmektedir.

  1. chat.spaces.readonly yetkilendirme kapsamını, Apps Komut Dosyası projesinin appsscript.json dosyasına ekleyin:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.readonly"
    ]
    
  2. Apps Komut Dosyası projesinin koduna şunun gibi bir işlev ekleyin:

    advanced/chat.gs
    /**
     * Gets information about a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function getSpace(spaceName) {
      try {
        const space = Chat.Spaces.get(spaceName);
        console.log('Space display name: %s', space.displayName);
        console.log('Space type: %s', space.spaceType);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to get space with error %s', err.message);
      }
    }

Alan oluşturma

Aşağıdaki örnekte, Chat alanı oluşturma işlemi gösterilmektedir.

  1. chat.spaces.create yetkilendirme kapsamını, Apps Komut Dosyası projesinin appsscript.json dosyasına ekleyin:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.create"
    ]
    
  2. Apps Komut Dosyası projesinin koduna şunun gibi bir işlev ekleyin:

    advanced/chat.gs
    /**
     * Creates a new Chat space.
     */
    function createSpace() {
      try {
        const space = {'displayName': 'New Space', 'spaceType': 'SPACE'};
        Chat.Spaces.create(space);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create space with error %s', err.message);
      }
    }

Liste üyelikleri

Aşağıdaki örnekte, bir Chat alanındaki tüm üyelerin nasıl listeleneceği gösterilmektedir.

  1. chat.memberships.readonly yetkilendirme kapsamını, Apps Komut Dosyası projesinin appsscript.json dosyasına ekleyin:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships.readonly"
    ]
    
  2. Apps Komut Dosyası projesinin koduna şunun gibi bir işlev ekleyin:

    advanced/chat.gs
    /**
     * Lists all the members of a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function listMemberships(spaceName) {
      let response;
      let pageToken = null;
      try {
        do {
          response = Chat.Spaces.Members.list(spaceName, {
            pageSize: 10,
            pageToken: pageToken
          });
          if (!response.memberships || response.memberships.length === 0) {
            pageToken = response.nextPageToken;
            continue;
          }
          response.memberships.forEach((membership) => console.log(
              'Member resource name: %s (type: %s)',
              membership.name,
              membership.member.type));
          pageToken = response.nextPageToken;
        } while (pageToken);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed with error %s', err.message);
      }
    }

Sorun giderme

Some requested scopes cannot be shown hata mesajıyla Error 400: invalid_scope ile karşılaşırsanız bu, Apps Komut Dosyası projesinin appsscript.json dosyasında herhangi bir yetkilendirme kapsamı belirtmediğiniz anlamına gelir. Çoğu durumda, Apps Komut Dosyası, bir komut dosyasının hangi kapsamlara ihtiyaç duyduğunu otomatik olarak belirler. Ancak Chat gelişmiş hizmetini kullanırken, komut dosyanızın kullandığı yetkilendirme kapsamlarını, Apps Komut Dosyası projenizin manifest dosyasına manuel olarak eklemeniz gerekir. Açık kapsamları ayarlama bölümüne bakın.

Hatayı çözmek için oauthScopes dizisinin bir parçası olarak Apps Komut Dosyası projesinin appsscript.json dosyasına uygun yetkilendirme kapsamlarını ekleyin. Örneğin, spaces.messages.create yöntemini çağırmak için aşağıdakileri ekleyin:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Sınırlar ve dikkat edilmesi gereken noktalar

Gelişmiş Sohbet hizmeti şunları desteklemez:

Bir mesaj ekini indirmek veya geliştirici önizleme yöntemini çağırmak için bunun yerine UrlFetchApp kullanın.