Oauth yandex ru что это

от admin

Автоматизация Яндекс.Директ. Часть 1

Совместно с коллегами из ADF Media — Артемом Дурневым и Султаном Назаралиевым, мы решили выпустить цикл из 6 статей, посвященных автоматизации процессов в Яндекс Директе. Сегодня вас ждет вступительная часть, в которой мы поговорим про API, токены Директа и Песочницу.

Чтобы автоматизировать работу Я.Директа, мы должны понимать, что такое API.

API — это составляющая часть сервиса, которая позволяет отправлять запросы и получать ответы.

Единого сценария работы с API нет. У каждого сервиса — сценарий свой. Единственное общее — это токены. Не важно с какой рекламной площадкой вы работаете, в любом случае вам нужно будет получать токен.

Токен — это «ключ» к сервису. Где-то токены нужно получать каждый час, а где-то вы должны владеть двумя «токенами» и передавать их на сервер, чтобы получать «истинный» токен в зашифрованном виде. А где-то вы просто получаете от системы один токен и пользуетесь им продолжительное время.

Так как мы говорим про Яндекс, то в нем получение токена организовано по принципу OAuth. Срок действия токена — один год.

OAuth — это протокол авторизации. Например, получив токен, вы можете передать его любому человеку для авторизации в сервисе, которым пользуетесь. Ему не нужно будет знать ваш логин и пароль, если у него есть токен.

Та же история с Я.Директом. Если вы передадите токен, человек сможет управлять рекламными кампаниями и скачивать данные из статистики за вас.

Токен Яндекс.Директа выглядит следующим образом:

Казалось бы, что это просто набор цифр и букв, но на самом деле каждый такой токен содержит следующую информацию:

  • идентификатор учетной записи, к которой разрешен доступ;
  • идентификатор приложения, которому разрешен доступ;
  • набор прав (действий, доступных приложению).

Таким образом, токен показывает, что может делать данное приложение от имени определенного аккаунта.

Есть два варианта получения токена. Простой и сложный. Сложный заключается в том, что нам необходимо стать разработчиком и зарегистрировать приложение. Делается это следующим образом:

  1. Регистрируемся на сервисе Яндекс.OAuth
  2. Создаем заявку на доступ к API

Указываем название приложения. В описании можно указать для чего создается приложение.

В графе «платформы” указываем веб-сервисы и нажимаем “Подставить URL для разработки».

Далее необходимо указать какие доступы мы можем запрашивать токеном.

После пройденных шагов, вы получите ID и пароль приложения.

После регистрации OAuth приложения нужно подать заявку на доступ к API Яндекс.Директ. Для этого заходим в Яндекс.Директ и переходим во вкладку API, как показано ниже.

Далее открываем «Мои заявки»

Смело нажимаем на «Полный доступ» и заполняем поля. Вот как заполнили мы:

В демо-доступе указали ссылку на Google Таблицу.

Срок рассмотрения заявки до 7 дней, но, как правило, рассмотрение занимает один-два дня. После этого заявка будет одобрена или отклонена. Как только приложение будет одобрено, вы сможете «вытаскивать» токены.

Переходим по ссылке вида:

(Не забудьте, поменять хвостик, заменив его на свой ID, который получили выше)

И в ответ на наш запрос — получаем токен.

Простой способ получения токена — Переходим на сайт ADF-media и авторизовываемся. В ответ на авторизацию, сайт покажет вам ваш токен.

Давайте сделаем первую часть цикла статей максимально полезной и поговорим еще и про Песочницу. Пока поверхностно, чтобы иметь о ней минимально представление.

Песочница — это среда для отладки приложений, взаимодействующих с API Директа.

Песочница имитирует API Директа, но полностью изолирована от настоящих данных. Это «игровая площадка», на которой можно вызывать методы API, получать ответы, наблюдать изменение тестовых кампаний и объявлений. Действия, которые доступны в API только при положительном балансе, в Песочнице доступны без фактического внесения средств.

Запросы к Песочнице не изменяют данные в Директе. Созданные объявления нигде не показываются, а списываемые и зачисляемые средства не влияют на настоящие кампании. Однако для кампаний имитируется полный набор состояний — от модерации до остановки показов при исчерпании средств. Статистические отчеты хотя и содержат условные данные, но по структуре совпадают с настоящими отчетами. Это делает Песочницу полнофункциональной средой для отладки приложений.

Песочница не имеет веб-интерфейса, и посмотреть тестовые кампании в интерфейсе невозможно. Работать с Песочницей можно только через вызовы методов API.

Но нужно помнить, что:

  • В песочнице действуют те же ограничения, что и в API.
  • В сервисе Reports можно запросить данные только по одной кампании в каждом отчете.
  • Данные в песочнице хранятся в течение месяца со дня последнего обращения к ним, после чего удаляются.

Мы знаем, что такое API, как зарегистрировать приложение и зачем это нужно, а также понимаем, что такое Песочница.

в следующей статье, мы воспользуемся полученными знаниями для передачи первых данных из Яндекс.Директа в Google Таблицы (без знания программирования).

1234ru / Yandex.Oauth.md

Токен не существует сам по себе, а выдается приложению от имени чьего-то аккаунта в Яндексе. Таким образом владелец аккаунта разрешает этому приложению доступ к определенным операциям со своим аккаунтом. Токен является реализацией такого разрешения.

1. Регистрируем приложение

Заполняем форму на https://oauth.yandex.ru/client/new. Обязательно сделать следующее:

  • указать название приложения (например, «watches.ru site engine»)
  • в разделе Callback URI нажать «Подставить URL для разработки», в поле возникнет адрес от Яндекса
  • среди доступов найти нужный раздел (например, для Яндекс.Маркета и Беру.ру это Яндекс.Маркет).

После отправки формы отобразится страница с параметрами приложения, отсюда нужно взять его идентификатор и пароль.

В дальнейшем доступ к этим данным осуществляется по адресу https://oauth.yandex.ru/client/<id приложения>. Страница будет доступна только тому аккаунту, от имени которого было создано приложение (создать приложения без аккаунта в Яндексе нельзя).

2. Разрешаем приложению доступ — получаем токен

Заходим на Яндекс с учетной записью пользователя, к аккаунту которого приложение должно запросить доступ. (Он может отличаться от аккаунта, из-под которого было создано приложение, но может и совпадать.)

Взять идентификтор приложения, подставить его в адрес
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
и открыть страницу. Нажать Разрешить.

Прямо на странице будет отображен новый токен. Его нужно куда-то сохранить, т.к. как его посмотреть потом — пока неизвестно. А в адресе в параметре expires — время жизни в секундах (например, для приложения с доступом к Яндекс.Маркету это один год).

3. Отправляем токен с запросами

В состав соотв. запросов токен включается с помощью заголовка Authorization: Oauth , куда входит также идентификатор приложения:

Аутентификация через Yandex

Сегодня мы продолжим разговор, посвящённый созданию аутентификации пользователей через социальные сети и сервисы. На этот раз под наш прицел попадает Yandex.

Если кто пропустил предыдущие выпуски, то их можно найти по следующим ссылкам:

Заметка. Как и в предыдущих статьях, пример, созданный в данном уроке, предназначен для работы на локальном сервере.

Шаг 1. Добавление нового приложения

Для начала нам необходимо добавить новое приложение на Yandex. Сделать это можно, пройдя по вот этой ссылке. Заполняем форму:

Название будет «Yandex Auth». В Правах кликаем на «Яндекс.Логин» и выбираем все подпункты: адрес электронной почты, дата рождения, имя пользователя, ФИО, пол. Если пользователь заполнил эти данные в своём профиле, то в последствии, мы получим к ним доступ. Callback URI выбираем: http://localhost/yandex-auth . Таким образом, на локальном сервере поместим наши файлы в каталог «yandex-auth». Нажимаем на кнопку «Создать».

На следующей странице нам отобразится блок со специальными параметрами:

Отсюда мы можем извлечь такие параметры, как `Id приложения`, и`Пароль приложения`. Запишем их в специальные переменные в файле index.php:

Шаг 2. Генерация ссылки для аутентификации

Для генерации ссылки нам потребуется адрес аутентификации и специальные параметры:

С помощью функции http_build_query, передав массив параметров, мы получим чередование ключей и значений, как в url адресе. Итак, генерируем ссылку и выводим на экран. Тут же, в очередной раз, я воспользовался функцией urldecode. Если этого не сделать, то в сгенерированной ссылке могут появиться закодированные символы слешей, знаков двоеточия и так далее. Если же мы пропустим данную строку через функцию urldecode, то получим:

Читать:
Ошибка 1303 при установке касперского как исправить

Ссылка для аутентификации готова. Если мы сформировали все параметры верно и получили правильный url, то пройдя по ссылке, будем перенаправлены по адресу, указанному в настройках приложения (‘http://localhost/yandex-auth’). Как и в предыдущих случаях (при работе с Вконтакте, Одноклассниками и Mail.ru), к этому адресу будет прикреплён специальный параметр code:

Шаг 3. Получение токена

Если к нам пришёл параметр code, то можем начать процедуру аутентификации. Он нам нужен для того, чтобы получить специальный токен доступа, с помощью которого, в дальнейшем, мы достанем информацию о пользователе.

В первую очередь, снова сформируем параметры для этого запроса. Нам потребуется передать параметры: `grand_type`, равный значению «authorization_code» — код активации; `code` — url параметр, пришедший от Yandex-а; `client_id` — id приложения; `client_secret` — пароль приложения:

Далее нам нужно отправить POST запрос на адрес https://oauth.yandex.ru/token, передав перечисленные параметры. В PHP выполнить POST запрос можно с помощью создания curl-а:

При успешном выполнении запроса в переменную $tokenInfo будет записан ответ от Yandex-а в JSON формате. Данная строка содержит 2 параметра: access_token, который мы будем использовать в следующих запросах для извлечения информации о пользователе, token_type — тип токена:

Для того чтобы мы далее могли работать с данными параметрами, декодируем JSON строку с помощью функции json_decode и помещаем данные в массив, передав в качестве второго аргумента true.

Шаг 4. Получение информации о пользователе

Теперь, когда у нас есть параметры access_token, мы можем сделать запрос к Yandex API и получить информацию о пользователе:

В параметр format передаём значение json — формат возвращаемых данных; в oauth_token записываем access_token — токен доступа, который мы достали по POST запросу в предыдущем шаге.

Для получения информации о пользователе сформированные параметры нам нужно отправить GET запросом по адресу https://login.yandex.ru/info:

В результате, если всё было сделано успешно, то получим JSON ответ. Преобразуем его сразу же в массив:

Если в массиве есть ключ id, то записываем пришедший массив в переменную $userInfo :

Шаг 5. Извлечение информации о пользователе

Достаём данные о пользователе из переменной $userInfo:

Шаг 6. Дальнейшие шаги

После этого всё, что нам осталось сделать, так это создать сессию и поместить в неё информацию о нашем пользователе.

На странице выхода из системы просто удаляем сессию с помощью функци и unset .

Подробную информацию о Yandex OAuth вы сможете найти на сайте Yandex API. Ну вот и всё. С отечественными соц сетями и сервисами мы закончили, а начиная со следующей статьи, приступим к созданию аутентификации через зарубежные социальные сети.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.ruseller.com
Автор: Станислав Протасевич
Урок создан: 18 Марта 2013
Просмотров: 52014
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Oauth yandex ru что это

Получаем API токен Яндекс.Директ

Сегодня мы подробно разберем процесс получения OAuth-токена для доступа к Яндекс.Директ API. Впервые сталкиваясь с процессом получения токена, будь-то API от Google или Яндекса, я по-началу терялся в заявках, регистрациях и прочей бюрократической вакханалии. Поэтому я, буквально, за руку проведу тебя к заветному апи-токену, который мы сразу и проверим.

Как следует из справки Яндекс.Директ API, вся процедура делится на два этапа:

  • Регистрация на сервисе Яндекс.OAuth
  • Создание заявки на доступ к API

Регистрируем приложение в Яндекс.Директ API

Авторизуемся из под аккаунта с кабинетом Яндекс.Директ, данные которого нас интересуют. Переходим на страницу oauth.yandex.ru, и жмем на желтую кнопку «Зарегистрировать новое приложение». И заполняем поля, согласно плану:

  • Название приложения*: DirectDataDealer
  • Описание приложения: Необязательное. Но я всё таки напишу: Приложение для пробросаданных в системы сквозной аналитики
  • Иконка приложения: Необязательное.
  • Ссылка на сайт приложения: Необязательное.
  • Платформы: Веб-сервисы и в поле Callback Url жмем Подставить URL для разработки.
  • Доступы*: Яндекс.Директ -> Использование API Яндекс.Директа

Отлично, приложение создано, на выходе получится что-то похожее на это:

Заявка на доступ к Яндекс.Директ API

Отлично, пол дела сделано, осталось запросить доступ к API.

Создаем заявку на доступ к Яндекс.Директ API

Теперь создадим заявку, тут всё довольно просто. Идём сюда и создаем заявку на доступ. Начинаем заполнять:

  • Введите application_id или выберите из списка * : В дропменю выбираем наше приложение в моём случае это DirectDataDealer.
  • Укажите один или несколько контактов, по которым с вами быстро сможет связаться служба поддержки*: Пишем ваш мейл.
  • Данные о компании: Скорее всего у вас или у вашего клиента уже есть сайт, в моем случае Akulshin.ru и https://akulshin.ru/
  • Выберите утверждение, которое лучше всего описывает специфику вашей работы. Вы:* Я прямой рекламодатель, а вы?
  • Технические данные о приложении: Язык программирования — Python, протокол — Json, версия библиотек — 3.8. В примерах из моих статьей используются именно эти версии.
  • Для примера успешной работы приложения, укажите один или несколько логинов в Директе, для которых оно используется *: Абсурд, если вы регистрируете своё первое приложение, то просто укажите текущий логин в Яндексе.
  • Для чего предназначено приложение*: В моем случае это — Синхронизировать рекламные материалы с данными внутренних систем (товары, деньги, отчетность)
  • Основные функции приложения*: Получение статистики и отчетов
  • Какие новые возможности работы с Директом дает ваше приложение пользователям?*: Я написал, что «Агрегирую данные в сквозной аналитике и предикторе. Получение статистики Яндекс.Директ и её дальнейшая обработка.»
  • Опишите схему взаимодействия вашего приложения с Директом*: Программа запускается автоматически 2 раза в сутки, в основном используем метод «AccountManagement» и сервис Campaign для получения статистики, далее передаем в базу, где обрабатываем.
  • Спецификации, скриншоты интерфейса * : Либо нарисуйте блок-схему обработки данных, либо как я заскриньте IDE, пусть какому-нибудь модеру из Яндекса станет за вас стыдно.
  • По возможности предоставьте нам демо-доступ к программе: Игнорируем этот пункт

Бум! Всё готово, отправляем на рассмотрение. После прохождения, в итоге получим такую картину:

Заявка на доступ к Яндекс.Директ API

Получаем OAuth-токен Яндекс.Директ:

Существует 2 способа получения API-токена: Ручной и Автоматический

Так как мы не пишем приложение, которое будут использовать десятки авторизованных пользователей, то нам хватит и ручного получения токена. Теперь дело за малым, делаем запрос на выдачу «API-ключа», который мы будем использовать в нашем приложении. Для этого:

Похожие статьи