Идентификатор подписки — subid¶
Какую проблему решает. Когда вы выдаёте пользователю новый URL подписки — переезд домена, перевыпуск токена, смена панели — приложение не может понять, что это та же самая подписка. Оно добавляет вторую запись, и у пользователя оказывается две копии одного и того же.
Передайте subid — и это прекратится: при совпадении subid приложение считает подписку той же самой, заменяет её URL на новый и обновляет серверы на месте.
Откуда может прийти (любой способ — правила те же, что у остальных метаданных)
- HTTP-заголовок —
subid: my-sub-42 - Комментарий в теле — строка
#subid: my-sub-42в теле подписки - Query в URL —
…?subid=my-sub-42
HTTP-заголовок побеждает комментарий в теле, а тот — значение из URL. Формат: буквы, цифры, -, _ и пробелы ([A-Za-z0-9 _-]+). Всё остальное игнорируется — значение просто не сохраняется.
| Ситуация | Что делает приложение |
|---|---|
| URL уже добавлен | Обновляет эту подписку (поведение не меняется) |
| Новый URL, subid совпадает с существующей подпиской | Обновляет именно её: новый URL и свежие серверы, пользовательское имя сохраняется |
| Новый URL, subid новый или отсутствует | Добавляет новую подписку (поведение не меняется) |
subid необязателен. Без него всё работает ровно как раньше — дубликаты определяются только по URL. Передавать его стоит просто чтобы сохранять контроль над записями пользователей при смене адресов.
Выбирайте значение, которое никогда не меняется для подписки конкретного пользователя. Секретным оно быть не обязано — оно лишь сравнивается с тем, что уже есть у приложения, — но должно быть стабильным и уникальным для каждой подписки. UUID или ваш внутренний id подписки одинаково подойдут.
Пример
subid: 8f3a91c2-4b77-4c1e-9a02-5e6d1f0b7c33
Доступно на всех платформах: iOS, Android, macOS, Windows, Linux и Apple TV.