Google Buzz & OAuth - проблема с перенаправлением
Надеюсь, это не слишком сложно.:) Дело в том..
Я пытаюсь сделать заметки в своем PHP-коде в Google Buzz, используя OAuth в качестве механизма аутентификации. Я делаю типичный "танец OAuth" (получить токен запроса, авторизовать его, обменять на токен доступа), но столкнулся с некоторыми проблемами, которые, похоже, на стороне Google. Надеюсь, я ошибаюсь - это будет гораздо проще исправить.:)
Чтобы добраться до сути - параметр oauth_callback, похоже, не передается в форму авторизации. URI авторизации, на который я перенаправляю, выглядит так:
https://www.google.com/buzz/api/auth/OAuthAuthorizeToken
?domain=<my.domain>
&scope=<urlencode(https://www.googleapis.com/auth/buzz)>
&oauth_token=<request_token>
&oauth_callback=<my.domain/callback>
При перенаправлении клиенту предлагается авторизовать сайт для чтения / записи из / в Buzz. В случае принятия Google снова просит (но в другой форме) разрешить доступ к.. после повторного разрешения отображается сообщение об успехе, но оно не возвращает никаких токенов на мой сайт, не перенаправляя на oauth_callback uri.
Обходной путь, который я нашел, состоит в том, чтобы вручную добавить поле формы "oauth_callback=" через инспектор firebug/chrome, а затем, после этих двух подтверждений, он перенаправляет на мой сайт, и я могу извлечь авторизованный токен из ответа и обменять его на токен доступа. Если я использую "стандартную" конечную точку авторизации Google, меня перенаправляют правильно (только одно подтверждение), но после этого полученный мной токен становится недействительным для Buzz.
Итак, я ошибаюсь или Google?!:D Я реализовал OAuth для сотрудничества с некоторыми другими сервисами (Facebook, MySpace...), но у меня никогда не было таких проблем.
1 ответ
Хорошо, когда я попал на проблему следующим утром, с (частично) свежим взглядом, решение было довольно легким (но все еще недокументированным)..:) в случае, если кому-то еще нужен ответ - при запросе токена запроса должен быть указан параметр oauth_callback.