Если вы указали response_type=code
В этом случае результат авторизации выозвращается в виде GET-параметров, чтобы вы сразу имели к ним доступ с сервера, например, так:
http://example.com/oauth/receiver?
code=cfb65617ee147446cb17fba30b2 fdc5e
Обменяйте полученный авторизационный код на идентификатор сессии, который вы сможете использовать для доступа к REST API. Для этого с сервера сделайте следующий POST-вызов на адрес https://connect.mail.ru/oauth/token:
> POST /oauth/token HTTP/1.1
> Host: connect.mail.ru
> Accept: */*
> Content-Length: 186
> Content-Type: application/x-www-form-urlencode d
>
> client_id=464119&
client_secret=ac7fd2cc742c70a707cad3f6b2ca1c89&
grant_type=authorization_code&
code=000ff8627d2d79b60ebdaf004f9a68aa&
redirect_uri=
http://example[dot]com/oauth/receiver
В теле POST-запроса должны находиться данные в формате application/x-www-form-urlencode d (все указанные параметры обязательны):
client_id — идентификатор вашего сайта
client_secret — секретный ключ вашего сайта, выданный при регистрации
grant_type — для данного случая всегда authorization_code
code — авторизационный код, который вы только что получили
redirect_uri — адрес вашей принимающей страницы, который вы указывали при обращении к /oauth/authorize (параметры, добавленные после авторизации, например, code, указывать не нужно)
В ответ на этот запрос вы получите примерно такой результат:
{
"refresh_token":"a45529ac9bf6b32be761975c043ef9e3",
"expires_in":86400,
"access_token":"56a59ff5d5cf9645b872750454d8a27b",
"x_mailru_vid":"1324730981306483817"
}
Значение access_token — это идентификатор сессии, необходимый для работы с REST API.