Criar ou substituir uma instalação

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

Solicitação

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

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

Cabeçalho da solicitação Descrição
Tipo de conteúdo aplicativo/json
Autorização Token SAS gerado conforme especificado na Autenticação de Assinatura de Acesso Compartilhado com o Barramento de Serviço.
x-ms-version 2015-01

Corpo da solicitação

A tabela a seguir descreve as propriedades do corpo da solicitação JSON para instalações:

Nome Type Obrigatório Somente leitura Descrição
installationId String Sim Não Cadeia de caracteres de identificador global exclusivo
userID String Não Não Cadeia de caracteres personalizada que contém uma combinação de caracteres alfanuméricos e -_@#.:=. Há uma relação de um a muitos entre UserID e ID de instalação (ou seja, uma ID de usuário pode ser associada a várias instalações)
lastActiveOn String Não Sim A data em que a instalação foi inativada pelo PNS.
expirationTime String Não Sim Uma cadeia de caracteres que contém a data e a hora em W3C DTF, AAAA-MM-DDThh:mmTZD (por exemplo, 1997-07-16T19:20+01:00)) em que o registro expirará. O valor pode ser definido no nível do hub na criação ou atualização e, por padrão, nunca expira (9999-12-31T23:59:59).
lastUpdate String Ignorado ao atualizar. Retornado ao ler. Sim Data no formato W3C da última atualização para esta instalação.
plataforma String Sim Não Pode ser {APNS, WNS, MPNS, ADM, GCM}.
pushChannel String Sim Não O identificador PNS para esta instalação (se você estiver usando o WNS e o ChannelUri do ApplicationTile).
expiredPushChannel Boolean Ignorado ao atualizar. Retornado ao ler. Sim Esse parâmetro será true se o PNS tiver expirado o canal.
marcas Matriz de cadeias de caracteres Não Não Uma matriz de marcas. As marcas são cadeias de caracteres conforme definido nas especificações de hub.
modelos Objeto JSON Não Não Um objeto JSON que representa um dicionário de templateNames para a descrição do modelo.
Modelos. {name} String Não Não Objeto JSON que representa um modelo.
Modelos. {name}.body String Sim, se o modelo estiver presente Não Modelo para o corpo da carga de notificação.
Modelos. {name}.headers Objeto JSON Não. Só poderá estar presente se a plataforma for WNS ou MPNS. Não Objeto JSON em que cada propriedade é um nome de cabeçalho e o valor é uma expressão de modelo.
Modelos. {name}.expiry String Não. Só poderá estar presente se a plataforma for apns Não Avaliação de expressão de modelo no formato de data W3D.
Modelos. {name}.tags Matriz de cadeias de caracteres Não Não Matriz de marcas para este modelo.
secondaryTiles Objeto JSON Não. Só poderá estar presente se a plataforma for wns. Não Objeto JSON que contém um dicionário de objetos tileId e secondaryTiles.
secondaryTile. {tileId} Objeto JSON Não Não Objeto JSON com propriedades push para blocos secundários.
secondaryTile. {tileId}.pushChannel String Sim, se tileId estiver presente Não ChannelUri para bloco secundário.
secondaryTile. {tileId}.tags Matriz de cadeias de caracteres Não Não Marcas para notificações nativas para o bloco secundário.
secondaryTile. {tileId}.templates Objeto JSON Não Não O mesmo que a propriedade templates, mas para cada bloco secundário.

Observe os seguintes pontos:

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

Alguns exemplos de JSON seguem.

Exemplo para registrar-se com o APNS:

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

Observação

O elemento Tags é opcional.

Exemplo para registrar nativamente com o WNS, incluindo um modelo e nenhuma marca:

{ 
    "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 listagem 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 status HTTP e um conjunto de cabeçalhos de resposta.

Códigos de resposta

Código Descrição
200 A instalação foi enfileirada com êxito e é processada em segundo plano.
400 Não foi possível criar/substituir a instalação porque a solicitação foi malformada.
401 Falha de autorização. A chave de acesso estava incorreta.
403 Muitas instalações neste namespace – Instalações não criadas.

Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

Cabeçalho de resposta Descrição
Content-type aplicativo/json
Local do conteúdo O local 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
Excluir uma instalação