Gelişmiş Sohbet Hizmeti

Gelişmiş Chat hizmeti, Apps Komut Dosyası'nda Google Chat API'yi kullanmanıza olanak tanır. Bu API, komut dosyalarının Chat alanlarını bulmasına, oluşturmasına ve değiştirmesine, alanlara üye eklemesine veya alanlardan üye kaldırmasına ve metin, kart, ek ve tepki içeren mesajları okumasına ya da yayınlamasına olanak tanır.

Ön koşullar

Referans

Bu hizmet hakkında daha fazla bilgi için Chat API referans belgelerine bakın. 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 örneklerde, gelişmiş hizmeti kullanarak yaygın Google Chat API işlemlerinin nasıl yapılacağı gösterilmektedir.

Kullanıcı kimlik bilgileriyle ileti yayınlama

Aşağıdaki örnekte, kullanıcı adına bir Chat alanına nasıl mesaj gönderileceği gösterilmektedir.

  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 aşağıdaki 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ınlama

Aşağıdaki örnekte, uygulama adına bir Chat alanına nasıl mesaj gönderileceği gösterilmektedir. Gelişmiş Chat hizmetini bir hizmet hesabıyla kullanırken appsscript.json içinde yetkilendirme kapsamları belirtmeniz gerekmez. 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 oluşturma

Aşağıdaki örnekte, bir sohbet alanı hakkında nasıl bilgi alınacağı 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 aşağıdaki 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 aşağıdaki 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);
      }
    }

Üyelikleri listeleme

Aşağıdaki örnekte, bir sohbet alanının tüm üyelerinin 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 aşağıdaki 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

Error 400: invalid_scope hata koduyla birlikte Some requested scopes cannot be shown hata mesajını alırsanız Apps Script projesinin appsscript.json dosyasında herhangi bir yetkilendirme kapsamı belirtmemişsiniz demektir. Çoğu durumda Apps Komut Dosyası, bir komut dosyasının hangi kapsamları gerektirdiğini otomatik olarak belirler. Ancak Chat gelişmiş hizmetini kullandığınızda, komut dosyanızın kullandığı yetkilendirme kapsamlarını Apps Komut Dosyası projenizin manifest dosyasına manuel olarak eklemeniz gerekir. Açık kapsamları ayarlama başlıklı makaleyi inceleyin.

Hatayı düzeltmek için Apps Komut Dosyası projesinin appsscript.json dosyasına oauthScopes dizisinin bir parçası olarak 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ş Chat hizmeti şunları desteklemez:

İleti eki indirmek veya geliştirici önizleme yöntemi çağırmak için UrlFetchApp yerine kullanın.