API başvurusu - Direct Line API 3.0
Direct Line API 3.0 kullanarak istemci uygulamanızın botunuzla iletişim kurmasını sağlayabilirsiniz. Direct Line API 3.0, HTTPS üzerinden endüstri standardı REST ve JSON kullanır.
Temel URI
Direct Line API 3.0'a erişmek için tüm API istekleri için şu temel URI'lerden birini kullanın:
Genel botlar için
https://directline.botframework.com
Bölgesel bot için, seçili bölgeye göre aşağıdaki uri'yi girin:
Bölge Temel URI Avrupa https://europe.directline.botframework.com
Hindistan https://india.directline.botframework.com
İpucu
Bazı istekler coğrafi sınırların ötesine geçebileceğinden bölgesel bir bot için genel temel URI'yi kullanırsanız istek başarısız olabilir.
Üst Bilgiler
Standart HTTP isteği üst bilgilerine ek olarak, Doğrudan Satır API'sinin isteği veren istemcinin kimliğini doğrulamak için gizli dizi veya belirteç belirten bir üst bilgi içermesi Authorization
gerekir. Authorization
Üst bilgiyi şu biçimi kullanarak belirtin:
Authorization: Bearer SECRET_OR_TOKEN
İstemcinizin Doğrudan Hat API isteklerinin kimliğini doğrulamak için kullanabileceği gizli dizi veya belirteç alma hakkında ayrıntılı bilgi için bkz . Kimlik doğrulaması.
HTTP durum kodu
Her yanıtla birlikte döndürülen HTTP durum kodu, ilgili isteğin sonucunu gösterir.
HTTP durum kodu | Anlamı |
---|---|
200 | İstek başarılı oldu. |
201 | İstek başarılı oldu. |
202 | İstek işlenmek üzere kabul edildi. |
204 | İstek başarılı oldu, ancak hiçbir içerik döndürülmedi. |
400 | İstek yanlış biçimlendirilmiş veya başka bir şekilde yanlış. |
Kategori 401 | İstemcinin isteği yapma yetkisi yok. Bu durum kodu genellikle üst bilgi eksik veya hatalı biçimlendirilmiş olduğundan Authorization oluşur. |
Kategori 403 | İstemcinin istenen işlemi gerçekleştirmesine izin verilmiyor. İşlem aşağıdaki nedenlerle başarısız olabilir.
|
404 | İstenen kaynak bulunamadı. Bu durum kodu genellikle geçersiz bir istek URI'si olduğunu gösterir. |
500 | Direct Line hizmetinde bir iç sunucu hatası oluştu. |
502 | Bot kullanılamıyor veya bir hata döndürdü. Bu yaygın bir hata kodudur. |
Not
Http durum kodu 101, WebSocket bağlantı yolunda kullanılır, ancak bu büyük olasılıkla WebSocket istemciniz tarafından işlenir.
Hatalar
4xx aralığında veya 5xx aralığında bir HTTP durum kodu belirten herhangi bir yanıt, yanıtın gövdesinde hata hakkında bilgi sağlayan bir ErrorResponse nesnesi içerir. 4xx aralığında bir hata yanıtı alırsanız, hatanın nedenini belirlemek için ErrorResponse nesnesini inceleyin ve isteği yeniden göndermeden önce sorununuzu çözün.
Not
ErrorResponse nesnesinin code
içindeki özelliğinde belirtilen HTTP durum kodları ve değerleri kararlıdır. ErrorResponse nesnesinin içindeki özelliğinde message
belirtilen değerler zaman içinde değişebilir.
Aşağıdaki kod parçacıkları örnek bir isteği ve sonuçta elde edilen hata yanıtını gösterir.
İste
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Response
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Belirteç işlemleri
İstemcinin tek bir konuşmaya erişmek için kullanabileceği bir belirteç oluşturmak veya yenilemek için bu işlemleri kullanın.
Operasyon | Açıklama |
---|---|
Belirteç Oluştur | Yeni bir konuşma için belirteç oluşturma. |
Yenileme Belirteci | Belirteci yenileyin. |
Belirteç Oluştur
Bir konuşma için geçerli olan bir belirteç oluşturur.
POST /v3/directline/tokens/generate
İçerik | Açıklama |
---|---|
İstek gövdesi | TokenParameters nesnesi |
İadeler | Konuşma nesnesi |
Yenileme Belirteci
Belirteci yeniler.
POST /v3/directline/tokens/refresh
İçerik | Açıklama |
---|---|
İstek gövdesi | yok |
İadeler | Konuşma nesnesi |
Konuşma işlemleri
Botunuzla bir konuşma açmak ve istemci ile bot arasında etkinlik alışverişi yapmak için bu işlemleri kullanın.
Operasyon | Açıklama |
---|---|
Konuşmayı Başlat | Botla yeni bir konuşma açar. |
Konuşma Bilgilerini Alma | Mevcut bir konuşma hakkında bilgi alır. Bu işlem, istemcinin konuşmaya yeniden bağlanmak için kullanabileceği yeni bir WebSocket akış URL'si oluşturur. |
Etkinlik Alma | Bottan etkinlikleri alır. |
Etkinlik Gönder | Bota bir etkinlik gönderir. |
Dosyaları Karşıya Yükleme ve Gönderme | Dosyaları karşıya yükler ve ek olarak gönderir. |
Konuşmayı Başlat
Botla yeni bir konuşma açar.
POST /v3/directline/conversations
İçerik | Açıklama |
---|---|
İstek gövdesi | TokenParameters nesnesi |
İadeler | Konuşma nesnesi |
Konuşma Bilgilerini Alma
Mevcut bir konuşma hakkında bilgi alır ve ayrıca istemcinin konuşmaya yeniden bağlanmak için kullanabileceği yeni bir WebSocket akış URL'si oluşturur. İsteğe bağlı olarak istemci tarafından görülen en son iletiyi belirtmek için istek URI'sinde parametresini belirtebilirsiniz watermark
.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
İçerik | Açıklama |
---|---|
İstek gövdesi | yok |
İadeler | Konuşma nesnesi |
Etkinlik Alma
Belirtilen konuşma için bottan etkinlikleri alır. İsteğe bağlı olarak istemci tarafından görülen en son iletiyi belirtmek için istek URI'sinde parametresini belirtebilirsiniz watermark
.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
Etkinlik Gönder
Bota bir etkinlik gönderir.
POST /v3/directline/conversations/{conversationId}/activities
İçerik | Açıklama |
---|---|
İstek gövdesi | Activity nesnesi |
İadeler | Bota gönderilen Etkinliğin kimliğini belirten bir özellik içeren ResourceResponseid . |
Dosyaları Karşıya Yükleme ve Gönderme
Dosyaları karşıya yükler ve ek olarak gönderir. ekleri userId
gönderen kullanıcının kimliğini belirtmek için istek URI'sindeki parametresini ayarlayın.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
İçerik | Açıklama |
---|---|
İstek gövdesi | Tek bir ek için istek gövdesini dosya içeriğiyle doldurun. Birden çok ek için, her ek için bir bölüm içeren çok bölümlü bir istek gövdesi oluşturun ve ayrıca (isteğe bağlı olarak) belirtilen ekler için kapsayıcı olarak görev yapması gereken Activity nesnesi için bir bölüm oluşturun. Daha fazla bilgi için bkz . Bota etkinlik gönderme. |
İadeler | Bota gönderilen Etkinliğin kimliğini belirten bir özellik içeren ResourceResponseid . |
Not
Karşıya yüklenen dosyalar 24 saat sonra silinir.
Şema
Direct Line 3.0 şeması, Bot Framework şeması tarafından tanımlanan tüm nesnelerin yanı sıra Doğrudan Çizgi'ye özgü bazı nesneleri içerir.
ActivitySet nesnesi
Bir etkinlik kümesini tanımlar.
Özellik | Türü | Açıklama |
---|---|---|
Faaliyetleri | Etkinlik[] | Etkinlik nesneleri dizisi. |
Filigran | Dize | Küme içindeki etkinliklerin en büyük filigranı. İstemci, bottan etkinlik alırken veya yeni bir WebSocket akış URL'si oluştururken gördüğü en son iletiyi belirtmek için değerini kullanabilirwatermark . |
Konuşma nesnesi
Bir Direct Line konuşması tanımlar.
Özellik | Türü | Açıklama |
---|---|---|
conversationId | Dize | Belirtilen belirtecin geçerli olduğu konuşmayı benzersiz olarak tanımlayan kimlik. |
Etag | Dize | HTTP ETag (varlık etiketi). |
expires_in | Numara | Belirtecin süresi dolana kadar olan saniye sayısı. |
referenceGrammarId | Dize | Bu bot için başvuru dil bilgisi kimliği. |
streamUrl | Dize | Konuşmanın ileti akışının URL'si. |
Belirte -ci | Dize | Belirtilen konuşma için geçerli olan belirteç. |
TokenParameters nesnesi
Belirteç oluşturmaya yönelik parametreler.
Özellik | Türü | Açıklama |
---|---|---|
Etag | Dize | HTTP ETag (varlık etiketi). |
trustedOrigins | string[] | Belirtecin içine katıştırmak için güvenilen kaynaklar. |
kullanıcı | ChannelAccount | Belirtecin içine eklemek için kullanıcı hesabı. |
Aktiviteler
Bir istemcinin Doğrudan Hat aracılığıyla bottan aldığı her Etkinlik için:
- Ek kartları korunur.
- Karşıya yüklenen eklerin URL'leri özel bir bağlantıyla gizlenir.
channelData
özelliği değiştirilmeden korunur.
İstemciler bir ActivitySet'in parçası olarak bottan birden çok etkinlik alabilir.
bir istemci Doğrudan Hat aracılığıyla bota gönderdiğinde Activity
:
- özelliği,
type
gönderdiği tür etkinliğini belirtir (genellikle ileti). from
özelliği, istemci tarafından seçilen bir kullanıcı kimliğiyle doldurulmalıdır.- Ekler, Doğrudan Çizgi ek uç noktası aracılığıyla karşıya yüklenen mevcut kaynaklara veya URL'lere URL'ler içerebilir.
channelData
özelliği değiştirilmeden korunur.- JSON ve şifrelenmiş olarak seri hale getirildiğinde etkinliğin toplam boyutu 256.000 karakteri aşmamalıdır. Etkinlikleri 150 binin altında tutmanızı öneririz. Daha fazla veri gerekiyorsa etkinliği bölmeyi veya ekleri kullanmayı göz önünde bulundurun.
İstemciler istek başına tek bir etkinlik gönderebilir.