Надеюсь, это не станет слишком сложным. :) Дело в том..
Я пытаюсь публиковать свои заметки 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 снова запрашивает (но в другой форме) разрешить доступ к .. после разрешения во второй раз отображается сообщение об успешном завершении, но он не возвращает никаких токенов на мой сайт, не перенаправляя на uri oauth_callback.
Обходной путь, который я нашел, заключается в том, чтобы вручную добавить поле формы «oauth_callback =» через инспектора firebug/chrome, а затем, после этих двух подтверждений, он перенаправляется на мой сайт, и я могу извлечь авторизованный токен из ответа и обменять его на токен доступа. Если я использую «стандартную» конечную точку авторизации Google, я получаю правильное перенаправление (только одно подтверждение), но затем токен доступа, который я получаю после этого, недействителен для Buzz.
Так я ошибаюсь или гугл?! :D Я реализовал OAuth для взаимодействия с некоторыми другими сервисами (Facebook, MySpace...), но у меня никогда не было таких проблем.