2011-02-04 4 views
1

Я использую (OpenId + OAuth) гибридный протокол.Google GetAccessToken: плохой запрос 400

После того, как я перенаправил пользователя на https://www.google.com/accounts/o8/ud со всеми параметрами расширения open и oauth, пользователь может увидеть экран входа и службы, к которым мне нужно получить доступ. На преуспевающим входе я получаю ответ, как следующее:

http://muUrl.com/...&openid.ns.ext2=http://specs.openid.net/extensions/oauth/1.0&openid.ext2.scope=http://docs.google.com/feeds/& openid.ext2.request_token = 4/8GCHDIvtxhbg8gVkfYro7QIFakoB

Я понимаю, пользователь правильно вошел в систему и текст выделен жирным шрифтом уполномочено маркер. Затем я делаю вызов для получения токена доступа со всеми параметрами , за исключением oauth_verifier, поскольку он недоступен в гибридном режиме. Я подписываю базовую строку с помощью HMAC-SHA1 с ключом как «consumerecret &» (токен секрет еще не доступен)

Я получаю 400 плохих запросов с недопустимой подписью. Любая помощь или предложение высоко оценены, чтобы решить эту проблему.

+0

Проверьте свой процентный выход. В токенах Google есть много специальных персонажей, и легко забыть их правильно скрыть. Это приведет к тому, что подписи не совпадут. Если это не сработает, вам действительно нужно добавить дополнительную информацию в свой вопрос. Здесь недостаточно информации, чтобы успешно отладить проблему OAuth. –

+0

спасибо ... это была проблема с кодировкой. – helloworld

+1

, но где вы пишете кодировку? это классы Google ... Я получаю код вроде этого 'code = 4/Ryjbc-ykPJvJhhonyYiN3359rofU.8r0nRibOcg0TOl05ti8ZT3aNCxetdQI' - как вы думаете, он должен быть закодирован? – OhadR

ответ

1

pls см. Bob и мои комментарии. % экранирование может быть проблемой, если вы столкнулись с такой же проблемой, как у меня. oauth_verifier действительно не требуется в гибридном режиме.

Смежные вопросы