Создание или перезапись установки

Этот метод создает или перезаписывает установку.

Запрос

Метод Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
PUT https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/{id}?api-version=2015-01 HTTP/1.1

Заголовки запросов

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

Заголовок запроса Описание
Content-Type приложение/json
Авторизация Маркер SAS создается, как указано в разделе Проверка подлинности подписанного URL-адреса с помощью служебной шины.
x-ms-version 2015-01

Текст запроса

В следующей таблице описаны свойства текста запроса JSON для установок.

Имя Тип Обязательно Только для чтения Описание
installationId Строка Да Нет Строка глобально уникального идентификатора
Идентификатор пользователя Строка Нет Нет Настраиваемая строка, содержащая сочетание буквенно-цифровых символов и -_@#.:=. Существует связь "один ко многим" между идентификатором пользователя и идентификатором установки (т. е. один идентификатор пользователя может быть связан с несколькими установками).
lastActiveOn Строка Нет Да Дата, когда установка была отключена PNS.
expirationTime; Строка Нет Да Строка, содержащая дату и время в W3C DTF, ГГГГ-ММ-ДДТч:ммTZD (например, 1997-07-16T19:20+01:00)), в которой срок действия регистрации истекает. Значение можно задать на уровне концентратора при создании или обновлении и по умолчанию не истечет (9999-12-31T23:59:59).
lastUpdate Строка Игнорируется при обновлении. Возвращается при чтении. Да Дата последнего обновления этой установки в формате W3C.
platform Строка Да Нет Может иметь значение {APNS, WNS, MPNS, ADM, GCM}.
pushChannel Строка Да Нет Дескриптор PNS для этой установки (если вы используете WNS и ChannelUri applicationTile).
expiredPushChannel Логическое Игнорируется при обновлении. Возвращается при чтении. Да Этот параметр имеет значение , true если для PNS истек срок действия канала.
tags Массив строк Нет Нет Массив тегов. Теги — это строки, определенные в спецификациях концентратора.
шаблоны Объект JSON Нет Нет Объект JSON, представляющий словарь templateNames в описание шаблона.
Шаблоны. {name} Строка Нет Нет Объект JSON, представляющий шаблон.
Шаблоны. {name}.body Строка Да, если шаблон присутствует Нет Шаблон для текста полезных данных уведомления.
Шаблоны. {name}.headers Объект JSON Нет. Может присутствовать только в том случае, если платформой является WNS или MPNS. Нет Объект JSON, где каждое свойство является именем заголовка, а значение — выражением шаблона.
Шаблоны. {name}.expiry Строка Нет. Может присутствовать только в том случае, если платформа является apns Нет Выражение шаблона, вычисляющееся в формате W3D даты.
Шаблоны. {name}.tags Массив строк Нет Нет Массив тегов для этого шаблона.
secondaryTiles Объект JSON Нет. Может присутствовать только в том случае, если платформа — wns. Нет Объект JSON, содержащий словарь объектов tileId и secondaryTiles.
secondaryTile. {tileId} Объект JSON Нет Нет Объект JSON со свойствами push-уведомлений для вторичных плиток.
secondaryTile. {tileId}.pushChannel Строка Да, если имеется tileId Нет ChannelUri для вторичной плитки.
secondaryTile. {tileId}.tags Массив строк Нет Нет Теги для собственных уведомлений на вторичную плитку.
secondaryTile. {tileId}.templates Объект JSON Нет Нет То же, что и свойство templates, но для каждой вторичной плитки.

Обратите внимание на следующие моменты.

  • В JSON порядок элементов не важен.
  • Текст шаблона должен иметь формат JSON для APNS, GCM, ADM.
  • Текст шаблона должен быть XML для WNS и MPNS (за исключением необработанных).
  • Шаблоны для WNS должны содержать заголовок X-WNS-Type.
  • Шаблоны для MPNS должны иметь совместимые заголовки, как описано в разделе Отправка push-уведомлений для Windows Phone 8.

Ниже приведены некоторые примеры JSON.

Пример регистрации в APNS:

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

Примечание

Элемент Tags является необязательным.

Пример регистрации в WNS в собственном коде, включая шаблон и без тегов:

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

        } 
}  

Скелетный список многих возможных элементов

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

Ответ

Ответ включает код состояния HTTP и набор заголовков ответа.

Коды ответов

Код Описание
200 Установка успешно поставлена в очередь и обрабатывается в фоновом режиме.
400 Не удалось создать или перезаписать установку, так как запрос был неправильно сформирован.
401 Ошибка авторизации. Неправильный ключ доступа.
403 Слишком много установок в этом пространстве имен — установки не созданы.

Сведения о кодах состояний см. в разделе Коды состояний и ошибок.

Заголовки ответов

Заголовок ответа Описание
Content-type приложение/json
Content-Location Расположение установки в формате: https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/<installationId>

Текст ответа

Нет.

См. также:

Чтение установки
Обновление установки по идентификатору установки
Удаление установки