Михаил Сенин, Герман Андреев — Использование api...

50
Герман Андреев Старший разработчик Яндекс.Вебмастер APIшник в Киеве 27 апреля 2013 Использование API Вебмастера в плагинах CMS

Upload: yandex

Post on 15-Jun-2015

744 views

Category:

Technology


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Герман Андреев Старший разработчик Яндекс.Вебмастер APIшник в Киеве 27 апреля 2013

Использование API Вебмастера в плагинах CMS

Page 2: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Содержание

Для чего нужен API

Зачем разрабатывать плагины CMS

Какие функции API доступны

Основные задачи и трудности

Page 3: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Для чего нужен API

Page 4: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

4

Для чего нужен API

• Много разных CMS • Популярны сразу несколько версий • Невозможно написать один единственный плагин

Page 5: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

5

Для чего нужен API

• API не привязан к конкретной CMS • Не привязан к языку программирование • Универсальный протокол XML и REST

Page 6: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Зачем разрабатывать плагины к CMS

Зачем нужны плагины

Page 7: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

7

Зачем нужны плагины

• Хочется все видеть в едином интерфейсе • Упрощение сложных задач • Автоматизация частых задач

Page 8: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Функции API

Page 9: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

9

Функции API

• Подтверждение прав • Информация о сайте • Работа с файлами Sitemap • Работа с оригинальными текстами

Page 10: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

10

Функции API

• Получение информации о сайте: - общая статистика сайта - история индексирования - история изменения тИЦ - входящие ссылки

Page 11: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

11

Функции API

• Работа с файлами Sitemap - добавление - удаление - получение информации

Page 12: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

12

Функции API

• Работа с оригинальными текстами - добавление - удаление

Page 13: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Простой плагин

Попробуем разработать простой плагин

Page 14: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

14

Простой плагин

• Плагин получает число страниц в поиске и рисует котика

• Котики меняются в зависимости от количества страниц

Page 15: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

15 Простой плагин

Page 16: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

16

Простой плагин

• Регистрация плагина • Работа с авторизацией • Подтверждение прав • Получение информации по сайту

Page 17: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Преимущества OAuth

Page 18: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

18

Преимущества OAuth

• Защита пользователя • Долгий срок жизни авторизации • Доступ только к разрешенным данным

Page 19: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Регистрация плагина в OAuth

Регистрация плагина

Page 20: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

20

Регистрация плагина

• Зайти на https://oauth.yandex.ru • Добавить плагин в список приложений

Page 21: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

21 Регистрация плагина

Page 22: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

22

Регистрация плагина

• Доступны два вида прав - данным о сайте - получение входящих ссылок

• Для входящих ссылок нужно пройти идентификацию

• Подробности http://legal.yandex.ru/webmaster_api/

Page 23: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

23

Регистрация плагина

• Callback URI должен быть указан • Можно взять

https://oauth.yandex.ru/verification_code • Подробности в документации

http://api.yandex.ru/oauth/doc • Также тут

http://api.yandex.ru/webmaster/doc/dg/concepts/faq.xml

Page 24: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Получение OAuth токена

Получение токена

Page 25: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

25

В запросе передается client_id – идентификатор приложения Ссылку нужно открыть в новом окне

https://oauth.yandex.ru/authorize?response_type=code&client_id=12345abcdef54321&display=popup!!

Получение токена

Page 26: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

26 Получение токена

Page 27: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

27 Получение токена

Page 28: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

28

Получение токена

• OAuth поддерживает два метода - response_type=code - response_type=token

• Для плагинов возможно использовать только response_type=code

Page 29: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

29

Получение токена

• Запросить код у пользователя • Запросить токен у oauth.yandex.ru • Код подтверждения должен передаваться по HTTPS

• Токен действителен 6 месяцев • Желательно сохранить дату окончания действия токена

Page 30: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

30

Выполнить POST запрос к https://oauth.yandex.ru/token HTTPS – обязателен client_id и client_secret – со страницы регистрации плагина

POST /token HTTP/1.1!Host: oauth.yandex.ru!Content-type: application/x-www-form-urlencoded!Content-Length: <length> !!grant_type=authorization_code&code=7771777&client_id=12345abcdef54321&client_secret=54321ab12345!

Получение токена

Page 31: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

31

В ответ придет json

{"access_token": "19e4eec0ef076d3af08157685e192695", "expires_in": 2592000}!

Получение токена

Page 32: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

32

Все запросы к API Вебмастера должны содержать заголовок

Authorization: OAuth 19e4eec0ef076d3af08157685e192695!

Получение токена

Page 33: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Добавление сайта в Вебмастер

Добавление сайта

Page 34: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

34

Добавление сайта

• Проверить что сайт добавлен в вебмастер • Если сайт не добавлен, то добавить

Page 35: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

35

Получить из API Вебмастера список сайтов пользователя: Отправить GET запрос по адресу:

https://webmaster.yandex.ru/api/v2/hosts/!

Добавление сайта

Page 36: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

36

В ответ придет список добавленных сайтов и их статус

<hostlist>!...!<host href="..." rel="self">!<name>example.com</name>!<verification state="VERIFIED" />!...!</host>!...!</hostlist>!

Добавление сайта

Page 37: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

37

Если сайт не добавлен: Отправить POST запрос с именем сайта по адресу

https://webmaster.yandex.ru/api/v2/hosts/!!<host>!<name>example.com</host>!</host>!

Добавление сайта

Page 38: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

38

Получить ссылку на сайт из заголовка Location

HTTP/1.1 201 Created!Location: https://webmaster.yandex.ru/api/v2/hosts/1234 Content-Type: application/xml; charset=utf-8!!<host>!<name>example.com</name>!</host>!

Добавление сайта

Page 39: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Проверка прав

Page 40: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

40

Проверка прав

• Для добавленного сайта нужно подтвердить права

• Для плагина удобны следующие методы: - HTML_FILE – специальный html файл - TXT_FILE – текстовый файл - META_TAG – тэг meta на главной странице - Попросить пользователя

Page 41: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

41

Отправить GET запрос по адресу

https://webmaster.yandex.ru/api/v2/hosts/1234/verify!

Проверка прав

Page 42: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

42

Достать UIN из xml ответа

<host>!<name>example.com</name>!<verification state="NEVER_VERIFIED"> <uin>7df2d85743a4928a</uin>!</verification>!</host>!

Проверка прав

Page 43: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

43

Отправить PUT запрос по адресу с выбранным типом верификации

https://webmaster.yandex.ru/api/v2/hosts/1234/verify!!<host>!<type>META_TAG</type>!</host>!

Проверка прав

Page 44: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Получение числа страниц в поиске

Информация о сайте

Page 45: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

45

Задать GET запрос по адресу

https://webmaster.yandex.ru/api/v2/hosts/1234/stats!

Информация о сайте

Page 46: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

46

В ответе придет xml с информацией о сайте

<host>!<name>example.com</name>!<verification state="VERIFIED” />!...!<index-count>255</index-count>!...!</host>!

Информация о сайте

Page 47: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

47

Можно рисовать котиков…

Page 48: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

… а также историю индексации, добавлять оригинальные тексты и файлы Sitemap

Page 49: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

49

Ссылки

Документация по API Вебмастера http://api.yandex.ru/webmaster/doc Документация по API OAuth http://api.yandex.ru/oauth/doc

Page 50: Михаил Сенин, Герман Андреев — Использование API Вебмастера в плагинах к CMS

Герман Андреев

старший разработчик

[email protected]

Спасибо