Здравствуйте! Я опять пришел жаловаться на тупизм разработчиков. На это раз Mail с их OAuth. Разработчики явно не долюбливают PHP.
Например, мне нужно получить параметры после авторизации в Mail.Ru через OAuth.
Для JS программистов они сделали все сладко да гладко.
Если нужен ответ авторизации, то есть необходимые данные (токен, ключи и т.д) приходят данные в таком виде
CODE ( htmlphp):
скопировать код в буфер обмена
http://example.com/oauth/receiver# refresh_token=b45529ac9bf6b32be761975c043ef9e3& access_token=b6442ed12223a7d0b459916b8ea03ce5& token_type=bearer& code=cfb65617ee147446cb17fba30b2fdc5e
Как вы поняли это для обработчика на JavaScript, теперь мне нужно получить GET параметры чтобы их обработать, но вместо того чтобы вернуть те же данные через знак ? вместо # они предлагают следующее
Цитата:В этом случае результат авторизации выозвращается в виде 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
Понятное дело что хочется как то обойти этот дибилизм.
Как я понял решается это 2 путями.
1) либо как то перехватить редирект и поменять символ # на ?
2) или получить всю строчку, только вот как? $_SERVER['REQUEST_URI'] не видит то что после знака #
Пожалуйста предложите какие нибудь способы для этих двух вариантов.(Отредактировано автором: 29 Января, 2013 - 19:40:27)
|