Использование ключа с модулем Drupal Services - PullRequest
0 голосов
/ 10 июля 2010

Я тестирую сервисный модуль Drupal, и он работает нормально.Теперь я переключился с ключа без аутентификации на ключ, и система сгенерировала этот ключ для меня afw92iej83foijofn23.

Когда я проверяю node.get на http://localhost/drupal/admin/build/services/browse/node.get, я вижу, что теперь нужны 4 дополнительных обязательных параметра stringhash, stringdomain_name, stringdomain_time_stamp, stringnonce.

Аргументы (6)

  • stringhash (обязательно) Действительный ключ API.
  • stringdomain_name (обязательно) Допустимый домен для ключа API.
  • stringdomain_time_stamp (обязательно) Метка времени, используемая для хеширования ключа.
  • stringnonce (обязательно) Одноразовое использование одноразового номера также использовало хеш-ключ.
  • intnid (обязательно) ID узла.
  • поля массива (необязательно) Список полей для возврата

ItКажется, первый аргумент - это не просто ключ API, а хешированный ключ API, хешированный с другими полями.Как мне сгенерировать этот ключ API?Есть ли какой-то приказ или особый способ, которым друпал ожидает от меня хеширования ключа?

1 Ответ

1 голос
/ 21 сентября 2010

Требуемое значение хеш-функции - это следующие поля, хэшированные с помощью ключа API:

Метка времени - текущее время в формате метки времени Unix.

Домен - значение, введенное для домена выше.

Nonce - случайное значение.

Method - метод сервисов, который вы хотите вызвать, например, node.load

Пример кода Drupal:

    $domain = 'my domain';
    $timestamp = (string) time();
    $nonce = user_password();
    $hash = hash_hmac('sha256', $timestamp .';'.$domain .';'. $nonce .';'.'user.get', 'remote_api_key');
    $xmlrpc_result = xmlrpc('http://remoteserver.com/services/xmlrpc', 'user.get', $hash, $domain, $timestamp, $nonce, 0);
    if ($xmlrpc_result === FALSE) {
      print '<pre>' . print_r(xmlrpc_error(), TRUE) . '<pre>';
    }
    else {
      print '<pre>' . print_r($xmlrpc_result, TRUE) . '<pre>';

}

Этот пример отсюда http://drupal.org/node/394224

...