Ekran Alıntısı Aracı'nı başlat

Bu makalede, ms-screenclip: URI (Tekdüzen Kaynak Tanımlayıcısı) şemasını kullanarak birinci ve üçüncü taraf uygulamaları Windows Ekran Alıntısı Aracı ile tümleştirme protokolünü belirtir. Protokol, Ekran Alıntısı Aracı aracılığıyla görüntü ve video (ses ile) yakalamayı destekler ve uygulama arayanlar, uygulamalarının görüntüleneceği Ekran Alıntısı Aracı özelliklerini seçebilir.

Important

Bu protokol için paketlenmiş Windows uygulaması (MSIX) gerekir. Uygulamanız paketlendiğinde, işletim sistemi uygulamanızın kimliğini Ekran Alıntısı Aracı'na otomatik olarak sağlar ve bu da yakalama yanıtını uygulamanıza güvenli bir şekilde yönlendirmek için bunu kullanır. Paketlenmemiş (Win32) arayanlar redirect-uri üzerinden yanıt alamaz. Paketlenmemiş bir uygulama bir redirect-uri sağlarsa, Ekran Alıntısı Aracı yanıtı sağlamaz ve yakalama arabirimini göstermeden çıkabilir.

Note

Bu protokol, artık kullanım dışı olan Ekran alıntısını başlatma (Kullanım dışı) bölümünde belgelenen deneyimin yerini alır.

Desteklenen özellikler

Ekran Alıntısı Aracı protokolü aşağıdaki özellikleri destekler:

  • Dikdörtgen Ekran Görüntüsü
  • Serbest Biçimli Yakalama
  • Pencere Yakalama
  • Ekran Kaydı
  • Kullanılabilir yakalama modlarını özelleştirme
  • Otomatik kaydetme (isteğe bağlı)

Protokol belirtimi

URI Biçimi:ms-screenclip://{host}/{path}?{query parameters}

Bileşen Description Değerler
Düzeni Ekran Alıntısı Aracı için özel şema ms-screenclip
Host Ekran Alıntısı Aracı ile gerçekleştirilecek işlem capture veya discover
Path Yakalanacak ortam türü (yalnızca capture sunucu için geçerlidir; discover sunucunun yolu yoktur) /image veya /video
Sorgu İşlemin parametreleri Aşağıdaki tablolara bakın

Note

Yollar ve sorgu parametresi adları büyük/küçük harfe duyarlı değildir. Örneğin, ms-screenclip://capture/Image?Redirect-Uri=my-app://response ile ms-screenclip://capture/image?redirect-uri=my-app://responseaynı şekilde davranır.

Ana bilgisayar yakalama

Snipping Tool'un capture yakalama katmanını başlatmak için ana bilgisayarı kullanın.

Yol

Yol Description
/image Görüntü yakalamayı başlatır (ekran görüntüsü). Bir mod parametresi gerektirir.
/video Video yakalamayı (ekran kaydı) başlatır. Her zaman dikdörtgen modunu kullanır.

Mod parametreleri (yakalama/görüntü)

Yol için /image tam olarak bir mod parametresi belirtmeniz gerekir. Mod parametreleri, değer içermeyen çıplak sorgu parametreleridir.

Parametre Description
rectangle Etkileşimli dikdörtgen yakalama modu.
freeform Etkileşimli serbest biçimli yakalama modu.
window Etkileşimli pencere yakalama modu.

Important

Mod parametreleri bir değer olmadan belirtilmelidir. Örneğin, &rectangle kullanmayın&rectangle=value. Bir değer sağlanması hata yanıtına neden olur.

için /image, tam olarak bir mod parametresi belirtmeniz gerekir. Sıfır veya birden fazla mod belirtilmesi hata 400 Bad Request yanıtına neden olur. /video için herhangi bir mod parametresi göz ardı edilir.

Sorgu parametreleri (yakalama)

Note

Sorgu parametreleri herhangi bir sırada sağlanabilir.

Parametre Türü Zorunlu Description Varsayılan
redirect-uri URI Yes Ekran Alıntısı Aracı'nın yakalama yanıtını gönderdiği geri çağırma URI'sini seçin. Uygulamanızın bu URI düzeni için bir protokol işleyicisi kaydetmesi gerekir. Atlanırsa Ekran Alıntısı Aracı yakalama kullanıcı arabirimini görüntülemez ve yanıt döndürmez. Yok
user-agent String Hayır (kesinlikle önerilir) Günlüğe kaydetme ve analiz için kullanılan arama uygulamasının tanımlayıcısı. Gerekli desteği kanallar üzerinden alarak sorunları teşhis edin; bunu yapmamak kendi riskinizi doğurur. Yok
api-version String Hayı Kullanılacak protokol sürümü, örneğin "1.2". Belirtilmezse, istek sürümü 1.2olarak işlenir. 1.2
x-request-correlation-id String Hayı İsteğin benzersiz tanımlayıcısı, belirli bir işleme veya olay zincirine başvuruya izin verir. Otomatik oluşturulan GUID
enabledModes dize (liste) Hayı Kullanıcı arabiriminde hangi yakalama modlarının kullanılabilir olduğunu denetler. Aşağıdaki EnabledModes bölümüne bakın. Yalnızca URI'de belirtilen mod
auto-save flag Hayı Bulunduğunda, yakalanan ekran görüntüsü veya kayıt otomatik olarak kullanıcının cihazına kaydedilir. Yok (otomatik kaydetme yok)

Note

api-version Varsayılan değeri1.2, daha yeni protokol sürümleri yayınlandığında değişmez. Atlanmış api-version talepler her zaman 1.2 olarak işlenir. Sonraki bir sürüme eklenen özellikleri kullanmak için bu sürüme ayarlayın api-version . Uygulamanızın api-version örtük varsayılan yerine bilinen bir protokol sürümüne bağlı kalması için her istekte açıkça belirtmenizi öneririz.

Note

sağladığınızdaapi-version, yanıtın /discover dizisindeki supportedVersions değerlerden biriyle (şu anda 1.0, 1.1ve 1.2) tam olarak eşleşmelidir. Diğer tüm değerler — 1.15 gibi ara değerler ve 1.0abc gibi yanlış biçimlendirilmiş değerler de dahil — bir 400 Bad Request yanıtı döner. Belirli bir Ekran Alıntısı Aracı derlemesinin kabul ettiği sürüm kümesini bulmak için discover host'u çağırın.

Note

auto-save bayrağı, kullanıcının Ekran Alıntısı Aracı ayarlarına saygı gösterir. Kullanıcı Ekran Alıntısı Aracı'nda otomatik kaydetmeyi devre dışı bırakmışsa, isteğiniz auto-save içerdiğinde bile yakalama cihazda kaydedilmez.

Sunucuyu keşfet

Ekran Alıntısı Aracı'nın discover desteklenen özelliklerini, modlarını ve protokol sürümünü çalışma zamanında sorgulamak için sunucuyu kullanın. Bu, yakalama isteği yapmadan önce uyumluluğu denetlemek için kullanışlıdır.

Sorgu parametreleri (keşfetme)

Parametre Türü Zorunlu Description Varsayılan
redirect-uri URI Yes Ekran Alıntısı Aracı'nın yetenek yanıtını gönderdiği geri çağırma URI'si. Uygulamanızın bu URI düzeni için bir protokol işleyicisi kaydetmesi gerekir. Atlanırsa Ekran Alıntısı Aracı yanıt döndürmez. Yok
user-agent String Hayır (kesinlikle önerilir) Analiz ve kaydetme için kullanılan çağrı yapan uygulamanın tanımlayıcısı. Yok
x-request-correlation-id String Hayı İstek için benzersiz tanımlayıcı. Otomatik oluşturulan GUID

Örnek bulma

ms-screenclip://discover?user-agent=MyApp&redirect-uri=my-app://response

Yanıt biçimini bulma

Yanıt, yeniden yönlendirme URI'sine sorgu parametresi olarak discover eklenen bir JSON nesnesidir. Şunları içerir:

  • version: Ekran Alıntısı Aracı derlemesi tarafından desteklenen en son protokol sürümü.
  • defaultVersion: Bir istek api-version'i atlarsa protokol sürümü varsayılır. Sabitlenmemiş isteklerinizin nasıl yorumlandığı hakkında bilgi edinmek için bunu okuyun.
  • supportedVersions: Bu Ekran Alıntısı Aracı derlemesi tarafından kabul edilen protokol sürümleri dizisi.
  • capabilities: Desteklenen yakalama işlemlerinin dizisi, her biri şu şekildedir:
    • path: Yakalama uç noktası (örneğin, capture/image, capture/video).
    • methods: Desteklenen HTTP benzeri yöntemler.
    • parameters: Uç nokta için kullanılabilir parametreler.
    • description: Özelliğin açıklaması.
{
  "version": 1.2,
  "defaultVersion": 1.2,
  "supportedVersions": [1.0, 1.1, 1.2],
  "capabilities": [
    {
      "path": "capture/image",
      "methods": ["GET"],
      "parameters": ["rectangle", "freeform", "window"],
      "description": "Captures an image with options for shape."
    },
    {
      "path": "capture/video",
      "methods": ["GET"],
      "parameters": [],
      "description": "Captures a video in a defined area."
    }
  ]
}

Etkin Modlar

parametresi, enabledModes Ekran Alıntısı Aracı kullanıcı arabiriminde hangi yakalama modlarının kullanılabilir olduğunu denetlemenize olanak tanır. Kullanıcının seçimlerini uygulamanızın gereksinimlerine uyacak şekilde kısıtlamak veya genişletmek için kullanın.

Desteklenen modlar

Mode Description
RectangleSnip Dikdörtgen yakalama modu.
WindowSnip Pencere yakalama modu.
FreeformSnip Serbest biçimli yakalama modu.
FullscreenSnip Tam ekran yakalama modu.
SnippingAllModes Tüm görüntü yakalama modları: RectangleSnip, WindowSnip, FreeformSnip, FullscreenSnip.
RectangleRecord Dikdörtgen kayıt modu.
RecordAllModes Tüm kayıt modları: şu anda yalnızca RectangleRecord.
All Desteklenen tüm modlar: SnippingAllModes ile RecordAllModes birleşimi.

Tavsiye

All, SnippingAllModesve RecordAllModes toplam değerlerdir. İçerdikleri modlar Ekran Alıntısı Aracı sürümleri arasında değişebilir. Bu değerlerden birini kullanan bir uygulama, gelecek sürümlerde eklenen modları otomatik olarak alır. Kullanılabilir mod kümesini güncelleştirmeler arasında sabit tutmak için belirli modları açıkça listeleyin (örneğin, RectangleSnip,FreeformSnip).

Important

  • /image için, rectangle belirtildiğinde bile, URI'de bir mod parametresi (örneğin, freeform, window, ) enabledModes. mode parametresi başlangıçta seçilen modu belirler.
  • URI'de belirtilen mod, enabledModes içinde listelenmese bile kullanıcı arabiriminde her zaman kullanılabilir. Örneğin, ?freeform&enabledModes=RectangleSnip hem URI'den serbest biçimli hem de dikdörtgen biçimli ekran alıntısını kullanılabilir hale getirir ve serbest biçimli önceden seçilmiştir.
  • Atlanırsa enabledModes , kullanıcı arabiriminde yalnızca URI'de belirtilen mod kullanılabilir.
  • /image için, hiçbir mod parametresi belirtilmezse istek geçersizdir ve enabledModes bağlı olmaksızın bir hatayla sonuçlanır.

EnabledModes örnekleri

Yalnızca dikdörtgen ekran alıntısını etkinleştir:

ms-screenclip://capture/image?rectangle&enabledModes=RectangleSnip&user-agent=MyApp&redirect-uri=my-app://response

Dikdörtgen ve pencere kesimini etkinleştir:

ms-screenclip://capture/image?rectangle&enabledModes=RectangleSnip,WindowSnip&user-agent=MyApp&redirect-uri=my-app://response

Tüm ekran alıntısı modlarını etkinleştirin:

ms-screenclip://capture/image?rectangle&enabledModes=SnippingAllModes&user-agent=MyApp&redirect-uri=my-app://response

Yalnızca kayıt modunu etkinleştir:

ms-screenclip://capture/video?enabledModes=RecordAllModes&user-agent=MyApp&redirect-uri=my-app://response

Birden çok ekran alıntısı ve kayıt modunu etkinleştirin:

ms-screenclip://capture/image?freeform&enabledModes=RectangleSnip,RectangleRecord&user-agent=MyApp&redirect-uri=my-app://response

Serbest biçim URI'de belirtildiğinden, önceden seçilir. Kullanıcılar serbest biçimli, dikdörtgen ekran alıntısı ve dikdörtgen kaydı arasında geçiş yapabilir.

Responses

Kullanıcı bir yakalamayı tamamladıktan veya iptal ettikten sonra Ekran Alıntısı Aracı aracılığıyla redirect-uri uygulamanıza bir yanıt gönderir. Yanıt, yeniden yönlendirme URI'nize eklenen URI sorgu parametreleri olarak yapılandırılır.

Sorgu parametreleriniz redirect-uri zaten içeriyorsa (örneğin, my-app://response?sessionId=abc), bu parametreler korunur ve yanıt parametreleri ile &eklenir. Bunu, geri çağırma aracılığıyla arayana özgü gidiş dönüş durumu için kullanabilirsiniz; değer sessionId=abc yanıt URI'sinde , code, reasonve (başarılı bir yakalama için) x-request-correlation-idile file-access-tokenbirlikte geri yansıtılır.

Yanıt parametreleri

Parametre Türü Hediye Description
code int Always Sonucu gösteren HTTP stili durum kodu.
reason String Always Sonucun insan tarafından okunabilen açıklaması.
x-request-correlation-id String Always Özgün istekten olan ilişkilendirme kimliği (veya otomatik oluşturulan bir kimlik).
file-access-token String Yalnızca başarı SharedStorageAccessManager Yakalanan medyayı temsil eden bir belirteç. Dosyayı almak için bunu kullanın.
discover String Yalnızca keşfet Yetenek yanıtını içeren URL ile kodlanmış JSON.

Durum kodları

Kod Reason Description
200 Success Yakalama başarıyla tamamlandı. A file-access-token yanıta dahil edilir.
400 Hatalı İstek - Geçersiz veya Eksik Parametreler İstek işlenemedi. Tüm gerekli parametrelerin mevcut ve geçerli olup olmadığını denetleyin.
408 İstem Zaman Aşımı - İşlem Çok Uzun Sürdü İşlem tamamlanmadan önce zaman aşımına uğradı.
499 İstemci Kapalı İsteği - Kullanıcı Ekran Alıntısını İptal Etti Kullanıcı Escape tuşuna basarak veya uzağa tıklayarak yakalamayı iptal etti. Yalnızca /image ve /video için geçerlidir.
500 İç Sunucu Hatası - İşleme Başarısız Oldu Yakalama sırasında beklenmeyen bir hata oluştu.

Örnek yanıtlar

Başarılı yakalama:

my-app://response?code=200&reason=Success&x-request-correlation-id=aaaa0000-bb11-2222-33cc-444444dddddd&file-access-token=cccc2222-dd33-4444-55ee-666666ffffff

Kullanıcı iptal edildi:

my-app://response?code=499&reason=Client%20Closed%20Request%20-%20User%20Cancelled%20the%20Snip&x-request-correlation-id=bbbb1111-cc22-3333-44dd-555555eeeeee

Geçersiz istek (eksik mod parametresi):

my-app://response?code=400&reason=Bad%20Request%20-%20Invalid%20or%20Missing%20Parameters&x-request-correlation-id=bbbb1111-cc22-3333-44dd-555555eeeeee

Tam URI örnekleri

Kullanım Örneği URI Description
Dikdörtgen ekran görüntüsü ms-screenclip://capture/image?rectangle&user-agent=MyApp&redirect-uri=my-app://response Etkileşimli dikdörtgen yakalama. Sonuç çağırana döndürüldü.
Serbest biçimli ekran görüntüsü ms-screenclip://capture/image?freeform&user-agent=MyApp&redirect-uri=my-app://response Etkileşimli serbest biçimli kaydetme. Sonuç çağrıyı başlatana döndürüldü.
Pencere ekran görüntüsü ms-screenclip://capture/image?window&user-agent=MyApp&redirect-uri=my-app://response Etkileşimli pencere yakalama. Sonuç çağırana döndürüldü.
Ekran kaydı ms-screenclip://capture/video?user-agent=MyApp&redirect-uri=my-app://response Etkileşimli ekran kaydı. Sonuç çağırana döndürüldü.
Özellikleri keşfetme ms-screenclip://discover?user-agent=MyApp&redirect-uri=my-app://response Desteklenen özellikleri sorgulayın. Çağırana döndürülen JSON özellikleri.
Otomatik kaydetme özelliğine sahip dikdörtgen ms-screenclip://capture/image?rectangle&auto-save&user-agent=MyApp&redirect-uri=my-app://response Dikdörtgen yakalama otomatik kaydetme etkin.
Tüm modlara sahip dikdörtgen ms-screenclip://capture/image?rectangle&enabledModes=All&user-agent=MyApp&redirect-uri=my-app://response Önceden seçilmiş dikdörtgen yakalama, kullanıcı arabiriminde tüm modlar kullanılabilir.

Uygulamanızdan başlatma

Paketlenmiş uygulamanızdan Ekran Alıntısı Aracı'nı başlatmak için Launcher.LaunchUriAsync kullanmalısınız. Diğer başlatma yöntemleri (örneğin Process.Start veya kabuk yürütme gibi) uygulamanızın kimliğini sağlamaz ve Ekran Alıntısı Aracı bir yanıt iletmez.

1. Adım: Protokol işleyicisini kaydetme

Uygulamanızın geri çağırma yanıtını alabilmesi için özel Package.appxmanifest bir protokol kaydedin. Protokol adı, içinde redirect-urikullanılan şemayla eşleşmelidir.

<Extensions>
  <uap:Extension Category="windows.protocol">
    <uap:Protocol Name="my-app" DesiredView="default">
      <uap:DisplayName>My App Protocol</uap:DisplayName>
    </uap:Protocol>
  </uap:Extension>
</Extensions>

Protokol etkinleştirmelerini kaydetme ve işleme hakkında daha fazla bilgi için bkz. URI etkinleştirmesini işleme.

2. Adım: Ekran Alıntısı Aracı'nı başlatma

// Capture a screenshot in rectangle mode
var uri = new Uri(
    "ms-screenclip://capture/image"
    + "?rectangle"
    + "&user-agent=MyApp"
    + "&redirect-uri=my-app://capture-response"
    + "&x-request-correlation-id=" + Guid.NewGuid().ToString()
);
await Launcher.LaunchUriAsync(uri);
// Record a video
var uri = new Uri(
    "ms-screenclip://capture/video"
    + "?user-agent=MyApp"
    + "&redirect-uri=my-app://capture-response"
);
await Launcher.LaunchUriAsync(uri);
// Discover capabilities (returns immediately, no capture UI)
var uri = new Uri(
    "ms-screenclip://discover"
    + "?user-agent=MyApp"
    + "&redirect-uri=my-app://discover-response"
);
await Launcher.LaunchUriAsync(uri);

3. Adım: Yanıtı işleme

Yakalama tamamlandığında (veya kullanıcı iptal ettiğinde), Ekran Alıntısı Aracı, sonuç parametrelerini sorgu dizeleri olarak ekleyerek redirect-uri aracılığıyla uygulamanızı etkinleştirir. Entegrasyonların çoğu, yanıt geldiğinde zaten çalışıyor — arayan, Ekran Alıntısı Aracı'nı başlattı ve geri çağırmayı bekledi — bu yüzden uygulamanızın hem soğuk başlatmayı (uygulama çalışmıyordu) hem de sıcak yeniden etkinleştirmeyi (uygulama zaten çalışıyor) işleyebilmesi gerekir. App.xaml.cs içindeki her iki yola da kaydolun.

Yakalama yanıtını işleme (görüntü veya video):

// In App.xaml.cs: handle protocol activation for both cold-start and warm re-activation
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
    // Cold-start path: the app was launched by Snipping Tool's callback.
    var activatedArgs = Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
    if (activatedArgs.Kind == Microsoft.Windows.AppLifecycle.ExtendedActivationKind.Protocol)
    {
        if (activatedArgs.Data is Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs protocolArgs)
        {
            _ = HandleProtocolActivationAsync(protocolArgs.Uri);
        }
    }

    // Warm re-activation path: the app is already running when the callback arrives.
    Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().Activated += (sender, e) =>
    {
        if (e.Kind == Microsoft.Windows.AppLifecycle.ExtendedActivationKind.Protocol &&
            e.Data is Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs protocolArgs)
        {
            _ = HandleProtocolActivationAsync(protocolArgs.Uri);
        }
    };
}

private async Task HandleProtocolActivationAsync(Uri uri)
{
    var query = new WwwFormUrlDecoder(uri.Query);

    var code = query.GetFirstValueByName("code");
    var reason = query.GetFirstValueByName("reason");

    if (code == "200")
    {
        var token = query.GetFirstValueByName("file-access-token");
        var file = await SharedStorageAccessManager.RedeemTokenForFileAsync(token);

        // Use the captured file (see "Retrieving captured media" below)
    }
    else
    {
        // Handle error (400, 408, 499, 500)
        Debug.WriteLine($"Snipping Tool returned {code}: {reason}");
    }
}

Keşfet yanıtını işle:

private void HandleDiscoverResponse(Uri uri)
{
    var query = new WwwFormUrlDecoder(uri.Query);

    var code = query.GetFirstValueByName("code");

    if (code == "200")
    {
        var discover = query.GetFirstValueByName("discover");
        // discover contains a URL-encoded JSON capabilities payload
        var capabilities = Uri.UnescapeDataString(discover);
        // Parse the JSON to inspect supported capture modes
    }
}

Tavsiye

İstekle bir x-request-correlation-id gönderdiyseniz, yanıtın aynı değeri tekrar ettiğini doğrulayarak yanıtı işlemdeki doğru isteğe eşleştirebildiğinizden emin olun. Ekran Alıntısı Aracı'nın otomatik olarak oluşturmasına izin verirseniz, yanıt oluşturulan değeri taşır; bunu en son uçuş içi isteğinizle eşleşmiş gibi kabul eder.

Belirteci kullanarak yakalanan medyayı geri alma

SharedStorageAccessManager sınıfını kullanarak file-access-token'yi onaylayın ve yakalanan dosyaya erişin.

Token kısıtlamaları:

  • Belirteç yalnızca bir kez kullanılabilir. Kullanımdan sonra artık geçerli değildir.
  • Belirteç 14 gün sonra geçerliliğini yitirir.
  • Bir uygulamada 1000'den fazla etkin belirteç olamaz. Belirteç kullanıldıktan, kaldırıldıktan veya süresi dolduktan sonra kotaya göre sayılmaz.
// Redeem the token and display the captured image
var file = await SharedStorageAccessManager.RedeemTokenForFileAsync(token);

using (var stream = await file.OpenReadAsync())
{
    var bitmap = new BitmapImage();
    await bitmap.SetSourceAsync(stream);
    MyImage.Source = bitmap;
}

// Or copy to your app's local storage
var localFolder = ApplicationData.Current.LocalFolder;
await file.CopyAsync(localFolder, file.Name, NameCollisionOption.GenerateUniqueName);

Güvenlik konuları

Kesme Aracı, tüm redirect-uri değerlerini başlatmadan önce doğrular. Aşağıdaki korumalar uygulanır:

  • Paketlenmiş uygulama çağrıları: Uygulamanız paketlenmiş bir Windows uygulaması (MSIX) olduğunda, işletim sistemi yakalama yanıtını güvenli bir şekilde uygulamanıza yönlendirir ve yalnızca uygulamanızın bu yanıtı alabilmesini sağlar. Bu, önerilen tümleştirme yoludur.
  • Giriş doğrulaması: Ekran Alıntısı Aracı UNC yolları, baştaki/sondaki boşluk veya denetim karakterleri içeren yeniden yönlendirme URI'lerini reddeder.
  • Parça içermez: URL fragmenti (örneğin, my-app://response#section) içeren yönlendirme URI'leri reddedilir. Ekran Alıntısı Aracı yanıt parametrelerini sorgu dizesi olarak ekler ve bir parça bunları yutacak.
  • Öz referanslı koruma: Ekran Alıntısı Aracı'nın özyineleme ile etkinleştirilmesine neden olabilecek yeniden yönlendirme URI'leri engellenir.

Important

Uygulamaları çağırmak için:

  • Uygulamanızın yanıtı alabilmesi için yeniden yönlendirme URI'niz için bir protokol işleyicisi kaydedin.
  • Yanıtta alınan tüm parametreleri işlemeden önce doğrulayın ve temizleyin.
  • Eski x-request-correlation-id bir yanıtı işlemekten veya eşzamanlı istekleri karıştırmaktan kaçınmak için yanıtın uçuş içi isteğinizle eşleşip eşleşmediğini doğrulayın. Correlation-id karışıklığı önler; belirteç kökenini oluşturmaz; güvenli belirteç yönlendirmesi paketlenmiş uygulama geri çağırma kanalından gelir.