2011-12-30 3 views
3

У меня было приложение Lisp, которое использовало библиотеку cl-oauth для связи с Google Blogger API. Это работало нормально, пока около недели назад, когда он внезапно прекратил работу, отказавшись от доступа к защищенному ресурсу, получив такие ошибки: 401: Должен аутентифицироваться, чтобы использовать ' по умолчанию & # 39 при попытке доступа к защищенному ресурсу.Проблемы с Google OAuth

URL-адрес, который получает этот ответ (сгенерированный CL-OAuth) является:

http://www.blogger.com/feeds/default/blogs?oauth_signature=KEtBmxpM%252FfIgcCjMpiCM9DxNeBs%253D&oauth_consumer_key=wuwei.name&oauth_token=1%252FhXeaTHEe2eumbBCvrjvUvsQhetK3VZ0skk8qy-bpFcc&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1325121590&oauth_nonce=898902330744558861&oauth_version=1.0

Другими словами, я могу пройти через весь процесс аутентификации, получить маркер доступа, но затем маркер не работает для доступа к ресурсу.

Итак, я думаю, вопрос в том, изменил ли Google что-либо на прошлой неделе или около того? Изменяют ли они OAuth 1.0 или что-то еще? Любые подсказки оценены.

+0

Не уверен, что это связано, но версия cl-oauth в quicklisp перестала работать для меня для доступа к API Twitter некоторое время назад , Вилка в http://github.com/arielnetworks/cl-oauth, похоже, работает. Я не смог понять, почему версия quicklisp перестала работать, поскольку основное отличие заключается в том, что fork использует авторизацию через заголовки, а не URL, но вычисляет все остальное так же, насколько я могу судить. – Ramarren

ответ

1

Ну, я сдался и написал свою собственную реализацию OAuth 2.0 (cl-oauth использует 1.0). Гораздо проще и работает. Код не совсем готов для публичного просмотра, но в конце концов я его выпущу.

+1

Что, черт возьми, это довольно просто, поэтому здесь для тех, кого это интересует: https://github.com/mtravers/waybacker/blob/master/src/oauth2-google.lisp – mtraven

1

Фактически cl-oath исправлено. В дракме произошли изменения, которые были не совсем совместимы. Он разорвал cl-twitter, поскольку плакат Рамарран указал, но теперь все должно быть нормальным.