IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service] soap et webservice - problème de


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 33
    Points : 20
    Points
    20
    Par défaut [Web Service] soap et webservice - problème de
    Bonjour à tous,

    J'essaye de mettre en place l'envoi de sms automatisé (pour ma boite) avec un web-service, je suis en phase de test. bon j'annonce avant cette demande de mon chef, je ne savais pas ce qu'étais un SOAP ou un Web service.

    Donc après une journée à me documenté sur le sujet (je vais essayer d'être rapide ) je pense avoir compris le principe . C'est notre partenaire (AVM) qui nous a mis à disposition une library avec une doc (très simple d'utilisation....)
    je vous montre un exemple :
    Exemples :
    Création d’un message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MessageID = CreateMessage() 
    SetMessageHeader(MessageID, "priority", "normal") ‘ may be "low", "normal", or "high"
    SetMessageSubject(MessageID, "Envoi de FAX") 
    SetMessageSender(MessageID, "<FAX :0472670025>") 
    SetMessageTextBody(MessageID, "Ceci est un test ne pas en tenir compte") 
    AddMessageRecipient(MessageID, "<FAX :0472399269>") 
    MessageGuid = SubmitMessage(MessageID)
    Donc ça à l'aire très facile avec l'exemple:
    Donc je me créé un objet SOAP pour pouvoir communiquer avec le web-service et utiliser les fonctions adéquats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $url = 'url du webservice';
    $ws = new SoapClient($url, array('soap_version' => SOAP_1_2));
     
    		$id_object = $ws->__soapCall('CreateMessage',[] );
    		$id =  $id_object->CreateMessageResult;
    jusqu 'ici tout va bien, j'arrive à créer mon message, à récupérer l'id du message
    ensuite j'essaye d'ajouter un header ou un sujet ou un corps mais rien n'y fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sujet = $ws->__soapCall('SetMessageTextBody', [$id, 'test']);
    ...
    $content = $ws->__soapCall('SetMessageTextBody', array($id, 'essai numero 1'));
    le print_r($sujet) m'affiche ça : (idem $content)

    stdClass Object
    (
    [SetMessageSubjectResult] =>
    )


    Clairement je suis perdu, donc je viens ici pour essayé de trouver une solution, je pense avoir compris le concept.
    Donc si quelqu'un a une idée ou si j'ai rien compris, n'hésitez pas à me remettre sur le droit chemin.

    merci à tous

    boris

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sujet = $ws->__soapCall('SetMessageTextBody', [$id, 'test']);
    ...
    $content = $ws->__soapCall('SetMessageTextBody', array($id, 'essai numero 1'));
    Ça dépend énormément comment les paramètres sont nommés côté serveur. Il faut consulter le document wsdl pour savoir au final : ça ne se prête pas à deviner. Supposons que le message de donné de l'opération SetMessageTextBody expose les elements d'enfant qui se nomment localement 'msgid' et 'content': alors, ces lignes $sujet ou $content pourrait probablement se construire de cette façon:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $params=array('msgid'=>$id, 'content'=>'essai numero 1');
    $result=$ws->__soapCall('SetMessageTextBody', array($params));
    Voilà !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    merci pour la réponse, je suis allé lire la doc avant de postuler sur le forum: genre pour insérer un sujet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <s:element name="SetMessageSubject">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="MessageID" type="s:long"/>
    <s:element minOccurs="0" maxOccurs="1" name="Subject" type="s:string"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    et donc moi j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    		// essai 1
    		$params = array('MessageID' => $id, 'Subject' => 'mon première envoi');
    		$subject = $ws->__soapCall('SetMessageSubject', $params );
     
    		// essai 2
    		$subject = $ws->__soapCall('SetMessageSubject', array('MessageID' => $id, 'Subject' => 'mon première envoi'));
     
    		// essai 3
    		$subject = $ws->__soapCall('SetMessageSubject', array($id, 'mon première envoi'));
    mais rien ne fonctionne,
    j'arrive à créer l'identifiant du message, mais je bloque sur le reste, impossible de mettre un sujet , ou un corps de texte, ou un destinataire.

    les objets créés sont vides.

    en tout cas merci pour ta réponse

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Non, ça ne se fait pas comme ça.

    D'abord, le premier argument de call se référer le nom de l'opération, non pas le nom d'élément englobant des éléments enfants du message. Supposons que le nom originalement posé soit bon, SetMessageTextBody, sinon, consultez encore le document wsdl, bien entendu. Et puis, l'argument se fait en gros comme ceci.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $params=array('SetMessageSubjectù=>array('MessageID'=>$id, 'Subject'=>'essai numero 1'));
    $result=$ws->__soapCall('SetMessageTextBody', array($params));

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2015
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Quand j'essaye ce que tu m'as dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $result=$ws->__soapCall('SetMessageTextBody', array($params));
    // je pense que tu t'es trompé ce n'est pas  'SetMessageTextBody' que tu voulais mettre mais 'SetMessageSubject' donc j'ai fait :
     
    		$id_object = $ws->__soapCall('CreateMessage',array() ); // je créé le message
    		$id =  $id_object->CreateMessageResult;                      // je récupère L'identifiant
    		$params = array('SetMessageSubject'=> array('MessageID'=>$id, 'Subject'=>'essai' )); 
    		$result = $ws->__soapCall('SetMessageSubject', array($params));
    // ça me met une erreur :
    //Fatal error: SOAP-ERROR: Encoding: object has no 'MessageID' property in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\soap\index.php on line 10
    Donc si j'essaye de comprendre ce que tu m'as dit de faire : c'est que le $params c'est en faite un tableau où on assigne à 'SetMessageSubject' les valeurs qui l'a besoin (l'ID, et le Subject) mais sérieusement quand tu lis la doc ça n'a rien a voir
    bref passons on va dire que j'ai du mal à comprendre la doc .
    comme il m'a mit une erreur j'ai fait deux, trois essai (j avance à taton vu que je suis un peu perdu) donc dans l'appel du SOAPCALL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $result = $ws->__soapCall('SetMessageSubject', array($params));
    // je l'ai modifié par :
    $result = $ws->__soapCall('SetMessageSubject', $params);
    // car sachant que c'est un tableau je ne comprend pas pourquoi tu veux faire "array($params)"
    là je n'ai plus d'erreur mais l'affichage du $result me renvoi toujours false,
    c'est vraiment bizarre car pendant l'espace de deux minutes je crois qu'il m'a renvoyé true, j'étais super content mais après ça n'a plus fonctionné, de quoi me faire perdre la tête.

Discussions similaires

  1. [Web Service] SOAP et PHP, problème de mise en ligne
    Par 2rock dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/11/2011, 13h28
  2. [Web Service][SOAP] Service Web/XML, Problème d'entête HTTP SOAPAction
    Par hxt dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 29/10/2008, 13h38
  3. [Web Service][SOAP] WebService : problème d'authentification
    Par SuperGilou dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 11/06/2007, 15h16
  4. [Web Service][SOAP] Webservice Nusoap : page blanche
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/01/2007, 16h37
  5. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo