Как получить токен приложения яндекс
Совместно с коллегами из ADF Media — Артемом Дурневым и Султаном Назаралиевым, мы решили выпустить цикл из 6 статей, посвященных автоматизации процессов в Яндекс Директе. Сегодня вас ждет вступительная часть, в которой мы поговорим про API, токены Директа и Песочницу.
Чтобы автоматизировать работу Я.Директа, мы должны понимать, что такое API.
API — это составляющая часть сервиса, которая позволяет отправлять запросы и получать ответы.
Единого сценария работы с API нет. У каждого сервиса — сценарий свой. Единственное общее — это токены. Не важно с какой рекламной площадкой вы работаете, в любом случае вам нужно будет получать токен.
Токен — это «ключ» к сервису. Где-то токены нужно получать каждый час, а где-то вы должны владеть двумя «токенами» и передавать их на сервер, чтобы получать «истинный» токен в зашифрованном виде. А где-то вы просто получаете от системы один токен и пользуетесь им продолжительное время.
Так как мы говорим про Яндекс, то в нем получение токена организовано по принципу OAuth. Срок действия токена — один год.
OAuth — это протокол авторизации. Например, получив токен, вы можете передать его любому человеку для авторизации в сервисе, которым пользуетесь. Ему не нужно будет знать ваш логин и пароль, если у него есть токен.
Та же история с Я.Директом. Если вы передадите токен, человек сможет управлять рекламными кампаниями и скачивать данные из статистики за вас.
Токен Яндекс.Директа выглядит следующим образом:
Казалось бы, что это просто набор цифр и букв, но на самом деле каждый такой токен содержит следующую информацию:
- идентификатор учетной записи, к которой разрешен доступ;
- идентификатор приложения, которому разрешен доступ;
- набор прав (действий, доступных приложению).
Таким образом, токен показывает, что может делать данное приложение от имени определенного аккаунта.
Есть два варианта получения токена. Простой и сложный. Сложный заключается в том, что нам необходимо стать разработчиком и зарегистрировать приложение. Делается это следующим образом:
- Регистрируемся на сервисе Яндекс.OAuth
- Создаем заявку на доступ к API
Указываем название приложения. В описании можно указать для чего создается приложение.
В графе «платформы” указываем веб-сервисы и нажимаем “Подставить URL для разработки».
Далее необходимо указать какие доступы мы можем запрашивать токеном.
После пройденных шагов, вы получите ID и пароль приложения.
После регистрации OAuth приложения нужно подать заявку на доступ к API Яндекс.Директ. Для этого заходим в Яндекс.Директ и переходим во вкладку API, как показано ниже.
Далее открываем «Мои заявки»
Смело нажимаем на «Полный доступ» и заполняем поля. Вот как заполнили мы:
PS: Мы указали следующие языки программирования: JavaScript (Google Apps Script framework), Node.js, R.В демо-доступе указали ссылку на Google Таблицу.
Срок рассмотрения заявки до 7 дней, но, как правило, рассмотрение занимает один-два дня. После этого заявка будет одобрена или отклонена. Как только приложение будет одобрено, вы сможете «вытаскивать» токены.
Переходим по ссылке вида:
(Не забудьте, поменять хвостик, заменив его на свой ID, который получили выше)
И в ответ на наш запрос — получаем токен.
Простой способ получения токена — Переходим на сайт ADF-media и авторизовываемся. В ответ на авторизацию, сайт покажет вам ваш токен.
Давайте сделаем первую часть цикла статей максимально полезной и поговорим еще и про Песочницу. Пока поверхностно, чтобы иметь о ней минимально представление.
Песочница — это среда для отладки приложений, взаимодействующих с API Директа.
Песочница имитирует API Директа, но полностью изолирована от настоящих данных. Это «игровая площадка», на которой можно вызывать методы API, получать ответы, наблюдать изменение тестовых кампаний и объявлений. Действия, которые доступны в API только при положительном балансе, в Песочнице доступны без фактического внесения средств.
Запросы к Песочнице не изменяют данные в Директе. Созданные объявления нигде не показываются, а списываемые и зачисляемые средства не влияют на настоящие кампании. Однако для кампаний имитируется полный набор состояний — от модерации до остановки показов при исчерпании средств. Статистические отчеты хотя и содержат условные данные, но по структуре совпадают с настоящими отчетами. Это делает Песочницу полнофункциональной средой для отладки приложений.
Песочница не имеет веб-интерфейса, и посмотреть тестовые кампании в интерфейсе невозможно. Работать с Песочницей можно только через вызовы методов API.
Но нужно помнить, что:
- В песочнице действуют те же ограничения, что и в API.
- В сервисе Reports можно запросить данные только по одной кампании в каждом отчете.
- Данные в песочнице хранятся в течение месяца со дня последнего обращения к ним, после чего удаляются.
Мы знаем, что такое API, как зарегистрировать приложение и зачем это нужно, а также понимаем, что такое Песочница.
в следующей статье, мы воспользуемся полученными знаниями для передачи первых данных из Яндекс.Директа в Google Таблицы (без знания программирования).
Снова читаем документацию и понимаем что нам надо отобразить пользователю веб-страницу, с которой после успешной авторизации произойдет редирект на url со схемой которую мы указали на этапе регистрации.
2) Показываем UIWebView и в его делегатских методах отлавливаем переход по нашей схеме.
Второй подход мне кажется более простым, т.к. во-первых пользователь не покидает наше приложение, а во-вторых авторизация через Яндекс может быть едиственным способом входа в наше приложение.
Пишем код
Создаем тестовый проект в XCode.
Добавляем в проект YandexOauthViewController.* (ссылка на исходный код в конце статьи).
В YandexOauthViewController.h изменяем в следующих строках значения на ваши:
Во ViewController.h импортируем YandexOauthViewController.h и обявляем себя «реализатором» протокола YandexOauthViewControllerDelegate.
@interface ViewController : UIViewController <YandexOauthViewControllerDelegate>
В тестовом приложении будем авторизировать пользвателя при запуске. Для этого во ViewController.m изменяем метод ViewDidLoad:
Какой еще self.navigationController, спросите вы и будете правы — навигейшен контроллера еще нет, поэтому добавляем его в AppDelegate.m:
Запускаем приложение и видим так нужную нам форму авторизации.
Кнопка слева (с крестиком) убирает форму авторизации с экрана, а правая кнопка возвращает пользователя на страницу авторизации. Дело в том, что в некоторых случаях Яндекс теряет цель нашего захода в авторизацию и и отображает профиль пользователя из которого нам токен уже не передадут.
После ввода логина пароля и, в некоторых случаях, подтверждения постоянной авторизации на данном устройстве Яндекс перенаправляет нас по URL-схеме указанной прирегистрации приложения. Рассмотрим перехват этого перехода в файле YandexOauthViewController.m.
Осталось в ViewController.m реализовать протокол YandexOauthViewControllerDelegate.
Сегодня мы подробно разберем процесс получения OAuth-токена для доступа к Яндекс.Директ API. Впервые сталкиваясь с процессом получения токена, будь-то API от Google или Яндекса, я по-началу терялся в заявках, регистрациях и прочей бюрократической вакханалии. Поэтому я, буквально, за руку проведу тебя к заветному апи-токену, который мы сразу и проверим.
Как следует из справки Яндекс.Директ API, вся процедура делится на два этапа:
Регистрируем приложение в Яндекс.Директ API
- Название приложения*: DirectDataDealer
- Описание приложения: Необязательное. Но я всё таки напишу: Приложение для пробросаданных в системы сквозной аналитики
- Иконка приложения: Необязательное.
- Ссылка на сайт приложения: Необязательное.
- Платформы: Веб-сервисы и в поле Callback Url жмем Подставить URL для разработки.
- Доступы*: Яндекс.Директ -> Использование API Яндекс.Директа
Отлично, приложение создано, на выходе получится что-то похожее на это:
Отлично, пол дела сделано, осталось запросить доступ к API.
Создаем заявку на доступ к Яндекс.Директ API
Теперь создадим заявку, тут всё довольно просто. Идём сюда и создаем заявку на доступ. Начинаем заполнять:
Бум! Всё готово, отправляем на рассмотрение. После прохождения, в итоге получим такую картину:
Получаем OAuth-токен Яндекс.Директ:
Существует 2 способа получения API-токена: Ручной и Автоматический
Сегодня мы продолжим разговор, посвящённый созданию аутентификации пользователей через социальные сети и сервисы. На этот раз под наш прицел попадает Yandex.
Если кто пропустил предыдущие выпуски, то их можно найти по следующим ссылкам:
Заметка. Как и в предыдущих статьях, пример, созданный в данном уроке, предназначен для работы на локальном сервере.
Шаг 1. Добавление нового приложения
Для начала нам необходимо добавить новое приложение на Yandex. Сделать это можно, пройдя по вот этой ссылке. Заполняем форму:
Название будет "Yandex Auth". В Правах кликаем на "Яндекс.Логин" и выбираем все подпункты: адрес электронной почты, дата рождения, имя пользователя, ФИО, пол. Если пользователь заполнил эти данные в своём профиле, то в последствии, мы получим к ним доступ. Callback URI выбираем: http://localhost/yandex-auth . Таким образом, на локальном сервере поместим наши файлы в каталог "yandex-auth". Нажимаем на кнопку "Создать".
На следующей странице нам отобразится блок со специальными параметрами:
Отсюда мы можем извлечь такие параметры, как `Id приложения`, и`Пароль приложения`. Запишем их в специальные переменные в файле index.php:
Шаг 2. Генерация ссылки для аутентификации
Для генерации ссылки нам потребуется адрес аутентификации и специальные параметры:
Шаг 3. Получение токена
Если к нам пришёл параметр code, то можем начать процедуру аутентификации. Он нам нужен для того, чтобы получить специальный токен доступа, с помощью которого, в дальнейшем, мы достанем информацию о пользователе.
В первую очередь, снова сформируем параметры для этого запроса. Нам потребуется передать параметры: `grand_type`, равный значению "authorization_code" - код активации; `code` - url параметр, пришедший от Yandex-а; `client_id` - id приложения; `client_secret` - пароль приложения:
При успешном выполнении запроса в переменную $tokenInfo будет записан ответ от Yandex-а в JSON формате. Данная строка содержит 2 параметра: access_token, который мы будем использовать в следующих запросах для извлечения информации о пользователе, token_type - тип токена:
Для того чтобы мы далее могли работать с данными параметрами, декодируем JSON строку с помощью функции json_decode и помещаем данные в массив, передав в качестве второго аргумента true.
Шаг 4. Получение информации о пользователе
Теперь, когда у нас есть параметры access_token, мы можем сделать запрос к Yandex API и получить информацию о пользователе:
В параметр format передаём значение json - формат возвращаемых данных; в oauth_token записываем access_token - токен доступа, который мы достали по POST запросу в предыдущем шаге.
В результате, если всё было сделано успешно, то получим JSON ответ. Преобразуем его сразу же в массив:
Если в массиве есть ключ id, то записываем пришедший массив в переменную $userInfo :
Шаг 5. Извлечение информации о пользователе
Достаём данные о пользователе из переменной $userInfo:
Шаг 6. Дальнейшие шаги
После этого всё, что нам осталось сделать, так это создать сессию и поместить в неё информацию о нашем пользователе.
На странице выхода из системы просто удаляем сессию с помощью функци и unset .
Подробную информацию о Yandex OAuth вы сможете найти на сайте Yandex API. Ну вот и всё. С отечественными соц сетями и сервисами мы закончили, а начиная со следующей статьи, приступим к созданию аутентификации через зарубежные социальные сети.
5 последних уроков рубрики "PHP"
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Если нужна помощь в настройке веб-аналитики на сайте, обращайтесь. Мои услуги здесь.
Прежде чем работать с API какого-либо интернет-сервиса, нужно получить специальный ключ, его еще называют токен.
Это уникальное текстовое значение, которое выдается каждому пользователю, для возможности им подтвердить, что это именно он соединяется с API и что у него есть на это право.
Если у нас есть токен, то мы имеем полный доступ к тому приложению, к которому обращаемся и можем там делать все, что угодно.
Поэтому, существует такая мера безопасности и прежде чем работать с API, нужно получить специальный токен.
Яндекс.Метрика не является исключением и, чтобы начать работать с ее API, нам нужно получить этот самый токен.
Как же его можно получить?
Чтобы это сделать, нужно выполнить 2 шага.
1 шаг. Переходим по адресу:
Приложение - это условный мини-аккаунт, с помощью которого вы можете получить этот токен и в дальнейшем им пользоваться.
Жмем на "Зарегистрировать новое приложение" подробнее см. видео.
Указываем название приложения.
В разделе Платформы - выбираем веб-сервисы и выбираем подставить URL для разработки.
Спускаемся ниже и ставим галочки в разделе Яндекс Метрика.
После этого нажимаем на кнопку "Создать приложение".
Когда оно будет создано, вы получите ID приложения.
Шаг 2. Открываем новую вкладку и переходим по адресу:
В этот адрес вам нужно вместо XXXXXX подставить ID вашего приложения, которое вы только что создали.
Остается только нажать на "Разрешить" и мы получаем тот самый токен, который нам нужен. Скопируйте его в надежное место, в дальнейшем он вам еще понадобиться.
Такая процедура получения токена в системе Яндекс Метрика.
Если хотите продолжить знакомиться с API Яндекс Метрики, жмите на Содержание или Далее.
Если нужна помощь в настройке веб-аналитики на сайте, обращайтесь. Мои услуги здесь.
Читайте также: