#ios #mobile #token
#iOS #Мобильный #токен
Вопрос:
Из онлайн-API:
HTTP, ОТПРАВЛЕННЫЙ в /api/device_tokens/, регистрирует токен устройства на нашей стороне. Это позволяет нам знать, что токен устройства активен, и это должно происходить при каждом открытии приложения, чтобы список токенов устройства оставался актуальным.
Как мне в первую очередь получить токен устройства?
Комментарии:
1. Их SDK [Urban Airship] сделает это автоматически для вас, поэтому вам не нужно регистрировать его через API: github.com/urbanairship/ios-library
Ответ №1:
Я полагаю, вам нужно посмотреть здесь: реализовать application:didRegisterForRemoteNotificationsWithDeviceToken
метод получения токена устройства.
РЕДАКТИРОВАТЬ: руководство Urban Airship находится по адресу http://urbanairship.com/docs/apns_test_client.html .
РЕДАКТИРОВАТЬ: единственный способ отправить сообщение APNS — это использовать токен устройства: вы должны передать токен устройства обратно на любой сервер, отличный от Apple, который является точкой отправки уведомления. В транзакции есть 3 логических объекта: устройство, сервер APNS (серверная часть Apple) и исходный сервер (в данном случае сервер Urban Airship). Устройство и серверная часть Apple уже имеют токен (или могут его сгенерировать). Сервер Urban Airship получает этот токен только тогда, когда вы отправляете его им с устройства. Затем он может использовать этот токен для связи с серверной частью APNS и идентификации устройства. Что вы делаете, так это используете application:didRegisterForRemoteNotificationsWithDeviceToken
обратный вызов, а затем отправляете (через HTTP или любой другой проводной протокол, который вы выберете) этот токен на исходный сервер (в документах Urban Airship показано, как это сделать с их библиотекой).). Теперь их сервер может использовать этот токен для связи с серверной частью APNS.
Комментарии:
1. Спасибо Femi. Итак, похоже, что ваши ссылки рассматривают проблему с точки зрения клиента — я рассматриваю это больше с точки зрения сервера. Почему API Urban Airship требует регистрации токена устройства, если устройство может зарегистрироваться в APN? Если серверу необходимо зарегистрировать токен устройства, как серверу становится известно об указанном токене устройства?
2. «здесь» — неработающая ссылка.
Ответ №2:
Чтобы получить токен устройства, у вас есть несколько вариантов:
Вариант 1
Вы можете найти его в качестве одного из аргументов, отправляемых в методе делегата вашего приложения application:didRegisterForRemoteNotificationsWithDeviceToken:
.
Вариант 2
Вы можете получить его как NSString, позвонив [[UAPush shared] deviceToken]
после того, как ваше устройство успешно зарегистрировалось для удаленных уведомлений.
Вариант 3
Если у вас нет доступа к коду. Вы можете найти его, прочитав вызовы вашего приложения Urban airship. Вы можете сделать это с помощью Charles proxy. Полные инструкции по этой ссылке. Подводя итог:
- Установите сертификат Charles на свое устройство iOS, чтобы http://charlesproxy.com/charles.crt в Safari на вашем устройстве.
- Прокси беспроводное соединение вашего устройства через Charles
- Включите прокси-сервер SSL в Charles for
*.urbanairship.com
на порту 443. - Запустите приложение и найдите вызовы URL-адресов с упоминанием «urbanairship», которые были записаны в Charles. Они должны быть расшифрованы, а некоторые будут содержать информацию о вашем токене устройства.