Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje webová rozhraní API mezi službami a protokoly potřebné k odeslání push oznámení.
V přehledu služby WNS (Windows Push Notification Services) najdete koncepční diskuzi o konceptech nabízených oznámení a konceptech služby WNS, požadavcích a provozu.
Vyžádání a přijetí přístupového tokenu
Tato část popisuje parametry požadavku a odpovědi, které se používají při ověřování s WNS.
Žádost o přístupový token
Do služby WNS se odešle požadavek HTTP, který ověří cloudovou službu a načte přístupový token. Požadavek je odesílán na https://login.live.com/accesstoken.srf pomocí protokolu SSL (Secure Sockets Layer).
Parametry žádosti o přístupový token
Cloudová služba odešle tyto požadované parametry v textu požadavku HTTP pomocí formátu application/x-www-form-urlencoded. Musíte zajistit, aby všechny parametry byly zakódovány na adrese URL.
| Parameter | Required | Description |
|---|---|---|
| grant_type | TRUE | Musí být nastavena na client_credentials. |
| client_id | TRUE | Identifikátor zabezpečení balíčku (SID) cloudové služby, který je přiřazený při registraci aplikace v Microsoft Storu. |
| client_secret | TRUE | Tajný klíč cloudové služby, který je přiřazený při registraci aplikace v Microsoft Storu. |
| obor | TRUE | Musí být nastaveno na notify.windows.com |
Odpověď přístupového tokenu
Služba WNS ověří cloudovou službu a v případě úspěchu odpoví "200 OK", včetně přístupového tokenu. V opačném případě služba WNS odpoví odpovídajícím kódem chyby HTTP, jak je popsáno v konceptu protokolu OAuth 2.0.
Parametry odpovědi přístupového tokenu
Přístupový token se vrátí v odpovědi HTTP, pokud se cloudová služba úspěšně ověřila. Tento přístupový token lze použít v žádostech o oznámení, dokud nevyprší jeho platnost. Odpověď HTTP používá typ média application/json.
| Parameter | Required | Description |
|---|---|---|
| access_token | TRUE | Přístupový token, který bude cloudová služba používat při odesílání oznámení. |
| token_type | FALSE | Vždy vráceno jako bearer. |
Kód odpovědi
| Kód odpovědi protokolu HTTP | Description |
|---|---|
| 200 OK | Požadavek byl úspěšně zpracován. |
| 400 – Chybný požadavek | Ověření se nezdařilo. Parametry odpovědi najdete v návrhu OAuth Request for Comments (RFC). |
Example
Následuje příklad úspěšné odpovědi na ověření:
HTTP/1.1 200 OK
Cache-Control: no-store
Content-Length: 422
Content-Type: application/json
{
"access_token":"EgAcAQMAAAAALYAAY/c+Huwi3Fv4Ck10UrKNmtxRO6Njk2MgA=",
"token_type":"bearer",
"expires_in": 86400
}
Odeslání žádosti o oznámení a přijetí odpovědi
Tato část popisuje hlavičky zahrnuté v požadavku HTTP na WNS, aby se zobrazilo oznámení a ty, které jsou součástí odpovědi.
- Odeslat žádost o oznámení
- Odeslat odpověď na oznámení
- Nepodporované funkce HTTP
Odeslat žádost o oznámení
Při odesílání žádosti o oznámení vytvoří volající aplikace požadavek HTTP přes PROTOKOL SSL adresovaný identifikátoru URI (Uniform Resource Identifier). Content-Length je standardní hlavička HTTP, která musí být zadána v požadavku. Všechny ostatní standardní hlavičky jsou volitelné nebo nejsou podporované.
Kromě toho se v žádosti o oznámení dají použít vlastní hlavičky požadavků uvedené tady. Některé hlavičky jsou povinné, zatímco jiné jsou volitelné.
Parametry požadavku
| Název záhlaví | Required | Description |
|---|---|---|
| Authorization | TRUE | Standardní hlavička autorizace HTTP použitá k ověření žádosti o oznámení. Vaše cloudová služba poskytuje v této hlavičce přístupový token. |
| Content-Type | TRUE | Standardní autorizační hlavička HTTP. U informačních zpráv, dlaždic a oznámení odznáček musí být tato hlavička nastavená na text/xml. U nezpracovaných oznámení musí být tato hlavička nastavena na application/octet-stream. |
| Content-Length | TRUE | Standardní autorizační hlavička HTTP, která označuje velikost datové části požadavku. |
| X-WNS-Type | TRUE | Definuje typ oznámení v datové části: dlaždice, informační zpráva, odznáček nebo nezpracovaný. |
| X-WNS-Cache-Policy | FALSE | Povolí nebo zakáže ukládání oznámení do mezipaměti. Tato hlavička se vztahuje jenom na dlaždice, indikátory a surová oznámení. |
| X-WNS-RequestForStatus | FALSE | Vyžádá si stav zařízení a stav připojení WNS v odpovědi na oznámení. |
| X-WNS-Tag | FALSE | Řetězec použitý k zadání oznámení s identifikačním popiskem, používaný pro dlaždice, které podporují frontu oznámení. Tato hlavička se vztahuje pouze na upozornění panelu. |
| X-WNS-TTL | FALSE | Celočíselná hodnota vyjádřená v sekundách, která určuje hodnotu TTL (Time to Live). |
| MS-CV | FALSE | Hodnota vektoru korelace použitá pro váš požadavek. |
Důležité poznámky
- Content-Length a Content-Type jsou jediné standardní hlavičky HTTP, které jsou zahrnuté v oznámení doručené klientovi bez ohledu na to, jestli byly do požadavku zahrnuty další standardní hlavičky.
- Všechny ostatní standardní hlavičky HTTP se buď ignorují, nebo vrací chybu, pokud funkce není podporovaná.
- Od února 2023 bude služba WNS ukládat do mezipaměti pouze jedno oznámení týkající se dlaždice, když je zařízení offline.
Authorization
Autorizační hlavička slouží k zadání přihlašovacích údajů volající strany podle metody autorizace OAuth 2.0 pro bearer tokeny.
Syntaxe se skládá z řetězcového literálu "Bearer", následovaného mezerou a poté přístupovým tokenem. Přístupový token se získá prostřednictvím žádosti o přístupový token, jak je uvedeno výše. Stejný přístupový token lze použít pro následné žádosti o oznámení, dokud nevyprší platnost.
Tato hlavička je povinná.
Authorization: Bearer <access-token>
X-WNS-Type
Toto jsou typy oznámení podporované službou WNS. Tato hlavička označuje typ oznámení a způsob, jakým by ho služba WNS měla zpracovat. Jakmile oznámení dorazí ke klientovi, skutečný obsah je ověřován podle zadaného typu. Tato hlavička je povinná.
X-WNS-Type: wns/toast | wns/badge | wns/tile | wns/raw
| Value | Description |
|---|---|
| wns/badge | Oznámení pro vytvoření překrytí odznáček na dlaždici Hlavička Content-Type obsažená v požadavku na oznámení musí být nastavena na text/xml. |
| wns/tile | Upozornění na aktualizaci obsahu dlaždice Hlavička Content-Type obsažená v požadavku na oznámení musí být nastavena na text/xml. |
| wns/toast | Oznámení o přípitku na klientovi. Hlavička Content-Type obsažená v požadavku na oznámení musí být nastavena na text/xml. |
| wns/raw | Oznámení, které může obsahovat vlastní datovou část a které se doručí přímo do aplikace. Hlavička Content-Type obsažená v požadavku na oznámení musí být nastavena na application/octet-stream. |
X-WNS-Cache-Policy
Když je cílové zařízení oznámení offline, služba WNS uloží do mezipaměti jeden odznáček, jednu dlaždici a jedno informační oznámení pro každý identifikátor URI kanálu. Ve výchozím nastavení se nezpracovaná oznámení neukládají do mezipaměti, ale pokud je povolené ukládání nezpracovaných oznámení do mezipaměti, jedno nezpracované oznámení se ukládá do mezipaměti. Položky se neukládají do mezipaměti po neomezenou dobu a po přiměřené době se vyřadí. Jinak se obsah uložený v mezipaměti doručí, až se zařízení příště připojí do online režimu.
X-WNS-Cache-Policy: cache | no-cache
| Value | Description |
|---|---|
| cache | Default. Pokud je uživatel offline, budou se oznámení ukládat do mezipaměti. Toto je výchozí nastavení pro oznámení o dlaždici a odznaku. |
| no-cache | Pokud je uživatel offline, oznámení se neupamětí. Toto je výchozí nastavení pro nezpracovaná oznámení. |
X-WNS-RequestForStatus
Určuje, jestli má odpověď obsahovat stav zařízení a stav připojení WNS. Tato hlavička je volitelná.
X-WNS-RequestForStatus: true | false
| Value | Description |
|---|---|
| true | V odpovědi vraťte stav zařízení a stav oznámení. |
| false | Default. Nevracejte stav zařízení a stav oznámení. |
X-WNS-Tag
Přiřadí k oznámení značku popisek. Značka se používá v zásadě nahrazování dlaždice ve frontě oznámení, když aplikace zvolila cyklování oznámení. Pokud již ve frontě existuje oznámení s touto značkou, nové oznámení se stejnou značkou ho nahradí.
Note
Tato hlavička je volitelná a používá se jenom při zasílání hlášení dlaždic.
X-WNS-Tag: <string value>
| Value | Description |
|---|---|
| řetězcová hodnota | Alfanumerický řetězec maximálně 16 znaků. |
X-WNS-TTL
Určuje hodnotu TTL (time expiration) pro oznámení. To obvykle není potřeba, ale můžete ho použít, pokud chcete zajistit, aby se vaše oznámení nezobrazovat později než určitou dobu. Hodnota TTL se zadává v sekundách a je relativní vzhledem k času, kdy služba WNS obdrží požadavek. Po zadání hodnoty TTL se po uplynutí této doby nezobrazí oznámení. Všimněte si, že pokud je hodnota TTL příliš krátká, oznámení se nemusí vůbec zobrazit. Obecně platí, že doba vypršení platnosti se měří alespoň v minutách.
Tato hlavička je volitelná. Pokud není zadána žádná hodnota, oznámení nevyprší a bude nahrazeno v rámci normálního schématu nahrazení oznámení.
X-WNS-TTL: <integer value>
| Value | Description |
|---|---|
| celočíselná hodnota | Doba trvání oznámení v sekundách po obdržení žádosti službou WNS. |
X-WNS-SuppressPopup
Note
U aplikací pro Windows Phone Store máte možnost potlačit zobrazení informační zprávy (toast), a místo toho posílat oznámení přímo do centra akcí. Díky tomu můžete oznámení doručovat tiše, což je potenciálně vynikající možnost pro méně naléhavé oznámení. Tato hlavička je volitelná a používá se jenom v kanálech Windows Phone. Pokud tuto hlavičku zahrnete do kanálu Windows, oznámení se zahodí a zobrazí se chybová odpověď ze služby WNS.
X-WNS-SuppressPopup: true | false
| Value | Description |
|---|---|
| true | Odeslání informačního oznámení přímo do centra akcí; nevyvolávejte informační rozhraní. |
| false | Default. Zvedněte uživatelské rozhraní informační zprávy a přidejte oznámení do centra akcí. |
X-WNS-Group
Note
Centrum akcí pro aplikace pro Windows Phone Store může zobrazovat více informačních oznámení se stejnou značkou jenom v případě, že jsou označeny jako patřící do různých skupin. Představte si třeba aplikaci knihy receptu. Každý recept by byl identifikován značkou. Oznámení, které obsahuje komentář k danému receptu, by mělo značku receptu, ale označení skupiny komentářů. Informační zpráva, která obsahuje hodnocení pro tento recept, by znovu měla značku receptu, ale měla by popisek skupiny hodnocení. Tyto různé popisky skupin by umožňovaly, aby se v centru akcí zobrazovala oznámení najednou. Tato hlavička je volitelná.
X-WNS-Group: <string value>
| Value | Description |
|---|---|
| řetězcová hodnota | Alfanumerický řetězec maximálně 16 znaků. |
X-WNS-Match
Note
Používá se s metodou HTTP DELETE k odebrání konkrétního oznámení, sady oznámení (podle značky nebo skupiny) nebo všech oznámení z centra akcí pro aplikace pro Windows Phone Store. Toto záhlaví může určovat skupinu, značku nebo obojí. Tato hlavička se vyžaduje v požadavku na oznámení HTTP DELETE. Veškerá datová část, která je součástí této žádosti o oznámení, se ignoruje.
X-WNS-Match: type:wns/toast; group=<string value>; tag=<string value> | type:wns/informační zpráva; group=<string value> | type:wns/informační zpráva; tag=<string value> | type:wns/informační zpráva; všichni
| Value | Description |
|---|---|
type:wns/informační zpráva; group=<string value>; tag=<string value> |
Odeberte jedno oznámení označené zadanou značkou a skupinou. |
type:wns/toast; group=<string value> |
Odeberte všechna oznámení označená zadanou skupinou. |
type:wns/toast; tag=<string value> |
Odeberte všechna oznámení označená zadanou značkou. |
| type:wns/toast;all | Vymažte všechna oznámení vaší aplikace z centra akcí. |
Odeslat odpověď na oznámení
Jakmile WNS zpracuje požadavek na oznámení, odešle v odpovědi zprávu HTTP. Tato část popisuje parametry a hlavičky, které najdete v této odpovědi.
Parametry odpovědi
| Název záhlaví | Required | Description |
|---|---|---|
| X-WNS-Debug-Trace | FALSE | Informace o ladění, které by se měly protokolovat, aby se pomohly vyřešit problémy při hlášení problému. |
| X-WNS-DeviceConnectionStatus | FALSE | Stav zařízení je vrácen pouze v případě, že je požadován v žádosti o oznámení prostřednictvím hlavičky X-WNS-RequestForStatus. |
| X-WNS-Error-Description | FALSE | Řetězec chyby čitelný člověkem, který by se měl protokolovat, aby vám pomohl s laděním. |
| X-WNS-Msg-ID | FALSE | Jedinečný identifikátor oznámení, který se používá pro účely ladění. Při hlášení problému by se tyto informace měly protokolovat, aby vám pomohly při řešení potíží. |
| X-WNS-Status | FALSE | Určuje, jestli služba WNS úspěšně přijala a zpracovala oznámení. Při hlášení problému by se tyto informace měly protokolovat, aby vám pomohly při řešení potíží. |
| MS-CV | FALSE | Informace o ladění, které by se měly protokolovat, aby se pomohly vyřešit problémy při hlášení problému. |
X-WNS-Debug-Trace
Tato hlavička vrací užitečné ladicí informace ve formě řetězce. Doporučujeme, aby se tato hlavička protokolovala, aby vývojáři mohli ladit problémy. Tato hlavička spolu s hlavičkouMsg-ID X-WNS a MS-CV jsou vyžadována při hlášení problému do služby WNS.
X-WNS-Debug-Trace: <string value>
| Value | Description |
|---|---|
| řetězcová hodnota | Alfanumerický řetězec. |
X-WNS-DeviceConnectionStatus
Tato hlavička vrátí stav zařízení aplikaci volající, pokud je o to požádáno v hlavičce X-WNS-RequestForStatus žádosti o oznámení.
X-WNS-DeviceConnectionStatus: připojeno | odpojeno | tempdisconnected
| Value | Description |
|---|---|
| connected | Zařízení je online a připojené ke službě WNS. |
| disconnected | Zařízení je offline a není připojené ke službě WNS. |
| připojeno dočasně (zastaralé) | Zařízení dočasně ztratilo připojení ke službě WNS, například když dojde k ukončení připojení 3G nebo dojde k vyvolání bezdrátového přepínače na přenosném počítači. Platforma klienta oznámení ji vidí jako dočasné přerušení místo úmyslného odpojení. |
X-WNS-Error-Description
Tento nadpis poskytuje řetězec chyby čitelný pro člověka, který by se měl uložit do protokolu, aby pomohl při ladění.
X-WNS-Error-Description: <string value>
| Value | Description |
|---|---|
| řetězcová hodnota | Alfanumerický řetězec. |
X-WNS-Msg-ID
Tato hlavička slouží k poskytnutí identifikátoru oznámení volajícímu. Doporučujeme, aby se tato hlavička protokolovala, aby vám pomohla s laděním problémů. Tato hlavička spolu s X-WNS-Debug-Trace a MS-CV jsou vyžadovány při hlášení problému do služby WNS.
X-WNS-Msg-ID: <string value>
| Value | Description |
|---|---|
| řetězcová hodnota | Alfanumerický řetězec maximálně 16 znaků. |
X-WNS-Status
Tato hlavička popisuje, jak služba WNS zpracovávala žádost o oznámení. Můžete ho použít místo interpretace kódů odpovědí jako úspěchu nebo selhání.
X-WNS-Status: přijato | vyřazeno | channelthrottled
| Value | Description |
|---|---|
| received | Oznámení přijal a zpracoval WNS. Poznámka: To nezaručuje, že zařízení obdrželo oznámení. |
| dropped | Oznámení bylo explicitně ukončeno z důvodu chyby nebo kvůli tomu, že klient tato oznámení explicitně odmítl. Toastové notifikace budou také zrušeny, pokud je zařízení offline. |
| channelthrottled | Oznámení se zahodilo, protože aplikační server překročil limit rychlosti pro tento konkrétní kanál. |
MS-CV
Tato hlavička poskytuje vektor korelace související s požadavkem, který se primárně používá k ladění. Pokud je v rámci požadavku k dispozici CV, WNS tuto hodnotu použije, jinak WNS vygeneruje a vrátí odpověď pomocí CV. Tato hlavička spolu s hlavičkami X-WNS-Debug-Trace a X-WNS-Msg-ID jsou vyžadovány při hlášení problému na WNS.
Important
Pokud poskytujete vlastní CV, vygenerujte prosím nové CV pro každou žádost o nabízené oznámení.
MS-CV: <string value>
| Value | Description |
|---|---|
| řetězcová hodnota | Řídí se standardem vektorů korelace |
Kódy odpovědí
Každá zpráva HTTP obsahuje jeden z těchto kódů odpovědí. WNS doporučuje vývojářům protokolovat kód odpovědi pro použití při ladění. Když vývojáři nahlásí problém se službou WNS, musí poskytnout kódy odpovědí a hlavičkové informace.
| Kód odpovědi protokolu HTTP | Description | Doporučená akce |
|---|---|---|
| 200 OK | Oznámení přijal WNS. | Žádné se nevyžadují. |
| 400 – Chybný požadavek | Nejméně jedna hlavička byla zadána nesprávně nebo byla v konfliktu s jinou hlavičkou. | Zapíše podrobnosti o vaší žádosti. Zkontrolujte svou žádost a porovnejte ji s touto dokumentací. |
| 401 Neautorizováno | Cloudová služba nepředložila platný autentizační doklad. Lístek OAuth může být neplatný. | Požádejte o platný přístupový token ověřením cloudové služby pomocí žádosti o přístupový token. |
| 403 Zakázáno | Cloudová služba nemá oprávnění odesílat oznámení na tento identifikátor URI, i když je ověřena. | Přístupový token zadaný v požadavku neodpovídá přihlašovacím údajům aplikace, která požadovala identifikátor URI kanálu. Ujistěte se, že název balíčku v manifestu vaší aplikace odpovídá přihlašovacím údajům cloudové služby zadaným vaší aplikaci na řídicím panelu. |
| 404 Nenalezena | Identifikátor URI kanálu není platný nebo není rozpoznán službou WNS. | Zapíše podrobnosti o vaší žádosti. Neodesílejte do tohoto kanálu další oznámení; oznámení na tuto adresu selžou. |
| 405 Nepovolená metoda | Neplatná metoda (GET, CREATE); Je povolená pouze funkce POST (Windows nebo Windows Phone) nebo DELETE (jenom Windows Phone). | Zapíše podrobnosti o vaší žádosti. Přepněte na příkaz HTTP POST. |
| 406 Není přijatelné | Cloudová služba překročila limit omezení. | Odešlete svůj požadavek poté, co najdete hodnotu hlavičky Retry-After v odpovědi. |
| 410 Zmizelo | Vypršela platnost kanálu. | Zapíše podrobnosti o vaší žádosti. Neposílejte do tohoto kanálu další oznámení. Požádejte aplikaci o nový identifikátor URI kanálu. |
| Blokovaná doména 410 | Služba WNS zablokovala odesílající doménu. | Neposílejte do tohoto kanálu další oznámení. Doména odesílání byla službou WNS zablokována pro zneužívání push oznámení. |
| 413 Entita požadavku je příliš velká | Datová část oznámení překračuje limit velikosti 5 000 bajtů. | Zapíše podrobnosti o vaší žádosti. Zkontrolujte náklad a ujistěte se, že je v rámci omezení velikosti. |
| 500 – Vnitřní chyba serveru | Vnitřní chyba způsobila selhání doručení oznámení. | Zapíše podrobnosti o vaší žádosti. Ohlaste tento problém prostřednictvím vývojářských fór. |
| 503 Služba není k dispozici | Server je momentálně nedostupný. | Zapíše podrobnosti o vaší žádosti. Ohlaste tento problém prostřednictvím vývojářských fór. Pokud je hlavička Retry-After pozorována, odešlete svůj požadavek po hodnotě hlavičky Retry-After v odpovědi. |
Nepodporované funkce HTTP
Webové rozhraní WNS podporuje http 1.1, ale nepodporuje následující funkce:
- Chunking
- Pipelining (POST není idempotentní)
- I když je tato podpora podporovaná, vývojáři by měli při odesílání oznámení zakázat funkci Expect-100, protože přináší latenci.
Windows developer