Verileri Google Chat'e aktarma

Google Chat API ile verileri diğer mesajlaşma platformlarınızdan Google Chat'e aktarabilirsiniz. Diğer mesajlaşma platformlarınızdaki mevcut mesajları, ekleri, tepkileri, üyelikleri ve alan varlıklarını ilgili Chat API kaynaklarına aktarabilirsiniz. Chat alanlarını içe aktarma modunda oluşturup bu alanlara veri aktararak bu verileri içe aktarabilirsiniz.

Aşağıda, içe aktarma modundaki bir alanı kullanarak verileri içe aktarma adımlarına genel bir bakış sunulmaktadır:

  1. API kullanım sınırlarını inceleyin ve önceden plan yapın.
  2. Chat uygulaması için yetkilendirmeyi yapılandırın.
  3. İçe aktarma modunda bir alan oluşturun.
  4. Kaynakları içe aktarın.
  5. İçe aktarılan kaynakları doğrulayın.
  6. İçe aktarılan kaynak ile kaynak veriler arasındaki farkları uzlaştırın.
  7. Tam içe aktarma modu.
  8. Üyelik kaynakları oluşturun.

Ön koşullar

Apps Komut Dosyası

Python

  • Python 3.6 veya sonraki sürümler
  • pip paket yönetimi aracı
  • Python için en yeni Google istemci kitaplıkları. Bunları yüklemek veya güncellemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Yayınlanmış bir Chat uygulaması. Chat uygulaması oluşturup yayınlamak için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.

  • Chat uygulaması için yapılandırılmış yetkilendirme. Chat uygulamasına, uygulamanın içerik içe aktardığı tüm alanlarda alan genelinde yetki verilmelidir. Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

API kullanım sınırlarını gözden geçirin ve önceden plan yapın

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 farklılık 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ı inceleyerek önceden plan yapın.

İçe aktarma modunda alan oluşturma

İçe aktarma modunda bir alan oluşturmak için Space kaynağında create yöntemini çağırın ve importMode öğesini true olarak ayarlayın. Kaynak mesajlaşma platformundaki eşdeğer alan varlığının oluşturulma zamanını korumak için alanın createTime değerini ayarlayabilirsiniz. Bu createTime, 1 Ocak 2000 ile şimdiki zaman arasındaki bir değere ayarlanmalıdır.

Oluşturduğunuz alanın name kısmını not edin. Böylece sonraki adımlarda içeriği alana aktarırken bu alana başvurabilirsiniz.

create yönteminin çağrıldığı andan itibaren Chat uygulamalarına, kaynakları alana aktarmak, içe aktarma modunu tamamlamak vechat.import kapsamını kullanarak üyelik kaynakları oluşturmak için 30 gün süre tanınır. Chat uygulamaları, standart Chat API üyelik kapsamlarıyla 30 gün sonra üyelik oluşturmaya devam edebilir. 30 günden sonra alan hâlâ içe aktarma modundaysa otomatik olarak silinir, otomatik olarak silinir, Chat uygulaması tarafından erişilemez ve kurtarılamaz. Planlanan tüm kaynakların bu zaman aralığında Chat'e aktarılabilmesi için Chat uygulamanızın kullanım sınırlarını inceleyerek önceden plan yapın.

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

Apps Komut Dosyası

function createSpaceInImportMode() {
  const space = Chat.Spaces.create({
      spaceType: 'SPACE',
      displayName: 'Import Mode Space',
      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': 'Import Mode Space',
            'importMode': True,
            'createTime': f'{datetime.datetime(2000, 1, 1).isoformat()}Z',
        }
    )
    .execute()
)

print(result)

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

  • EMAIL: Alan genelinde bir yetkilinin kimliğine büründüğünüz kullanıcı hesabının e-posta adresi.

Kaynakları içe aktarın

Diğer mesajlaşma platformlarındaki kaynakları 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, verilerinizi taşıdığı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. (İleti yazarı, kimliğine bürünülmüş kullanıcı hesabı olarak ayarlanır.) Daha fazla bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin. İçe aktarma modundaki bir alanda bir mesajı içe aktarmak için Message kaynağında create yöntemini çağırın. Kaynak mesajlaşma platformundaki orijinal mesajın oluşturulma zamanını korumak için mesajın createTime özelliğini ayarlayabilirsiniz. Bu createTime, daha önce ayarladığınız alan oluşturma zamanı ile mevcut zaman arasındaki bir değere ayarlanmalıdır.

Aynı alandaki mesajlar, bu zamana sahip eski mesajlar silinse bile aynı createTime değerini içeremez.

İçe aktarma modundaki alanlarda üçüncü taraf URL'leri içeren mesajlar Google Chat'te bağlantı önizlemeleri oluşturamaz.

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

Aşağıdaki örnekte, içe aktarma modundaki bir alanda 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 yönelik 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.

Geçmiş üyelikler

Geçmiş üyelikler, kaynak mesajlaşma platformundan orijinal alan varlığından ayrılmış ancak Chat'te bu kullanıcıların verilerini saklamak istediğiniz kullanıcılar için oluşturulan üyeliklerdir. Alan içe aktarma modundan çıktıktan sonra yeni üye ekleme hakkında bilgi edinmek için Üyelik kaynağı oluşturma başlıklı makaleyi inceleyin.

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

deleteTime özelliğine ek olarak, geçmiş üyeliğin orijinal birleştirme zamanını korumak için createTime değerini de ayarlayabilirsiniz. deleteTime'in aksine, createTime isteğe bağlıdır. Ayarlanmadan bırakılırsa createTime değeri, deleteTime değerinden 1 mikro saniye çıkarılarak otomatik olarak hesaplanır. Ayarlandığında createTime, deleteTime tarihinden önce ve alan oluşturma zamanında veya sonrasında olmalıdır. Bu createTime bilgileri, veri saklamayı 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 platformundaki bir alana katılıp alandan ayrılabilmesi için birden fazla yol olabilir (davetler, kendi başına katılma, başka bir kullanıcı tarafından eklenme yoluyla) ancak Chat'te bu işlemlerin tümü, eklenen veya kaldırılan geçmiş üyelik createTime ve deleteTime alanları tarafından temsil edilir.

Aşağıdaki örnekte, içe aktarma modundaki bir alanda geçmiş üyelik oluşturma işlemi 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:

İçe aktarılan kaynakları doğrulama

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

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

Chat uygulamaları, Membership kaynağında 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 kullanıcı adına çağırabilir. Daha fazla bilgi edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.

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

İçe aktarılan kaynak ile kaynak veriler arasındaki farklılıkları uzlaştırma

İçe aktarılan herhangi bir kaynak, içe aktarma sırasında orijinal varlıkta yapılan değişiklikler nedeniyle artık kaynak mesajlaşma platformundaki orijinal varlıkla 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ı bir mesaj Chat'te oluşturulduktan sonra kaynak mesajlaşma platformunda bir mesajı düzenlerse Chat uygulamaları içe aktarılan mesajı güncelleyerek orijinal mesajın mevcut içeriğini yansıtabilir.

Mesajlar

İçe aktarma modundaki bir alanda bir mesajdaki desteklenen alanları güncellemek için Message kaynağında update yöntemini çağırın. Chat uygulamaları bu yöntemi yalnızca ilk mesaj oluşturma işlemi sırasında kullanılan yetkiliyi kullanarak çağırabilir. İlk iletiyi oluştururken kullanıcı kimliğine bürünmeyi kullandıysanız mesajı güncellemek için, kimliğine bürünülmüş aynı kullanıcıyı kullanmanız gerekir.

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

Tepkiler

İçe aktarma modundaki bir alanda mesaja verilen tepkiyi silmek için reactions kaynağındaki 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 alanda bir mesajın eklerini güncellemek için media kaynağındaki upload 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.

Geçmiş üyelikler

İçe aktarma modundaki bir alanda geçmişteki 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 artık geçmiş üyelikleri silmenize izin vermez.

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

Alanlar

İçe aktarma modundaki bir alanda desteklenen alanları güncellemek için spaces kaynağındaki patch yöntemini kullanın.

İçe aktarma modundaki bir alanı silmek için spaces kaynağındaki 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.

İçe aktarma modunu tamamlayın

completeImport yöntemini çağırmadan önce doğrulama ve kaynak farklılıklarının uzlaştırılmasının tamamlandığından emin olmanız gerekir. İçe aktarma modundaki bir alandan çıkıldığında, bu işlem geri alınamaz ve içe aktarma modu alanı normal bir alana dönüştürülür. Chat'te bu alanları bir veri içe aktarma işlemiyle ilişkilendiren herhangi bir gösterge yoktur.

Chat uygulaması, içe aktarma modunu tamamlamak ve alanı kullanıcılar için erişilebilir hale getirmek amacıyla 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 edinmek için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin. Kimliğine bürünülen kullanıcı, bu yöntem tamamlandığında 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 geçtikten sonra bu yöntemi çağırmayı denerseniz arama, içe aktarma modu alanı silindiği ve Chat uygulamasından artık erişilemediği için başarısızlığa neden olur.

completeImport yönteminde kimliğine bürünülen kullanıcının alanı oluşturan kişi 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:

Üyelik kaynakları oluşturma

İçe aktarma modu tamamlanmış bir alana kullanıcı üyelikleri eklemek için Membership kaynağında create yöntemini çağırın. Chat uygulamaları, ilk create.space yöntem çağrısından itibaren 30 gün içinde bu yöntemi çağırmak için chat.import kapsamını ve kullanıcı kimliğine bürünmeyi kullanmaya devam edebilir. Kimliğe bürünen kullanıcı alan yöneticisi olmalıdır.

30 günlük süre geçtikten sonra, Chat uygulamalarının bu yöntemi çağırmak için ek üyelik kapsamları içermesi gerekir.

Chat uygulamalarının üyelik kaynaklarını içe aktarma işlemi tamamlandıktan hemen sonra oluşturmasını öneririz. Böylece Chat uygulamaları, üyelik oluşturmak için chat.import kapsamını kullanmaya devam edebilir ve tüm üyelerin içe aktarılan alana erişmesine izin verebilir.