Как добавить несколько тегов на одно зарегистрированное устройство - PullRequest
0 голосов
/ 09 апреля 2020

Я могу зарегистрировать устройство с регистрационным идентификатором, регистрационным идентификатором gcm и тегом, который регистрируется изначально. Я нашел API для обновления регистрации ( здесь ), и я возился с ним, пытаясь добавить несколько тегов, но в действительности это не «добавление» нового тега. Это переписывает это. Есть ли способ сказать API, чтобы он просто добавил новый тег в список существующих тегов?

Вот как выглядит мой вызов API (взято из Почтальона):

Конечная точка :
https://<hubnamespacename>.servicebus.windows.net/<hubname>/registrations/<registrationId>/?api-version=2015-01

Заголовки :
Тип содержимого: приложение / atom + xml; тип = запись; кодировка = utf8
Авторизация: a скрипт для получения авторизации SAS
x-ms-версия: 2015-01

Тело запроса :

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
    <GcmRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
        <Tags>tagName</Tags>
        <GcmRegistrationId>myGcmRegistrationId</GcmRegistrationId> 
    </GcmRegistrationDescription>
</content>
</entry>

Если я запускаю этот вызов API, он возвращает правильные 200 с этим объектом ответа:

<entry a:etag="W/&quot;8&quot;" xmlns="http://www.w3.org/2005/Atom" xmlns:a="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<id>myEndpoint</id>
<title type="text">myRegistrationId</title>
<published>2020-04-08T22:45:31Z</published>
<updated>2020-04-08T22:45:31Z</updated>
<link rel="self" href="myEndpointAgain/>
<content type="application/xml">
    <GcmRegistrationDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <ETag>8</ETag>
        <ExpirationTime>9999-12-31T23:59:59.999</ExpirationTime>
        <RegistrationId>registrationId</RegistrationId>
        <Tags>tagName</Tags>
        <GcmRegistrationId>gcmRegistrationId</GcmRegistrationId>
    </GcmRegistrationDescription>
</content>
</entry>

Если я запусту тот же API с другим тегом (скажем, «tagNameV2» вместо «tagName»), тогда узел «Теги» в ответе будет просто иметь «tagNameV2» вместо "tagName, tagNameV2".

Что я здесь не так делаю?

...