Gunakan Pemberitahuan WNS untuk menerapkan Resume Lintas Perangkat (XDR)

Panduan langkah demi langkah ini untuk pihak pertama dan ketiga ini memberikan gambaran umum terperinci tentang cara mengintegrasikan kelangsungan aplikasi (lanjutkan) dengan pemberitahuan mentah Windows Push Notification Service (WNS). Ini termasuk prasyarat, referensi ke dokumentasi publik yang relevan, dan cuplikan kode untuk membuat permintaan POST ke URI saluran.

Melanjutkan Proses Onboarding di Windows

Resume adalah Fitur Akses Terbatas (LAF). Untuk mendapatkan akses ke fitur ini, Anda perlu mendapatkan persetujuan dari Microsoft untuk mengaktifkan aplikasi Anda di Windows.

Untuk meminta akses, kirim email wincrossdeviceapi@microsoft.com dengan informasi berikut:

  • Cek status pendaftaran WNS aplikasi Anda dan tampilkan "Package SID" aplikasi Anda.
  • Deskripsi pengalaman pengguna Anda.
  • Cuplikan layar aplikasi Anda di mana pengguna melakukan tindakan yang dapat dilanjutkan pada PC Windows mereka.

Jika Microsoft menyetujui permintaan Anda, Anda menerima instruksi tentang cara membuka kunci fitur. Persetujuan didasarkan pada komunikasi Anda.

Prasyarat

Sebelum melanjutkan integrasi, pastikan tugas berikut selesai:

Langkah penerapan

Langkah-langkah berikut menguraikan proses untuk mengintegrasikan kelangsungan aplikasi menggunakan pemberitahuan mentah WNS.

Langkah 1 - Mengonfigurasi URI saluran

Konfigurasikan URI Saluran dari aplikasi Windows Anda dan kirimkan ke server aplikasi Anda: Pastikan aplikasi dapat meminta dan menyimpan URI saluran untuk pemberitahuan. Untuk informasi selengkapnya, lihat Cara meminta, membuat, dan menyimpan saluran pemberitahuan.

Langkah 2 - Memulai skenario melanjutkan

Dari aplikasi seluler Anda, panggil API layanan aplikasi yang diperlukan untuk memulai permintaan resume berbasis WNS.

Langkah 3 - Siapkan permintaan HTTP

Ketika server aplikasi menerima permintaan API dari klien seluler, server aplikasi menyiapkan permintaan POST ke URI saluran WNS. Permintaan harus menyertakan header yang diperlukan, seperti Otorisasi, Jenis Konten, dan Tipe X-WNS. Untuk menambahkan header baru Anda, sertakan dalam konfigurasi header permintaan.

Langkah 3.1 - Contoh untuk mengirim permintaan resume POST

Cuplikan kode berikut menunjukkan cara mengirim pemberitahuan WNS baru dengan header resume dengan menggunakan Python dan JavaScript.

Cuplikan kode Python berikut menunjukkan cara mengirim pemberitahuan mentah WNS dengan header yang diperlukan untuk kelangsungan aplikasi:

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}")

Cuplikan kode JavaScript berikut menunjukkan cara mengirim pemberitahuan mentah WNS dengan header yang diperlukan untuk kelangsungan aplikasi:

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}`);
  });

Header "X-WNS-RawNotificationType" menentukan jenis pemberitahuan mentah yang Anda kirim. Anda biasanya tidak perlu menyertakan header ini, tetapi membantu Anda mengategorikan pemberitahuan untuk tujuan yang berbeda, seperti "Lanjutkan". Nilai yang mungkin untuk header ini mungkin mencakup jenis seperti "wns/raw/resume," yang menandakan kelanjutan aplikasi dari Windows.

Header "X-WNS-ResumeMetadata" menyediakan metadata tentang pemberitahuan resume yang Anda kirim. Meskipun tidak diperlukan secara ketat, pemberitahuan akan ditingkatkan dengan menambahkan informasi seperti judul atau waktu kedaluwarsa. Anda meneruskan metadata sebagai objek JSON/Kamus (jenis lain menghasilkan pengecualian validasi) dan dapat menyertakan atribut seperti:

  • judul: Judul deskriptif untuk pemberitahuan (misalnya, "Lanjutkan panggilan dari...").
  • kedaluwarsa: Masa pakai pemberitahuan dalam hitungan detik (misalnya, "300" selama 5 menit).
  • jenis: Jenis pemberitahuan - 1 untuk permintaan resume baru, 2 untuk dihapus (tidak ada tindakan jika hilang).

Cuplikan kode JavaScript berikut menunjukkan cara mengirim pemberitahuan mentah WNS dengan header yang diperlukan untuk memperbarui pemberitahuan resume:

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}`);
  });

Cuplikan kode JavaScript berikut menunjukkan cara mengirim pemberitahuan mentah WNS dengan header yang diperlukan untuk menghapus pemberitahuan resume:

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}`);
  });

Kedua header menawarkan fleksibilitas dalam menyesuaikan pemberitahuan mentah agar sesuai dengan persyaratan fungsi aplikasi.

Langkah 4 - Memvalidasi implementasi

Pastikan aplikasi Anda berhasil mengatur pemberitahuan dan pastikan bahwa header resume disertakan dalam permintaan POST. Anda dapat menggunakan alat seperti vscode REST Client, Postman, atau Fiddler untuk memeriksa permintaan dan respons HTTP.

Berikut adalah contoh pengiriman permintaan menggunakan ekstensi Visual Studio Code REST Client. Header X-WNS-RawNotificationType dan X-WNS-ResumeMetadata diperlukan untuk kelangsungan aplikasi:

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"}]

Respons dari klien VS Code REST ditampilkan dalam format yang sama dengan respons pemberitahuan yang ada. Untuk detail mengenai kode status, lihat tautan referensi: Kirim pemberitahuan asli Windows Push Notification Services (WNS).

Conclusion

Dengan mengikuti langkah-langkah yang diuraikan dalam panduan ini, pihak pertama dan ketiga dapat berhasil menambahkan header kustom ke pemberitahuan WNS. Pastikan Anda memenuhi semua prasyarat dan menguji secara menyeluruh untuk menjamin integrasi yang mulus.

Untuk setiap kueri atau bantuan mengenai implementasi, hubungi tim kami di hal berikut:

Email: wincrossdeviceapi@microsoft.com

Kami di sini untuk membantu memastikan proses integrasi yang lancar.