13.19
Konuşma kayıtlarında arama
/<guild_id>/api/transcripts/searchSunucudaki kapanmış her talepte yalnızca üstverilerde değil, içeriğinde de arama yapar: içinde neler söylendiği, kimin söylediği, kimlerin katıldığı, ne zaman açılıp kapandığı, hangi panele ait olduğu, değerlendirmesi veya Discord kanal kimliği. Paneldeki derin aramanın aynısıdır. `search_transcripts` yetkisi gerekir (varsayılan olarak kapalı).
/<guild_id>/api/transcripts/searchAynısı, ancak süzgeçler sorgu parametresi yerine JSON gövdesiyle gönderilir. Uzun sorgular ve katılımcı listeleri için daha rahattır. İkisini birden gönderirseniz gövde geçerli olur.
Her sonuç talebin üstverilerini, en fazla 8 katılımcıyı ve içeriğe göre arama yaptıysanız eşleşmenin *nedenini* görebilmeniz için en fazla 3 eşleşen mesaj parçasını taşır. Herhangi bir sonuçtaki TicketId değerini bütün mesaj listesi için Konuşma kaydı getirme uç noktasına, hazır arşiv için Konuşma kaydı HTML'i getirme uç noktasına verin.
Süzgeçler (hepsi isteğe bağlı; istediğiniz kadarını birleştirin)
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| q | string | isteğe bağlı | Mesaj içeriğinde serbest metin araması, en fazla 200 karakter. 3 karakterden kısa sözcükler dizinde yok sayılır. |
| said_by | string | isteğe bağlı | Yalnızca bu Discord kullanıcı kimliğinin yazdığı içerikte arar. q ile birlikte kullanın. |
| participants | string[] | isteğe bağlı | Talepte yazmış en fazla 5 kullanıcı, her biri Discord kullanıcı kimliği veya kullanıcı adının bir parçası olarak. GET'te virgülle ayrılır, POST'ta dizi olarak verilir. |
| participants_mode | string | isteğe bağlı | all (varsayılan) belirtilen bütün katılımcıların aynı talepte yazmış olmasını ister; any en az birinin yazdığı talepleri bulur. |
| include_bots | boolean | isteğe bağlı | Bot mesajlarını ve bot katılımcıları eşleşmeye katar. Varsayılan false. |
| opened_by | string | isteğe bağlı | Talebi açan kişi, Discord kullanıcı kimliği veya kullanıcı adının bir parçası olarak. |
| closed_by | string | isteğe bağlı | Talebi kapatan kişinin Discord kullanıcı kimliği. |
| channel_id | string | isteğe bağlı | Talebin geçtiği Discord kanal veya başlık kimliği. |
| panel_id | number | isteğe bağlı | Yalnızca bu panelden açılan talepler. |
| opened_from | number | isteğe bağlı | Unix zaman damgası: yalnızca bu zamanda veya sonrasında açılan talepler. |
| opened_to | number | isteğe bağlı | Unix zaman damgası: yalnızca bu zamanda veya öncesinde açılan talepler. |
| closed_from | number | isteğe bağlı | Unix zaman damgası: yalnızca bu zamanda veya sonrasında kapanan talepler. |
| closed_to | number | isteğe bağlı | Unix zaman damgası: yalnızca bu zamanda veya öncesinde kapanan talepler. |
| rating_min | number | isteğe bağlı | En düşük değerlendirme puanı, 1-5. |
| rating_max | number | isteğe bağlı | En yüksek değerlendirme puanı, 1-5. |
| limit | number | isteğe bağlı | Sayfa başına sonuç sayısı, 1-50 (varsayılan 25). |
| offset | number | isteğe bağlı | Sayfalama için atlanacak sonuç sayısı, en fazla 10000 (varsayılan 0). |
Arama, diğer okumalardan ayrı olarak jeton başına dakikada 10 istekle sınırlıdır ve sıkı bir süre bütçesiyle çalışır. Zamanında bitmeyen arama 504 döndürür. Aynı sorguyu yinelemek yerine süzgeçleri daraltın (tarih aralığı veya panel ekleyin) ve yeniden deneyin. Doğrulamadan geçmeyen değerler isteği reddetmek yerine düşürülür, bu yüzden tam olarak neyin uygulandığını görmek için yanıtta geri dönen filters nesnesine bakın.
Arama, sunucuda Premium varken kurulan ve ilk yükseltmenizde mevcut arşivinize de uygulanan konuşma kaydı dizinini okur. Her yanıttaki coverage nesnesi, sakladığınız toplam kayıt (total) içinde kaçının dizinlendiğini (indexed) söyler. Dizin doldurma sürüyorsa bu iki sayı henüz uyuşmaz.
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
"https://api.ticketsx.xyz/<guild_id>/api/transcripts/search?q=refund&participants=123456789,987654321&participants_mode=all&closed_from=1730000000&limit=25"curl -X POST \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"q":"refund","participants":["123456789","987654321"],"participants_mode":"all","closed_from":1730000000,"limit":25}' \
https://api.ticketsx.xyz/<guild_id>/api/transcripts/search{
"transcripts": [
{
"TicketId": 42,
"AuthorId": "123456789",
"AuthorUsername": "jane",
"PanelId": 1,
"PanelName": "Support",
"Rating": 5,
"RatingCount": 1,
"CloseReason": "Resolved",
"CreatedAt": 1732200000,
"ClosedAt": 1732210000,
"ChannelId": "1122334455",
"ClosedBy": "987654321",
"Participants": [
{ "UserId": "123456789", "Username": "jane", "MessageCount": 12, "IsBot": false }
],
"Snippets": [
{ "AuthorId": "123456789", "AuthorUsername": "jane", "Content": "my refund never arrived", "CreatedAt": 1732200050 }
]
}
],
"pagination": { "total": 1, "limit": 25, "offset": 0, "returned": 1 },
"coverage": { "indexed": 480, "total": 480 },
"filters": { "q": "refund", "participants_mode": "all", "limit": 25 }
}