Verileri Google Chat'e aktarma

Google Chat API ile diğer mesajlaşma platformlarınızdaki verileri Google Chat'e aktarabilirsiniz. Diğer mesajlaşma platformlarınızdaki mevcut mesajları, ekleri, tepkileri, üyelikleri ve alan öğelerini ilgili Chat API kaynaklarına aktarabilirsiniz. İçe aktarma modunda Chat alanları oluşturarak ve verileri bu alanlara aktararak bu verileri içe aktarabilirsiniz. İşlem başarıyla tamamlandıktan sonra bu alanlar standart Chat alanları haline gelir.

Aşağıda, içe aktarma sürecinin tamamı açıklanmaktadır:

  1. İçe aktarma işleminizi planlama
  2. Chat uygulaması için yetkilendirmeyi yapılandırma
  3. İçe aktarma modunda alan oluşturma
  4. Kaynakları içe aktarma
  5. İçe aktarılan kaynakları doğrulama
  6. İçe aktarılan kaynak verilerdeki kaynak farklılıklarını uyumlu hale getirme
  7. Tamamlayıcı içe aktarma modu
  8. İçe aktarma modundan sonra alana erişim verme
  9. Sorun giderme

Ön koşullar

Apps Komut Dosyası

Python

İçe aktarma işleminizi planlayın

İçe aktarılacak veri miktarını buna göre planlayın, kullanım sınırlarının ve kotalarının içe aktarma sürecini nasıl etkileyebileceğini anlayın ve yeni bir alana içe aktarma işlemi sırasında desteklenen Chat alanı türlerini öğrenin.

API kullanım sınırlarını inceleme

Chat'e veri aktarmak için gereken süre, içe aktarılacak Chat kaynaklarının miktarına bağlı olarak büyük ölçüde değişiklik gösterebilir. Tahmini bir zaman çizelgesi belirlemek için Chat uygulamanızın kullanım sınırlarını ve kaynak mesajlaşma platformundan içe aktarılması planlanan veri miktarını inceleyin.

Mesajları bir alana aktarırken messages.create() yöntemine yapılan çağrıları farklı mesaj dizilerine dağıtmanızı öneririz.

İçe aktarılacak desteklenen alanları tanımlama

İçe aktarma modu yalnızca SPACE ve GROUP_CHAT için SpaceType'ü destekler. DIRECT_MESSAGE desteklenmiyor. Daha fazla bilgi için SpaceType ile ilgili dokümanları inceleyin.

İçe aktarma modunda alan oluşturma

İçe aktarma modunda alan oluşturmak için Space kaynağında create yöntemini çağırın ve importMode değerini true olarak ayarlayın.

Alanı içe aktarma modunda oluştururken aşağıdakileri göz önünde bulundurun.

  • Tarih ve saat: İçe aktarma modunun 30 gün içinde tamamlanması gerektiğini unutmayın. spaces.create() yöntemi çağrıldıktan 30 gün sonra alan hâlâ içe aktarma modundaysa otomatik olarak silinir, erişilemez ve kurtarılamaz hale gelir.
    • 30 günlük sürenin sonunu takip etmek için createTime alanındaki değeri kullanmayın. Bu, her zaman spaces.create() yöntemini çağırdığınız zamanla aynı değildir. İçe aktarma modu kullanılırken createTime alanı, orijinal oluşturma zamanını korumak için alanın kaynakta oluşturulduğu geçmiş zaman damgasına ayarlanabilir.
  • Alan kaynağı adı (name): Belirli bir alanla ilgili bilgileri almak için kullanılan ve alana içerik aktarılırken sonraki adımlarda referans verilen benzersiz tanımlayıcı.

Kaynak mesajlaşma platformundaki eşdeğer alan öğesinin oluşturulma zamanını korumak için alanın createTime değerini ayarlayabilirsiniz. Bu createTime, 1 Ocak 2000 ile mevcut zaman arasında bir değere ayarlanmalıdır.

İçe aktarma modunda harici bir alan oluşturmak için externalUserAllowed değerini true olarak ayarlayın. İçe aktarma işlemi başarıyla tamamlandıktan sonra harici kullanıcılar ekleyebilirsiniz.

Aşağıdaki örnekte, içe aktarma modunda alanın nasıl oluşturulacağı gösterilmektedir:

Apps Komut Dosyası

function createSpaceInImportMode() {
  const space = Chat.Spaces.create({
      spaceType: 'SPACE',
      displayName: 'DISPLAY_NAME',
      importMode: true,
      createTime: (new Date('January 1, 2000')).toJSON()
  });
  console.log(space.name);
}

Python

"""Create a space in import mode."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

result = (
    service.spaces()
    .create(
        body={
            'spaceType': 'SPACE',
            'displayName': 'DISPLAY_NAME',
            'importMode': True,
            'createTime': f'{datetime.datetime(2000, 1, 1).isoformat()}Z',
        }
    )
    .execute()
)

print(result)

Aşağıdakini değiştirin:

  • EMAIL: Alan genelinde yetkiyle kimliğine büründüğünüz kullanıcı hesabının e-posta adresi.
  • DISPLAY_NAME: İçe aktarma modunda oluşturulan alanın adı. Bu, Chat kullanıcılarına gösterilen alan için benzersiz bir ad olmalıdır. Verileri içe aktardığınız alanla aynı görünen adı kullanmanızı öneririz.

Kaynakları içe aktarın

Diğer mesajlaşma platformlarından kaynak içe aktarmak için içe aktarma modu alanında Google Chat kaynakları (ör. mesajlar, tepkiler, ekler) oluşturursunuz. Alanda bir kaynak oluşturduğunuzda, taşıma yaptığınız mesaj platformundaki ilgili kaynaktan gelen verileri belirtirsiniz.

Mesajlar

Chat uygulamalarınız, kendi yetkilerini kullanarak veya kimliğe bürünme yoluyla bir kullanıcı adına mesajları içe aktarabilir. İletinin yazarı, kimliğe bürünen kullanıcı hesabına ayarlanır. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin. Bir mesajı içe aktarma modundaki bir alana aktarmak için Message kaynağındaki create yöntemini çağırın. Kaynak mesajlaşma platformundaki orijinal mesajın oluşturulma zamanını korumak için mesajın createTime değerini ayarlayabilirsiniz. Bu createTime, daha önce ayarladığınız alan oluşturma zamanı ile mevcut zaman arasında bir değere ayarlanmalıdır.

Aynı alandaki mesajlar, aynı saate sahip önceki mesajlar silinmiş olsa bile aynı createTime değerini içeremez.

Aktarma modundaki alanlarda üçüncü taraf URL'leri içeren mesajlar Google Chat'te bağlantı önizlemeleri olarak oluşturulamaz.

İçe aktarma modunda mesaj oluşturduğunuzda alanlar, kullanıcı bahsetmelerini içeren mesajlar da dahil olmak üzere hiçbir kullanıcıya bildirim göndermez veya e-posta göndermez.

Aşağıdaki örnekte, içe aktarma modu alanında nasıl mesaj oluşturulacağı gösterilmektedir:

Python

"""Create a message in import mode space."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = (
    service.spaces()
    .messages()
    .create(
        parent=NAME,
        body={
            'text': 'Hello, world!',
            'createTime': f'{datetime.datetime(2000, 1, 2).isoformat()}Z',
        },
    )
    .execute()
)

print(result)

Aşağıdakini değiştirin:

Tepkiler

Chat uygulamanız, Chat API'yi kullanarak mesajlara verilen tepkileri içe aktarabilir. İçe aktarma modundaki alanlarda kaynak yöntemleri ve kimlik doğrulama desteği türleri hakkında bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Ekler

Chat uygulamanız, Chat API'yi kullanarak ek yükleyebilir. İçe aktarma modundaki alanlarda kaynak yöntemleri ve kimlik doğrulama desteği türleri hakkında bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin. Ancak, ek yüklemeyle ilgili Google Chat dahili sınırına ulaşmamak için ekleri Google Drive dosyası olarak yüklemek ve ek URI'lerini, içe aktarma modu alanlarındaki ilgili iletilere bağlayarak diğer mesajlaşma platformlarından ekleri içe aktarmak üzere Google Drive API'yi kullanmanızı önemle tavsiye ederiz.

Geçmiş üyelikler

Geçmiş üyelikler, kaynak mesajlaşma platformundaki orijinal alan öğesinden ayrılmış ancak verilerini Chat'te tutmak istediğiniz kullanıcılar için oluşturulan üyeliklerdir. Alan içe aktarma modunda olmadığında yeni üye ekleme hakkında bilgi edinmek için Üyelik kaynağı oluşturma bölümüne bakın.

Çoğu durumda, söz konusu eski üyeler Google'daki veri saklama politikasına tabi olduğunda, geçmiş üyelikler tarafından oluşturulan verileri (ör. Mesajlar ve tepkiler) Chat'e aktarmadan önce korumak istersiniz. Alan içe aktarma modundayken Membership kaynağındaki create yöntemini kullanarak bu geçmiş üyelikleri alana aktarabilirsiniz. Geçmiş üyeliğin ayrılış zamanını korumak için üyeliğin deleteTime değerini ayarlamanız gerekir. Bu üyelikler için hangi verilerin saklanacağını etkilediği için bu ayrılma süresi doğru olmalıdır. Ayrıca bu deleteTime, alan oluşturma zaman damgasından sonra olmalı ve gelecekteki bir zaman damgası olmamalıdır.

deleteTime'e ek olarak, geçmiş üyeliğin orijinal katılım zamanını korumak için createTime'u da ayarlayabilirsiniz. deleteTime'ün aksine createTime isteğe bağlıdır. Değeri ayarlanmamışsa createTime, deleteTime değerinden 1 mikrosaniye çıkarılarak otomatik olarak hesaplanır. Ayarlanmışsa createTime, deleteTime'ten önce olmalı ve alan oluşturma zamanından sonra veya o saatte olmalıdır. Bu createTime bilgiler, veri saklama süresini belirlemek için kullanılmaz ve Google Yönetici Konsolu ile Google Apps Kasası gibi yönetici araçlarında görünmez.

Kullanıcıların kaynak mesajlaşma platformunda bir alana katılma ve alandan ayrılmanın birden fazla yolu olabilir (davet yoluyla, kendileri katılarak veya başka bir kullanıcı tarafından eklenerek). Chat'te bu işlemlerin tümü, geçmiş üyelik createTime ve deleteTime alanları tarafından eklenmiş veya kaldırılmış olarak temsil edilir.

Aşağıdaki örnekte, içe aktarma modu alanında geçmiş üyeliğin nasıl oluşturulacağı gösterilmektedir:

Python

"""Create a historical membership in import mode space."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
USER = 'users/USER_ID'
result = (
    service.spaces()
    .members()
    .create(
        parent=NAME,
        body={
            'createTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z',
            'deleteTime': f'{datetime.datetime(2000, 1, 4).isoformat()}Z',
            'member': {'name': USER, 'type': 'HUMAN'},
        },
    )
    .execute()
)

print(result)

Aşağıdakini değiştirin:

Kaynakları harici bir alana aktarma

Yalnızca Workspace kuruluşunuzdaki kullanıcılara ait kimlik bilgilerini kullanarak içe aktarma modunda harici alan oluşturabilirsiniz. Bu yalnızca alan içe aktarma modundayken geçerlidir. Alan içe aktarma modunu tamamladığında, içe aktarılan alanlara katılmaları için kuruluş dışı kullanıcılar davet edilebilir (erişim bölümüne bakın) ve kimlik bilgileri Chat API'yi çağırmak için kullanılabilir.

İçe aktarılan kaynakları doğrulama

Chat uygulamanız, Message kaynağında list yöntemini çağırarak içe aktarma modu alanının içeriğini okuyabilir ve doğrulayabilir. Döndürülen iletilerin emojiReactionSummaries ve attachment alanlarından Reaction ve Attachment kaynaklarını okuyabilirsiniz. Sohbet uygulamaları bu yöntemi yalnızca kimliğe bürünme yoluyla kullanıcı adına çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Chat uygulamanız, Message kaynağındaki get yöntemini çağırarak doğrulama için mesajları tek tek de okuyabilir. Chat uygulamaları bu yöntemi yalnızca kendi yetkilerini kullanarak kendi mesajlarını okumak için çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Sohbet uygulamaları, Membership kaynağındaki list yöntemini çağırarak geçmiş üyelikleri de listeleyebilir. Alan içe aktarma modundan çıktıktan sonra list yöntemi artık geçmiş üyelikleri göstermez. Chat uygulamaları bu yöntemi yalnızca kimliğe bürünme yoluyla bir kullanıcı adına çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Space kaynağında get yöntemini çağırarak içe aktarma modu alanının özelliklerini okuyabilirsiniz. Sohbet uygulamaları yalnızca kendi yetkilerini kullanarak bu yöntemi çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

İçe aktarılan kaynak verileri arasındaki farklılıkları uyumlu hale getirme

İçe aktarılan herhangi bir kaynak, içe aktarma sırasında orijinal varlıkta yapılan değişiklikler nedeniyle kaynak mesajlaşma platformundaki orijinal varlıkla artık eşleşmiyorsa Chat uygulamaları, içe aktarılan sohbet kaynağını değiştirmek için Chat API'yi çağırabilir. Örneğin, bir kullanıcı Chat'te oluşturulan bir mesajı kaynak mesajlaşma platformunda düzenlerse Chat uygulamaları, içe aktarılan mesajı orijinal mesajın mevcut içeriğini yansıtacak şekilde güncelleyebilir.

Mesajlar

İçe aktarma modundaki bir alandaki bir mesajdaki desteklenen alanları güncellemek için Message kaynağındaki update yöntemini çağırın. Sohbet uygulamaları bu yöntemi yalnızca ilk mesajı oluştururken kullanılan yetkiliyi kullanarak çağırabilir. İlk mesajı oluştururken kullanıcı kimliğine bürünme özelliğini kullandıysanız bu mesajı güncellemek için kimliğine büründüğünüz kullanıcıyı kullanmanız gerekir.

İçe aktarma modu alanındaki bir mesajı silmek için Message kaynağındaki delete yöntemini çağırın. İçe aktarma modundaki bir alandaki mesajların, orijinal mesajı oluşturan kullanıcı tarafından silinmesi gerekmez ve alandaki herhangi bir kullanıcının kimliğine bürünerek silinebilir. Chat uygulamaları yalnızca kendi yetkilerini kullanarak kendi mesajlarını silebilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Tepkiler

İçe aktarma modundaki bir alandaki mesaja verilen tepkiyi silmek için reactions kaynağında delete yöntemini kullanın. İçe aktarma modundaki alanlarda kaynak yöntemleri ve kimlik doğrulama desteği türleri hakkında bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Ekler

İçe aktarma modundaki bir iletinin eklerini güncellemek için media kaynağındaki upload yöntemini kullanın. İçe aktarma modundaki alanlarda desteklenen kimlik doğrulama türleri ve kaynak yöntemleri hakkında bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Geçmiş üyelikler

İçe aktarma modu alanındaki geçmiş bir üyeliği silmek için Membership kaynağındaki delete yöntemini kullanın. Bir alan içe aktarma modundan çıktıktan sonra delete yöntemi, geçmiş üyelikleri silmenizi artık engeller.

İçe aktarma modundaki bir alanda geçmiş üyelikleri güncelleyemezsiniz. Yanlışlıkla içe aktarılan geçmiş bir üyeliği düzeltmek istiyorsanız önce üyeliği silmeniz, ardından alan hâlâ içe aktarma modundayken yeniden oluşturmanız gerekir.

Alanlar

İçe aktarma modu alanındaki desteklenen alanları güncellemek için spaces kaynağında patch yöntemini kullanın.

İçe aktarma modu alanını silmek için spaces kaynağında delete yöntemini kullanın.

İçe aktarma modundaki alanlarda kaynak yöntemleri ve kimlik doğrulama desteği türleri hakkında bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

Tam içe aktarma modu

completeImport yöntemini çağırmadan önce doğrulamanın ve kaynak farklılıklarının uyumlaştırılmasının tamamlandığından emin olmanız gerekir. Bir alandan içe aktarma modundan çıkmak geri alınamayan bir işlemdir ve içe aktarma modu alanını normal bir alana dönüştürür. Chat'te bu alanları veri içe aktarma işlemiyle ilişkilendiren bir gösterge yok.

completeImport'ü aradığınız tarih ve saati, aramayı yapan kullanıcının kaynak adını ve döndürülen yanıtı not edin. Bu, herhangi bir sorunla karşılaşıp bunları incelemeniz gerektiğinde faydalı olabilir.

Chat uygulaması, içe aktarma modunu tamamlamak ve alana kullanıcıların erişebilmesini sağlamak için Space kaynağında completeImport yöntemini çağırabilir. Chat uygulamaları bu yöntemi yalnızca kimliğe bürünme yoluyla bir kullanıcı adına çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin. Bu yöntem tamamlandığında kimliğine bürünen kullanıcı alana alan yöneticisi olarak eklenir. Bu yöntem, ilk create.space yöntem çağrısından sonraki 30 gün içinde çağrılmalıdır. 30 günlük süre dolduktan sonra bu yöntemi çağırmaya çalışırsanız içe aktarma modu alanı silindiği ve Chat uygulaması artık bu alana erişemediği için çağrı başarısız olur.

completeImport yönteminde kimliğine bürünen kullanıcının alan oluşturucu olması gerekmez.

Aşağıdaki örnekte, içe aktarma modunun nasıl tamamlanacağı gösterilmektedir:

Python

"""Complete import."""

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = service.spaces().completeImport(name=NAME).execute()

print(result)

Aşağıdakini değiştirin:

İçe aktarma modundan sonra alana erişim izni ver

Chat kullanıcılarının yakın zamanda içe aktarılan alana erişmesine izin vermek için Chat uygulamaları, aşağıdakileri yapmak için ilk create.space() yöntem çağrısından sonraki 30 gün içinde chat.import kapsamını ve kullanıcı kimliğine bürünmeyi kullanmaya devam edebilir:

Bu yöntemleri chat.import kapsamıyla kullanmak için kimliğine bürünen kullanıcının alan yöneticisi olması gerekir.

Kuruluş dışı alanlar için üyelik create() yöntemi, Workspace kuruluşunuzun dışındaki kullanıcıları davet etmenize de olanak tanır. Kuruluş dışı kullanıcılarla ilgili bilinen tüm sınırlamaları anladığınızdan emin olun.

Sorun giderme

Chat alanlarını içe aktarırken sorun yaşarsanız yardım için aşağıdaki sorunları inceleyin. Hata yanıtıyla karşılaşırsanız daha sonra başvurmak ve sorun gidermek için bunu not edin (metni kopyalayıp bir belgeye yapıştırın veya ekran görüntüsü kaydedin).

Bir alan başarıyla içe aktarıldığında CompleteImportSpace, OK durumuyla tamamlanır.

İçe aktarma işlemi, 30 günlük süre dolmadan önce tamamlanmadı

İçe aktarma modunda alan oluşturma bölümünde daha önce açıklandığı gibi, oluşturma yöntemi çağrıldıktan 30 gün sonra alan hâlâ içe aktarma modundaysa otomatik olarak silinir, erişilemez ve kurtarılamaz hale gelir.

Maalesef silinen alan artık kullanılamıyor veya kurtarılamıyor. İçe aktarma işleminin yeniden başlatılması gerekiyor.

Eksik alanları bulma

Yeni Chat alanını bulamıyorsanız CompleteImportSpace tarafından aldığınız yanıtla ilgili açıklamayı ve sorunun nasıl çözüleceğini görmek için aşağıdaki tabloyu inceleyin.

Yanıt alındı İnceleme adımları Açıklama Çözünürlük
CompleteImportSpace bir istisna uygular ve GetSpace çağrısı, PERMISSION_DENIED sonucunu döndürür. Kayıtlarınızı, alanın ne zaman oluşturulduğunu ve 30 günden eskiyse otomatik olarak silindiğini kontrol edin. Ayrıca, içe aktarılan alanın alan yönetimi aracında veya denetim günlüğünde kaydı yoktur. İçe aktarma işleminin başlatılmasının üzerinden 30 günden uzun zaman geçtiği için alan, taşıma işleminden başarıyla çıkılamadı. Yeni bir alan oluşturun ve içe aktarma işlemini tekrar çalıştırın.
CompleteImportSpace, OK değerini döndürür ve GetSpace çağrısı PERMISSION_DENIED değerini döndürür. İçe aktarılan alanın alan yönetimi aracında kaydı yoktur ancak alanın denetim günlüğünde silindiği gösterilir. Alan başarıyla içe aktarıldı ancak daha sonra silindi. Yeni bir alan oluşturun ve içe aktarma işlemini tekrar çalıştırın.