Редактирование:
API
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
=== Авторизация === Сервер API предоставляет авторизацию через протокол [http://oauth.net/2/ OAuth 2.0] и через обычную авторизацию. Авторизация требуется только для метода <code>/user</code> и служит скорее для предоставления базовой авторизации через GreenCubes для сторонних приложений. ====Базовая авторизация==== Нужно сделать POST запрос на <code>/login</code>, получив ошибку или Success, мы получаем доступ к защищённым API. Для выхода используйте <code>GET /logout</code> ====OAuth 2.0 – Server-flow==== <b>Тут описывается случай, когда вы авторизуетесь с веб-сервера, а не мобильного приложения.</b><br> Для начала клиент делает GET запрос на <code>/oauth/authorize</code> со следующими параметрами: <pre> client_id=2 redirect_uri=http://example.doge/oauth/callback response_type=code </pre> Где <code>client_id</code> - это ID вашего приложения на OAuth сервере, а <code>redirect_uri</code> - это адрес куда впоследствии вышлется код для получения токена. В зависимости от того, залогинен ли пользователь или нет, он вернёт нам одну из следующих страниц: <gallery widths=300 heights=200> Файл:Форма логина API.png|Форма логина Файл:Страница разрешения API.png|Спрашиваем у пользователя разрешение на использование его данных </gallery> После нажатия на "Разрешить", страница отправляет запрос на <code>/oauth/authorize/decision</code>, после чего сервер отвечает запросом с единственным параметром на заданный <code>redirect_uri</code>: <pre> code=w88RMIrSxJdvMmX1hb6DAGHBG2RLUsS8 </pre> Теперь же ваш сервер должен отправить POST запрос на <code>/oauth/access_token</code> следующего вида: <pre> client_id=2 client_secret=wowsecurepasswd code=w88RMIrSxJdvMmX1hb6DAGHBG2RLUsS8 grant_type=authorization_code redirect_uri=http://example.doge/oauth/callback </pre> Если всё хорошо, то в ответ он получит JSON следующего вида: <pre> { "access_token": { "token": "47TbwmOFnUiXTVkTvh2an2KPcuD4xEzVObZZfs...06ylygeFxUVyPjWkkvTCEL8A0hDbSRju9", "userId": 95671, "username": "Kernel", "clientId": 2, "scope": "profile,email" }, "token_type": "bearer" } </pre> Теперь вы можете использовать полученный <code>token</code> для доступа к защищённым частям API, например, <code>/user</code> * <code>access_token</code> — Объект с <code>access_token</code>. ** <code>token</code> — Токен авторизации. '''Примечание:''' Токен только тут имеет идентификатор <code>token</code> в дальнейшем при авторизации его нужно отсылать как <code>access_token</code>. ** <code>userId</code> – ID пользователя в системе. ** <code>username</code> — Имя пользователя для которого выдан <code>access_token</code>. ** <code>clientId</code> — Числовой идентификатор приложения. ** <code>scope</code> — Выданные права доступа. Как правило, это только <code>profile</code>, <code>email</code> и <code>regions</code> * <code>token_type</code> — Тип токена. Может быть только <code>bearer</code>. Введение других типов токенов не планируется. ====OAuth 2.0 – Client-flow (Implicit Flow)==== <b>Тут описывается случай, когда вы авторизуетесь из мобильного/браузерного клиентского приложения (без сервера), а не серверного приложения.</b><br> Для начала клиент делает GET запрос на <code>/oauth/authorize</code> со следующими параметрами: <pre> client_id=2 redirect_uri=http://example.doge/oauth/callback response_type=token </pre> Где <code>client_id</code> - это ID вашего приложения на OAuth сервере, а <code>redirect_uri</code> - это адрес на который будет впоследствии передан <code>access_token</code>. В зависимости от того, залогинен ли пользователь или нет, он вернёт нам одну из следующих страниц: <gallery widths=300 heights=200> Файл:Форма логина API.png|Форма логина Файл:Страница разрешения API.png|Спрашиваем у пользователя разрешение на использование его данных </gallery> '''Если Вы разрабатываете браузерное Javascript-приложение''' (обращаетесь к API с внешнего сайта), необходимо указывать ссылку в рамках домена, указанного в настройках приложения. В остальных случаях в качестве <code>redirect_uri</code> нужно использовать адрес https://api.greencubes.org/blank.html. После нажатия на "Разрешить", страница отправляет запрос на <code>/oauth/authorize/decision</code>, после чего сервер, если всё конечно хорошо, отвечает перенаправлением с двумя параметрами в '''hash''' URL на заданный <code>redirect_uri</code>: <pre> access_token=w88RMIrSxJdvMmX1hb6DAGHBG2RLUsS8 token_type=Bearer </pre> Соответственно, адрес будет выглядеть примерно так: <br> <code>http://example.doge/oauth/callback#access_token=w88RMIrSxJdvMmX1hb6DAGHBG2RLUsS8&token_type=Bearer</code>. Теперь вы можете использовать полученный <code>access_token</code> для доступа к защищённым частям API, например, <code>/user</code> * <code>access_token</code> — Токен авторизации. * <code>token_type</code> – Тип токена. В данный момент, строго только <code>Bearer</code>. ====Встраивание страниц авторизации==== Сервер отдаёт заголовок <code>X-Frame-Options: DENY</code>, что запрещает встраивание страниц авторизации в фреймы. Рекомендовано открывать страницы авторизации в новых окнах.
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «GreenCubes Wiki» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
GreenCubes Wiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице