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 gerado conforme especificado na Autenticação de Assinatura de Acesso Compartilhado com Barramento de Serviço ou Barramento de Serviço autenticação e autorização com Microsoft Azure Active Directory Controle de Acesso (também conhecido como Controle de Acesso Serviço ou ACS).
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 globalmente exclusiva
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, YYYY-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 o padrão será nunca expirar (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 essa instalação (no caso do WNS, o ChannelUri do ApplicationTile).
expirePushChannel Boolean Ignorado ao atualizar. Retornado ao ler. Yes Isso será verdade se o PNS expirou o canal.
marcas Matriz de cadeia de caracteres Não Não Uma matriz de marcas. As marcas são cadeias de caracteres conforme definido nas especificações do 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 valor é uma expressão de modelo.
Modelos. {name}.expiray 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 cadeia 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 cadeia de caracteres Não Não Marcas para notificações nativas no 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 mencionado no envio de notificações por push para Windows Phone 8.

Alguns exemplos JSON seguem.

Exemplo para registrar-se no APNS:

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

Observação

O elemento Tags é opcional.

Exemplo para registrar-se 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 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 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 será processada em segundo plano.
400 A instalação não pôde ser criada/substituída 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 Status e Códigos 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