Aracılığıyla paylaş


Cihazlar Arası Devam Ettirme (XDR) uygulamak için WNS Bildirimlerini kullanma

Birinci ve üçüncü taraflara yönelik bu adım adım kılavuz, uygulama sürekliliğini (özgeçmiş) Windows Anında İletilen Bildirim Hizmeti (WNS) ham bildirimleriyle tümleştirme hakkında ayrıntılı bir genel bakış sağlar. Kanal URI'sine POST istekleri göndermek için önkoşullar, ilgili genel belgelere başvurular ve kod parçacıkları içerir.

Windows'ta Onboardinge Devam Etme

Özgeçmiş, Sınırlı Erişim Özelliğidir (LAF). Bu özelliğe erişmek için Uygulamanızı Windows'da etkinleştirmek için Microsoft'tan onay almanız gerekir.

Erişim istemek için aşağıdaki bilgileri içeren e-posta gönderin wincrossdeviceapi@microsoft.com :

  • Uygulamanızın WNS kaydının durumu ve uygulamanızın "Paket SID'sini" sağlayın.
  • Kullanıcı deneyiminizin açıklaması.
  • Kullanıcının Windows bilgisayarında sürdürülebilecek bir eylem gerçekleştirdiği uygulamanızın ekran görüntüsü.

Microsoft isteğinizi onaylarsa özelliğin kilidini açma yönergelerini alırsınız. Onaylar iletişiminizi temel alır.

Önkoşullar

Tümleştirmeye devam etmeden önce aşağıdaki görevlerin tamamlandığından emin olun:

Uygulama adımları

Aşağıdaki adımlarda, WNS ham bildirimlerini kullanarak uygulama sürekliliğini tümleştirme işlemi özetlenmiştir.

1. Adım - Kanal URI'sini yapılandırma

Windows uygulamanızdan Kanal URI'sini yapılandırın ve uygulama sunucunuza gönderin: Uygulamanın bildirimler için kanal URI'sini isteye ve depolayabilmesini sağlayın. Daha fazla bilgi için bkz. Bildirim kanalı isteme, oluşturma ve kaydetme.

2. Adım - Özgeçmiş senaryosu başlatma

Mobil uygulamanızdan WNS tabanlı özgeçmiş isteğini başlatmak için gerekli uygulama hizmeti API'sini çağırın.

3. Adım - HTTP isteğini ayarlama

Uygulama sunucusu mobil istemciden API isteğini aldığında, WNS kanalı URI'sine POST isteğini hazırlar. İstek Yetkilendirme, İçerik Türü ve X-WNS-Type gibi gerekli üst bilgileri içermelidir. Yeni başlığınızı eklemek için, istek üst bilgisi ayarlarına ekleyin.

Adım 3.1 - Özgeçmiş POST isteği gönderme örneği

Aşağıdaki kod parçacıkları, Python ve JavaScript kullanarak özgeçmiş üst bilgisi içeren yeni bir WNS bildirimi göndermeyi gösterir.

Aşağıdaki Python kod parçacığı, uygulama sürekliliği için gerekli üst bilgileri içeren bir WNS ham bildiriminin nasıl gönderılacağını gösterir:

import requests
# Define the channel URI
channel_uri = "[URL]"
# Define the notification payload
payload = """
Sample Notification
This is a sample message
"""
# Define the headers
headers = {
    "Content-Type": "application/octet-stream",
    "X-WNS-Type": "wns/raw",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN",
    "X-WNS-RawNotificationType": "wns/raw/resume",
    "X-WNS-ResumeMetadata": {"title":"Continue call from…","expiry":"300", "type":"1"},
}
# Send the POST request
response = requests.post(channel_uri, data=payload, headers=headers)
# Print the response status
print(f"Response Status: {response.status_code}")
print(f"Response Body: {response.text}")

Aşağıdaki JavaScript kod parçacığı, uygulama sürekliliği için gerekli üst bilgileri içeren bir WNS ham bildirimi göndermeyi gösterir:

const axios = require('axios');

// Define the channel URI
const channelUri = "[URL]";

// Define the notification payload
const payload = `Sample Notification
This is a sample message`;

// Define the headers
const headers = {
  "Content-Type": "application/octet-stream",
  "X-WNS-Type": "wns/raw",
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "X-WNS-RawNotificationType": "wns/raw/resume",
  "X-WNS-ResumeMetadata": JSON.stringify({
    title: "Continue call from…",
    expiry: "300",
    type: "1"
  })
};

// Send the POST request
axios.post(channelUri, payload, { headers })
  .then(response => {
    console.log(`Response Status: ${response.status}`);
    console.log(`Response Body: ${response.data}`);
  })
  .catch(error => {
    console.error(`Error Status: ${error.response?.status}`);
    console.error(`Error Body: ${error.response?.data}`);
  });

"X-WNS-RawNotificationType" üst bilgisi, gönderdiğiniz ham bildirimin türünü belirtir. Genellikle bu üst bilgiyi eklemeniz gerekmez, ancak bildirimi "Özgeçmiş" gibi farklı amaçlarla kategorilere ayırmanıza yardımcı olur. Bu üst bilgi için olası değerler, Windows'tan uygulama devamı sinyali veren "wns/raw/resume" gibi türleri içerebilir.

"X-WNS-ResumeMetadata" üst bilgisi, gönderdiğiniz özgeçmiş bildirimi hakkında meta veriler sağlar. Tam olarak gerekli olmasa da, başlık veya süre sonu gibi bilgiler ekleyerek bildirimi geliştirir. Meta verileri bir JSON/Dictionary nesnesi olarak geçirirsiniz (başka herhangi bir tür doğrulama özel durumu oluşturur) ve aşağıdaki gibi alanlar içerebilir:

  • title: Bildirim için açıklayıcı bir başlık (örneğin, "Aramaya devam et...").
  • süre sonu: Bildirimin saniye cinsinden kullanım ömrü (örneğin, 5 dakika boyunca "300").
  • tür: Bildirim türü - Yeni özgeçmiş isteği için 1, silme için 2 (eksikse eylem yok).

Aşağıdaki JavaScript kod parçacığı, özgeçmiş bildirimini güncelleştirmek için gerekli üst bilgileri içeren bir WNS ham bildirimi göndermeyi gösterir:

const axios = require('axios');

// Define the channel URI
const channelUri = "[URL]";

// Define the notification payload
const payload = `Sample Notification
This is a sample message`;

// Define the headers
const headers = {
  "Content-Type": "application/octet-stream",
  "X-WNS-Type": "wns/raw",
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "X-WNS-RawNotificationType": "wns/raw/resume",
  "X-WNS-ResumeMetadata": JSON.stringify({
    title: "Continue call from…",
    expiry: "300",
    type: "2"  // 2-represents update type.
  })
};

// Send the POST request
axios.post(channelUri, payload, { headers })
  .then(response => {
    console.log(`Response Status: ${response.status}`);
    console.log(`Response Body: ${response.data}`);
  })
  .catch(error => {
    console.error(`Error Status: ${error.response?.status}`);
    console.error(`Error Body: ${error.response?.data}`);
  });

Aşağıdaki JavaScript kod parçacığı, özgeçmiş bildirimini silmek için gerekli üst bilgilerle WNS ham bildirimi göndermeyi gösterir:

const axios = require('axios');

// Define the channel URI
const channelUri = "[URL]";

// Define the notification payload
const payload = `Sample Notification
This is a sample message`;

// Define the headers
const headers = {
  "Content-Type": "application/octet-stream",
  "X-WNS-Type": "wns/raw",
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "X-WNS-RawNotificationType": "wns/raw/resume",
  "X-WNS-ResumeMetadata": JSON.stringify({
    title: "Continue call from…",
    expiry: "300",
    type: "3"  // 3-represents delete type.
  })
};

// Send the POST request
axios.post(channelUri, payload, { headers })
  .then(response => {
    console.log(`Response Status: ${response.status}`);
    console.log(`Response Body: ${response.data}`);
  })
  .catch(error => {
    console.error(`Error Status: ${error.response?.status}`);
    console.error(`Error Body: ${error.response?.data}`);
  });

Her iki üst bilgi de ham bildirimleri uygulamanın işlevsel gereksinimlerine uyacak şekilde uyarlama esnekliği sunar.

4. Adım - Uygulamayı doğrulama

Uygulamanızın bildirimlere başarıyla kaydolduğunu ve özgeçmiş üst bilgilerinin POST isteğine eklendiğinden emin olun. HTTP isteğini ve yanıtını incelemek için vscode REST İstemcisi, Postman veya Fiddler gibi araçları kullanabilirsiniz.

Visual Studio Code REST İstemci uzantısını kullanarak istek gönderme örneği aşağıda verilmiştir. X-WNS-RawNotificationType ve X-WNS-ResumeMetadata üst bilgileri, uygulama sürekliliği için gereklidir.

POST {{channel_uri}}
Content-Type: application/octet-stream
X-WNS-Type: wns/raw
X-WNS-RequestForStatus: true
X-WNS-RawNotificationType: wns/raw/resume
X-WNS-ResumeMetadata: {"title": "Continue call from...", "expiry": "300", "type": "1"}
Authorization: Bearer {{bearer}}

[{"hello"}]

VS Code REST istemcisinden gelen yanıt, mevcut bildirim yanıtlarıyla aynı biçimde görüntülenir. Durum kodlarıyla ilgili ayrıntılar için başvuru bağlantısına bakın: Windows Anında İletme Bildirimi Hizmetleri (WNS) yerel bildirimi gönderme.

Sonuç

Bu kılavuzda açıklanan adımları izleyerek, birinci ve üçüncü taraflar WNS bildirimlerine özel üst bilgileri başarıyla ekleyebilir. Tüm önkoşulları yerine getirdiğinizden emin olun ve sorunsuz tümleştirmeyi garanti etmek için kapsamlı bir şekilde test edin.

Uygulamayla ilgili tüm sorgular veya yardım için aşağıdakilerden ekibimize başvurun:

E-posta: wincrossdeviceapi@microsoft.com

Sorunsuz bir tümleştirme süreci sağlamaya yardımcı olmak için buradayız.