2010-07-10 3 views
0

Je suis en train de tester le module de services Drupal et cela fonctionne correctement. Je suis maintenant passé d'aucune clé à une authentification de clé, et le système a généré cette clé pour moi afw92iej83foijofn23.Utilisation d'une clé avec le module Drupal Services

Lorsque je visite node.get à http://localhost/drupal/admin/build/services/browse/node.get je vois qu'il a besoin maintenant 4 paramètres supplémentaires requis stringhash, stringdomain_name, stringdomain_time_stamp, stringnonce.

Arguments (6)

  • stringhash (obligatoire) Une clé API valide.
  • nomdomaine_domaine (obligatoire) Domaine valide pour la clé API.
  • stringdomain_time_stamp (obligatoire) Horodatage utilisé pour la clé de hachage.
  • stringnonce (obligatoire) Une seule fois utilisation nonce également utilisé la clé de hachage.
  • intnid (obligatoire) ID de noeud.
  • arrayfields (en option) Une liste des champs pour retourner

Il semble que le premier argument est non seulement la clé API, mais une clé API hachée, avec les autres hashed champs. Comment puis-je générer cette clé API? Existe-t-il un ordre ou un moyen spécifique que Drupal attend de moi pour hacher la clé?

Répondre

1

La valeur de hachage est requise les champs suivants hachurées avec l'API Key:

Horodatage - Heure format d'horodatage unix. Domaine - Valeur que vous avez saisie pour le domaine ci-dessus.

Nonce - Une valeur aléatoire.

Méthode - La méthode de service que vous souhaitez appeler, par ex. node.load

Une partie du code Drupal comme exemple:

$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>'; 

} 

Cet exemple est d'ici http://drupal.org/node/394224