неверный ключ API - PullRequest
       14

неверный ключ API

0 голосов
/ 17 августа 2011

Я изучаю использование сервисного модуля в Drupal 6 для получения данных из некоторых пользовательских представлений в формате JSON.Я следовал за статьей в http://drupal.org/node/308629 и создал vb-версию этого проекта (поднял до https://sharpred@github.com/sharpred/ConsoleApplicationDrupal.git)

При первом запуске кода я получаю «Неверный ключ API», последующие запуски возвращают«токен ранее использовался для запроса. Повторите попытку с другим одноразовым ключом». Вторая ошибка - немного поддельная IMO, так как мой код создает новый случайный одноразовый номер при каждом запуске.

Я также заметилчто при первом запуске создается запись в таблице services_timestamp_nonce, которая содержит только метку времени, но не одноразовый номер или значение домена. Если я удаляю эту запись, она возвращается к сообщению «недействительный ключ API».

Код работает без проверки подлинностии вызов метода из /admin/build/services/browse/views.get на сайте также работает.

Любые идеи о том, почему это не работает?

Поиск в Google, наиболееобщий источник «недопустимого ключа API», по-видимому, либо неправильная временная метка, либо ключ API не совпадает с доменом, использованным при создании хеш-кода.SE, насколько я могу видеть.Я создал суть своего кода, использованного для создания метки времени и хэша в https://gist.github.com/1151222

Может ли кто-нибудь помочь с тем, чтобы этот процесс заработал?

1 Ответ

0 голосов
/ 18 августа 2011

Я понял это после просмотра кода модуля сервисов. Некоторые значения в моей многочастной форме не были заключены в кавычки, поэтому обрабатывались модулем services_key_auth как нулевые. Это означало, что при первом проходе в таблицу nonce записывалась только временная метка, а вычисленный хэш не соответствовал моему хэшу из-за кавычек. При последующих обновлениях модуль эффективно выполнял поиск одноразового значения null и находил его в базе данных, возвращая результат, который использовался ранее. Если кто-то еще столкнется с этой проблемой, потяните мой проект github, связанный выше, и посмотрите на мой код.

...