Wiki

Clone wiki

darudar-backend / Поиск знакомых через социальные сети

Список знакомых

URI: GET ~/settings/friends/<provider>

Получение списка знакомых из указанной соц. сети <provider>.

Доступны следующие провайдеры:

  • goog -- Гугл
  • fb -- Фейсбук
  • vk -- Вконтакте
  • ok -- Одноклассники

Пример запроса:

GET /settings/friends/vk HTTP/1.1
HOST: api.brutto.dev.darudar.com
content-type: application/json
authorization: <token>
accept: application/json

Обратить внимание на наличие токена в заголовке

При выполнении данного запроса будет выполнена проверка наличия у пользователя валидного токена доступа к контактам указанного провайдера.

Если токен присутствует - будет возвращен соответствующий список пользователей-знакомых.

Пример ответа:

#!json
{
  "users": [
    {...}, <-- Пользователь (см. вывод пользователя в списке)
    {...},
    {...}
  ]
}
При отсутствии валидного токена будет возвращен ответ с кодом ошибки 403.

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

URI: GET ~/auth/oauth2/external/go/<provider>/contacts

Для пользователя должна быть открыта сессия

Обязательные параметры:

Параметр Описание
response_type =token
client_id ID-клиента, который запрашивает доступ к контактам пользователя
redirect_uri URI на который будет перенаправлен ответ сервера авторизации (APP_CALLBACK_URI) - соответствует тому же, что используется при внешней авторизации

Пример запроса:

GET /auth/oauth2/external/go/vk/contacts HTTP/1.1
HOST: api.darudar.org
content-type: application/x-www-form-urlencoded

response_type=token&client_id=<client_id>&redirect_uri=https://app.darudar.org/update_token.html

В результате на сервер авторизации указанного провайдера будет отправлен запрос прав на доступ к контактам пользователя, результатом которого станет предложение подтвердить выдачу разрешений приложению. После подтверждения выдачи прав произойдет редирект на указанный в запросе к провайдеру redirect_uri, в данном случае:

Redirect to: ~/auth/oauth2/external/cb/<provider>/contacts
результатом выполнения которого станет запрос у провайдера токена доступа с последующим его сохранением и редирект на указанный в исходном запросе API_CALLBACK_URI:

Redirect to: https://app.darudar.org/update_token.html?access_token=<access_token>

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

Результатом станет JSON-ответ, содержащий список пользователей в указанном ранее формате.

Updated