Partilhar via


Criar ou substituir uma instalação

Este método cria ou substitui uma instalação.

Pedir

Método URI do pedido Versão HTTP
PUT https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/{id}?api-version=2015-01 HTTP/1.1

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Descrição
Content-Type application/json
Autorização Token de SAS gerado conforme especificado em Autenticação de Assinatura de Acesso Partilhado com o Service Bus.
x-ms-version 2015-01

Corpo do pedido

A tabela seguinte descreve as propriedades do corpo do pedido JSON para instalações:

Nome Tipo Necessário Só de leitura Descrição
installationId String Yes No Cadeia de identificador exclusiva global
userID String No No Cadeia personalizada que contém uma combinação de carateres alfanuméricos e -_@#.:=. Existe uma relação um a muitos entre o UserID e o ID de Instalação (ou seja, um ID de Utilizador pode ser associado a várias instalações)
lastActiveOn String No Yes A data em que a instalação foi efetuada inativo pelo PNS.
expirationTime String No Yes Uma cadeia que contém a data e hora no DTF W3C, YYYY-MM-DDThh:mmTZD (por exemplo, 1997-07-16T19:20+01:00)) na qual o registo expirará. O valor pode ser definido ao nível do hub ao criar ou atualizar e, por predefinição, nunca expira (9999-12-31T23:59:59).
lastUpdate String Ignorado ao atualizar. Devolvido ao ler. Yes Data no formato W3C da última atualização para esta instalação.
plataforma String Yes No Pode ser {APNS, WNS, MPNS, ADM, GCM}.
pushChannel String Yes No O identificador PNS para esta instalação (se estiver a utilizar o WNS e o ChannelUri do ApplicationTile).
expirouPushChannel Booleano Ignorado ao atualizar. Devolvido ao ler. Yes Este parâmetro é true se o PNS expirou o canal.
etiquetas Matriz de cadeias No No Uma matriz de etiquetas. As etiquetas são cadeias, conforme definido nas especificações do hub.
modelos Objeto JSON No No Um objeto JSON que representa um dicionário de templateNames para a descrição do modelo.
modelos. {name} String No No Objeto JSON que representa um modelo.
modelos. {name}.body String Sim, se o modelo estiver presente No Modelo para o corpo do payload de notificação.
modelos. {name}.headers Objeto JSON N.º Só pode estar presente se a plataforma for WNS ou MPNS. No Objeto JSON em que cada propriedade é um nome de cabeçalho e valor é uma expressão de modelo.
modelos. {name}.expiry String N.º Só pode estar presente se a plataforma for apns No Expressão de modelo a avaliar no formato de data W3D.
modelos. {name}.tags Matriz de cadeias No No Matriz de etiquetas para este modelo.
secondaryTiles Objeto JSON N.º Só pode estar presente se a plataforma for wns. No Objeto JSON que contém um dicionário de objetos tileId e secondaryTiles.
secondaryTile. {tileId} Objeto JSON No No Objeto JSON com propriedades push para mosaicos secundários.
secondaryTile. {tileId}.pushChannel String Sim, se tileId estiver presente No ChannelUri para mosaico secundário.
secondaryTile. {tileId}.tags Matriz de cadeias No No Etiquetas para notificações nativas para mosaico secundário.
secondaryTile. {tileId}.templates Objeto JSON No No O mesmo que a propriedade modelos, mas para cada mosaico secundário.

Tenha em atenção os seguintes pontos:

  • Em JSON, a ordem dos elementos não é importante.
  • O corpo do modelo tem de ser JSON para APNS, GCM, ADM.
  • O corpo do modelo tem de ser XML para WNS e MPNS (exceto quando não processado).
  • Os modelos para WNS têm de incluir o cabeçalho X-WNS-Type.
  • Os modelos para MPNS têm de ter cabeçalhos compatíveis, conforme descrito em Enviar notificações push para Windows Phone 8.

Seguem-se alguns exemplos JSON.

Exemplo para se registar no APNS:

{ 
    "installationId": "12234", 
    "userID": "MyAmazingUser",
    "tags": ["foo", "bar"], 
    "platform": "apns", 
    "pushChannel": "ABCDEF-123456-…" 
}  

Nota

O elemento Etiquetas é opcional.

Exemplo para se registar nativamente no WNS, incluindo um modelo e sem etiquetas:

{ 
    "installationId": "12234", 
    "userID": "MyAmazingUser",
    "platform": "wns", 
    "pushChannel": "https://db3...", 
    "templates": { 
        "myTemplate" : { 
            body : '<toast><visual lang="en-US"><binding template="ToastTest01"><text id="1">$myTextProp1</text></binding></visual></tile>',
            headers: { "X-WNS-Type": "wns/toast" }, 
            "tags": ["foo", "bar"] 
            } 

        } 
}  

Uma lista de esqueletos de muitos elementos possíveis

{ 
    installationId: "", 
    userID: "",
    expirationTime: "", 
    tags: ["foo", "bar"],
    lastUpdate: "", 
    user: "", 
    advertisingId: "", 
    appId: "" 
    platform: "", 
    pushChannel: "", 

    templates: { 
        "templateName1" : { 
            body: "", 
            headers: { "X-WNS-Type": "wns/tile" }, 
            expiration: "",
            tags: ["foo", "bar"] 
            } 
        } 

    secondaryTiles: { 
        "tileId1": { 
            pushChannel: "", 
            tags: ["foo", "bar"], 

            templates: { 
                "otherTemplate": { 
                    bodyTemplate: "", 
                    headers: { ... }, 
                    tags: ["foo"] 
                    } 
                } 
            } 
        }
}  

Resposta

A resposta inclui um código de estado HTTP e um conjunto de cabeçalhos de resposta.

Códigos de resposta

Código Descrição
200 A instalação foi feita em fila com êxito e é processada em segundo plano.
400 Não foi possível criar/substituir a instalação porque o pedido foi mal formado.
401 Falha de autorização. A chave de acesso estava incorreta.
403 Demasiadas instalações neste espaço de nomes – instalações não criadas.

Para obter informações sobre códigos de estado, veja Códigos de Estado e Erro.

Cabeçalhos de resposta

Cabeçalho de resposta Descrição
Tipo de conteúdo application/json
Localização do Conteúdo A localização da instalação no formato: https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/<installationId>

Corpo da resposta

Nenhum.

Consulte também

Ler uma instalação
Atualizar uma instalação por ID de Instalação
Eliminar uma instalação