Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2010, 14h55   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 1
Points : 1
Par défaut Web Service Amazon SOAP

Bonjour,

j'ai un petit problème de connexion au web service d'amazon afin de pouvoir faire une rechercher de livre.

J'ai une erreur, MISSING SIGNATURE, quelqu'un saurait-il comme créer une signature ou à quoi cela correspond?

Merci
sharkichoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 15h04   #2
Membre éclairé
 
Inscription : octobre 2004
Messages : 235
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 235
Points : 360
Points : 360
T'as posé la question à Google avant de venir chercher de l'aide ???
On trouve plein d'infos en moins de 2 minutes :
http://richardcummings.info/the-requ...ervices-error/
Joker-eph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 18h10   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 1
Points : 1
Oui j'ai demandé à Google et ça fait presque une semaine que je cherche, et rien car ton lien bah la solution ce n'est pas en utilisant SOAP
sharkichoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 18h15   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 464
Points : 8 464
c'est quel service plus précisément ? a quelle fonction y'a l'erreur ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 08h23   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 1
Points : 1
Voici mon code
Code :
1
2
3
4
5
6
7
8
9
10
 
$Time = gmstrftime("%Y-%m-%dT%H:%M:%S.000Z");
$Signature = base64_encode(hash_hmac("sha256", "ItemSearch".$Time, $secret, true));
$client = new SoapClient('http://ecs.amazonaws.com/AWSECommerceService/2010-10-01/FR/AWSECommerceService.wsdl');
$params = array('AWSAccessKeyId' => 'AKIAITNKX5BOPDWLHQFQ',
		'Timestamp' => $Time,
		'Signature' => $Signature,
		'Request' => array('SearchIndex' => 'Books',
				   'Keywords' => 'HARRY'));
$res = $client->ItemSearch($params);
Je créé bien ma signature comme dit par amazon, la concaténation de la commande et de timestamp et ma clé secret.
Citation:
The HMAC-SHA256 signature calculated from the concatenation of the Action and Timestamp parameters, using your AWS Secret Access Key as the key (for information about authentication with HMAC signatures, see HMAC-SHA Signatures for REST Requests). For example, for a request to create a queue, the value of the Signature element would be the HMAC-SHA256 digest of a string like this: ItemLookup2010-10-16T00:00:00Z
Mais j'ai toujours le message,

Citation:
Fatal error: Uncaught SoapFault exception: [aws:Client.MissingParameter] The request must contain the parameter Signature. in /home/amazon.php:40
Stack trace:
#0 [internal function]: SoapClient->__call('ItemSearch', Array)
#1 /home/amazon.php(40): SoapClient->ItemSearch(Array)
#2 {main}
thrown in /home/amazon.php on line 40
sharkichoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 05h05   #6
Modérateur
 
Avatar de Overcrash
 
Homme Ludovic
Etudiant en Architecture Logicielle et responsable CRM (Salesforce)
Inscription : mai 2008
Messages : 733
Détails du profil
Informations personnelles :
Nom : Homme Ludovic
Âge : 23
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Etudiant en Architecture Logicielle et responsable CRM (Salesforce)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 733
Points : 1 102
Points : 1 102
Envoyer un message via Skype™ à Overcrash
Bonjour,

Je viens de tomber sur ton sujet car j'ai le même souci que toi
En revanche je pense que tu t'es planté sur un point :

Citation:
The HMAC-SHA256 signature calculated from the concatenation of the Action and Timestamp parameters,
Code :
$Time = gmstrftime("%Y-%m-%dT%H:%M:%S.000Z");
Ceci récupère pas le timestamp ? il se récupère plutôt comme ceci :
Si je trouve pour ton souci je te tiens au courant

edit : autant pour moi pour le format du timestamp mais tu avais bien raison :

Citation:
string like this: ItemLookup2010-10-16T00:00:00Z
Par contre tu rajoutes les centièmes de seconde ? pourquoi ?
__________________
---
Overcrash

Je suis souvent disponible ici : Chat dvp
Je ne lis pas les codes qui ne sont pas indentés.
Merci de les messages utiles en cliquant en bas à droite du message
Overcrash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 18h17   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 1
Points : 1
La creation de la signature avec timestamp comme dit par par amazon.
sharkichoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 20h22   #8
Modérateur
 
Avatar de Overcrash
 
Homme Ludovic
Etudiant en Architecture Logicielle et responsable CRM (Salesforce)
Inscription : mai 2008
Messages : 733
Détails du profil
Informations personnelles :
Nom : Homme Ludovic
Âge : 23
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Etudiant en Architecture Logicielle et responsable CRM (Salesforce)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 733
Points : 1 102
Points : 1 102
Envoyer un message via Skype™ à Overcrash
le timestamp d'amazon : 2010-10-16T00:00:00Z
Ton timestamp : %Y-%m-%dT%H:%M:%S.000Z

Il y a une différence.
__________________
---
Overcrash

Je suis souvent disponible ici : Chat dvp
Je ne lis pas les codes qui ne sont pas indentés.
Merci de les messages utiles en cliquant en bas à droite du message
Overcrash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 10h23   #9
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations forums :
Inscription : avril 2011
Messages : 1
Points : 1
Points : 1
Par défaut Ma solution

Bonjour à tous, je viens de trouver une solution à ce problème qui marche pour moi. L'astuce c'est de placer les champs
Code :
AWSAccessKeyId,Timestamp,Signature
dans le header du paquet SOAP...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$Time = gmstrftime("%Y-%m-%dT%H:%M:%S.000Z");
$Signature = base64_encode(hash_hmac("sha256", "ItemSearch".$Time, 'Mon SECRETID', true));
$client = new SoapClient('http://ecs.amazonaws.com/AWSECommerceService/2010-11-01/FR/AWSECommerceService.wsdl', 
            array('trace' => 1));
 
// Construction du header
$header_arr = array();
$header_arr[] = new SoapHeader( 'http://security.amazonaws.com/doc/2007-01-01/', 'AWSAccessKeyId', "MA CLE AWS" );
$header_arr[] = new SoapHeader( 'http://security.amazonaws.com/doc/2007-01-01/', 'Timestamp', $Time );
$header_arr[] = new SoapHeader( 'http://security.amazonaws.com/doc/2007-01-01/', 'Signature', $Signature );
$client->__setSoapHeaders($header_arr);
 
 
$params = array(
        'AWSAccessKeyId' => 'MA CLE AWS',
		'Request' => array(
                        'SearchIndex' => 'Books',
				        'Keywords' => 'Harry%20Potter'
                    )
         );
 
$res = $client->ItemSearch($params);
?>
pippo2600 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web