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 varlıklarını ilgili Chat API kaynaklarına aktarabilirsiniz. İçe aktarma modunda Chat alanları oluşturarak ve verileri bu alanlara aktararak içe aktarabilirsiniz. İşlem başarıyla tamamlandıktan sonra bu alanlar standart Chat alanları haline gelir.
- API kullanım sınırlarını inceleyin ve önceden plan yapın.
- Chat uygulaması için yetkilendirmeyi yapılandırın.
- İçe aktarma modunda alan oluşturabilirsiniz.
- Kaynakları içe aktarın.
- İçe aktarılan kaynakları doğrulayın.
- Kaynak verilerden içe aktarılan kaynak farklılıklarını düzeltin.
- İçe aktarma modunu tamamla.
- İçe aktarma modundan sonra alana erişim izni verin.
Ön koşullar
Apps Komut Dosyası
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Yayınlanan bir Chat uygulamasıdır. Chat uygulaması oluşturmak için bu quickstart takip edin.
Python
- Python 3.6 veya sonraki sürümler
- pip paket yönetim 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ınlanan bir Chat uygulaması. Chat uygulaması oluşturmak ve yayınlamak için Google Chat uygulaması geliştirme başlıklı makaleyi inceleyin.
Chat uygulaması için yetkilendirme yapılandırıldı. Uygulamanın içerik içe aktardığı tüm alanlarda, Chat uygulamasına alan genelinde yetki verilmiş olmalıdır. Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.
API kullanım sınırlarını inceleyin 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 farklılıklar 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ılmak üzere planlanan veri miktarını gözden geçirerek önceden plan yapın.
İç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
yöntemini 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 bugünkü saat arasındaki bir değere ayarlanmalıdır.
Oluşturduğunuz alanın name
bilgisini not edin. Böylece, sonraki adımlarda alana içerik aktarırken bu alana referans verebilirsiniz.
create
yönteminin çağrıldığı andan itibaren Chat uygulamalarının,
kaynakları alana aktarması, içe aktarma modunu tamamlaması ve chat.import
kapsamını kullanarak alana erişim izni vermesi için 30 gün vardır.
Chat uygulamaları, standart Chat API üyelik kapsamlarıyla 30 gün geçtikten sonra üyelik oluşturmaya devam edebilir.
30 günün ardından alan hâlâ içe aktarma modundaysa otomatik olarak silinir, erişilemez ve kurtarılamaz. Planlanmış tüm kaynakların bu zaman aralığı içinde 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 yetkiliyle 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ından 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, taşıma yaptığınız mesaj platformundaki ilgili kaynaktan gelen verileri belirtirsiniz.
Mesajlar
Chat uygulamalarınız, mesajları kendi yetkilerini kullanarak veya kimliğe bürünme aracılığıyla bir kullanıcı adına içe aktarabilir. (İletinin yazarı, kimliğine bürünülen kullanıcı hesabı olarak ayarlanır.) Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.
İçe aktarma modu alanında bir mesajı içe aktarmak için Message
kaynağındaki create
yöntemini çağırın.
Kaynak mesajlaşma platformundan gelen 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 şimdiki zaman arasındaki bir değere ayarlanmalıdır.
Aynı alandaki mesajlar aynı createTime
öğesini içeremez (o zamana sahip önceki mesajlar silinmiş olsa bile).
İçe aktarma modundaki alanlarda üçüncü taraf URL'leri içeren mesajlar, Google Chat'te bağlantı önizlemelerini 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ıyı bilgilendirmez veya kullanıcıya 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:
EMAIL
: Alan genelinde yetkiliyle, kimliğine büründüğünüz kullanıcı hesabının e-posta adresi.SPACE_NAME
: içe aktarma modunda oluşturulan alanın adı.
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 Google Drive API'yi kullanarak ekleri Google Drive dosyası olarak yüklemenizi ve diğer mesajlaşma platformlarından ekleri içe aktarmak için dosya URI'lerini içe aktarma modu alanlarındaki ilgili mesajlara bağlamanızı önemle tavsiye ederiz.
Geçmiş üyelikler
Geçmiş üyelikler, kaynak mesajlaşma platformundaki orijinal alan varlığından ayrılmış olan ancak bu kullanıcıların verilerini Chat'te saklamak 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ş üyelikten ayrılma süresinin korunması için üyeliğin deleteTime
özelliğini ayarlamanız gerekir. Söz konusu üyelikler için hangi verilerin saklanacağını etkilediğinden bu izin süresinin doğru olması gerekir. Ayrıca bu deleteTime
, alan oluşturma zaman damgasından sonra gelmeli ve gelecekteki bir zaman damgası olmamalıdır.
deleteTime
'e ek olarak, geçmiş üyeliğin orijinal birleştirme zamanını korumak için createTime
değerini de ayarlayabilirsiniz. deleteTime
işlevinin aksine createTime
isteğe bağlıdır. Politika ayarlanmazsa deleteTime
değerinden 1 mikrosaniye çıkarılarak createTime
otomatik olarak hesaplanır. Ayarlanırsa createTime
, deleteTime
tarihinden önce olmalı ve alan oluşturma zamanında veya bu tarihten sonra 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ılma ve alandan ayrılma (davetler aracılığıyla, kendileri katılma, başka bir kullanıcı tarafından ekleme) için birden çok yöntemi olsa da Chat'te bu işlemlerin tümü, eklenmiş veya kaldırılmış olarak geçmiş üyelik createTime
ve deleteTime
alanlarıyla temsil edilir.
Aşağıdaki örnekte, içe aktarma modundaki bir alanda 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:
EMAIL
: Alan genelinde yetkiliyle, kimliğine büründüğünüz kullanıcı hesabının e-posta adresi.SPACE_NAME
: içe aktarma modunda oluşturulan alanın adı.USER_ID
: kullanıcının benzersiz kimliği.
İçe aktarılan kaynakları doğrulayın
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 mesajların emojiReactionSummaries
ve attachment
alanlarındaki Reaction
ve Attachment
kaynaklarını okuyabilirsiniz. Sohbet uygulamaları, bu yöntemi yalnızca kimliğe bürünme aracılığıyla bir kullanıcı adına çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.
Chat uygulamanız ayrıca, Message
kaynağında get
yöntemini çağırarak doğrulama için mesajları tek tek okuyabilir.
Sohbet uygulamaları yalnızca kendi yetkilerini kullanarak kendi mesajlarını okumak için bu yöntemi çağırabilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.
Chat uygulamaları ayrıca Membership
kaynağındaki list
yöntemini çağırarak geçmiş üyelikleri de listeleyebilir.
Alan içe aktarma modundan çıktıktan sonra list
yöntemi, geçmiş üyelikleri artık kullanıma sunmaz. 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.
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.
Kaynak verilerden içe aktarılan kaynak farklılıklarını düzeltme
İç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şturulduktan sonra kaynak mesajlaşma platformunda bir mesajı 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 mesajda yer alan 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şturma işlemi sırasında kullanıcı kimliğine bürünme kullandıysanız mesajı güncellemek için, kimliğine bürünülen aynı kullanıcıyı kullanmanız gerekir.
İçe aktarma modundaki bir mesajı silmek için Message
kaynağında delete
yöntemini çağırın.
İçe aktarma modundaki bir alandaki iletilerin, orijinal mesajı oluşturan kişi tarafından silinmesi gerekmez ve alandaki herhangi bir kullanıcının kimliğine bürünerek silinebilir.
Chat uygulamaları, mesajlarını yalnızca kendi yetkililerini kullanarak silebilir. Daha fazla bilgi için Chat uygulamalarını yetkilendirme başlıklı makaleyi inceleyin.
Tepkiler
İçe aktarma modundaki alandaki bir 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 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 geçmiş ü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 alanlarda geçmiş üyelikleri güncelleyemezsiniz. Hatalı bir şekilde içe aktarılan geçmiş üyeliği düzeltmek istiyorsanız önce üyeliği silmeniz, ardından alan içe aktarma modundayken yeniden oluşturmanız gerekir.
Alanlar
İçe aktarma modundaki bir alanda desteklenen alanları güncellemek için spaces
kaynağında patch
yöntemini kullanın.
İçe aktarma modundaki bir alanı 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.
İçe aktarma modunu tamamla
completeImport
yöntemini çağırmadan önce kaynak farklılıklarının doğrulanması ve kaynak farklılıklarının uzlaş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.
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.
Sohbet uygulamaları, bu yöntemi yalnızca kimliğe bürünme aracılığıyla 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ünülen 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 geçtikten sonra bu yöntemi çağırmaya çalışırsanız içe aktarma modundaki alan silindiği ve artık Chat uygulaması tarafından erişilemediği için çağrı başarısız olur.
completeImport
yönteminde kimliğine bürünülen 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:
EMAIL
: Alan genelinde yetkiliyle, kimliğine büründüğünüz kullanıcı hesabının e-posta adresi.SPACE_NAME
: içe aktarma modunda oluşturulan alanın adı.
İç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:
- Alana üye ekleyin:
Membership
kaynağındacreate()
yöntemini çağırın. Chat uygulamalarınınMembership
kaynaklarını alan içe aktarma işlemi tamamlandıktan hemen sonra oluşturmasını öneririz. Böylece Chat uygulamalarıchat.import
kapsamını kullanmaya devam edebilir ve içe aktarılan tüm üyelerin alana erişebilir. - Hedef kitle belirleyin:
Space
kaynağındaupdate()
yöntemini çağırın. Hedef kitle oluşturmayı ve eklemeyi öğrenmek için Bir Google Chat alanını bir Google Workspace kuruluşundaki belirli kullanıcılar tarafından bulunabilir hale getirme başlıklı makaleyi inceleyin.
Bu yöntemleri chat.import
kapsamıyla kullanmak için kimliğine bürünülen kullanıcının alan yöneticisi olması gerekir.