OVH Community, votre nouvel espace communautaire.

telephonySmsHistory problème de telephonySmsHistoryStruct vide dans la réponse


clique_ici
30/12/2011, 18h49
Bonjour,

J'ai aussi le même probleme.

J'ai bien vérifié les différentes méthodes et voici le résultat xml recu avec l'historique :










message TEST
20111230151643
sent

0
+33662222222
id:727450293 sub:001 dlvrd:001 submit date:1112301416 done date:1112301416 statELIVRD err:004 text:
+33662222222
4787882



Alors on va vendre cette licence SMS combien ?20111230151741sent0+33662222222id:727450529 sub:001 dlvrd:001 submit date:1112301417 done date:1112301417 statELIVRD err:004 text:+336622222224787890
WD11 FULL INTEGRATION !!20111230161241sent0+33662222222id:923497115 sub:001 dlvrd:001 submit date:1112301512 done date:1112301512 statELIVRD err:004 text:+336622222224788729stp viens voir 2 secondes !!!20111230170822failed0+330NACK/1032/Vendor-specific error+336622222224789049stp viens voir 2 secondes !!!20111230171020sent0+33662222222id:923525511 sub:001 dlvrd:001 submit date:1112301610 done date:1112301610 statELIVRD err:004 text:+336622222224789053Bonjour,<10>Teiudzefzef20111230171336sent0+33662222222id:923526393 sub:001 dlvrd:001 submit date:1112301613 done date:1112301613 statELIVRD err:004 text:+336622222224789060Bonjour,<10>Teiudzefzef20111230171639waitingLong0+33606060606id:727499399 sub:001 dlvrd:001 submit date:1112301616 done date:1112301616 stat:ACKED err:003 text:+336622222224789104Bonjour,<10>Teiudzefzef20111230172248waitingLong0+33606060606id:923529916 sub:001 dlvrd:001 submit date:1112301622 done date:1112301622 stat:ACKED err:003 text:+336622222224789224

Donc la réception est correcte avec l'ensemble de l'historique mais apres la procédure suivante du web service elle ne fonctionne pas elle n'enregistre pas les données dans la structure :

PROCEDURE PRIVÉE _STMyArrayOfTelephonySmsHistoryStructType_DepuisXM L(param est un STMyArrayOfTelephonySmsHistoryStructType, doc est une chaîne)
nPosInit est un entier=XMLSauvePosition(doc)
sPosition est une chaîne = XMLPosition(doc)
nPosBody est un entier=Position(sPosition, "Body")
SI nPosBody=0 ALORS
XMLRetourPosition(doc,nPosInit)
RETOUR
FIN
sID est une chaîne
nPosItem_item est un entier
XMLFils(doc)
XMLRecherche(doc,"item",XMLNiveauCourant)
XMLPremier(doc)
TANTQUE XMLTrouve(doc)
nPosItem_item=XMLSauvePosition(doc)

sIDItem_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTTYPE est une chaîne = XMLDonnée(doc, "href")
SI sIDItem_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTTYPE<>"" ALORS
sIDItem_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTTYPE=sID Item_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTTYPE[[2 A ]]
XMLExécuteXPath(doc, "//*/*/*[@id='"+sIDItem_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTT YPE+"']")
FIN
nItem_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTTYPE est un entier=TableauAjoute(param:m_MyArrayOfTelephonySms HistoryStructType)
_STtelephonySmsHistoryStruct_DepuisXML(param:m_MyA rrayOfTelephonySmsHistoryStructType[nItem_MYARRAYOFTELEPHONYSMSHISTORYSTRUCTTYPE], doc)


XMLRetourPosition(doc,nPosItem_item,XMLRPFiltre)
XMLSuivant(doc)
FIN

XMLRetourPosition(doc, nPosInit)
J'espère avoir été clair sinon n'hésitez pas a me demander plus de précisions.

La procédure recherche une chaine href qui n'existe pas dans le fichier XML.

En tout cas j'espère que vous avez la solution

flo@ovh.net
19/12/2011, 22h20
Citation Envoyé par EctoArckanox
J'utilises le service suivant : http://www.ovh.com/soapi/soapi-re-1.27.wsdl
Donc non

Je te conseille d'utiliser la version Document/Litéral Wrapped de la WSDL : http://www.ovh.com/soapi/soapi-dlw-1.XX.wsdl ou http://www.ovh.com/soapi/soapi-dlw-latest.wsdl
et de suivre le guide : http://guide.ovh.net/SOAPI#link5 pour la mise en place du projet.

flo@ovh.net
19/12/2011, 22h08
Bonjour,

je viens de faire le test sous Visual Studio Express 2010 :

Code PHP:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
Test
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
managerService soapi = new managerService();

            
//login
            
string session soapi.login("xxxxx-ovh""xxxxxxxx""fr"false);

            
//telephonySmsHistory
            
telephonySmsHistoryStruct[] result soapi.telephonySmsHistory(session"sms-xxxxx-1"nullnullnullnullnullnullnull);

            foreach (
telephonySmsHistoryStruct sms in result)
            {
                
Console.WriteLine(sms.smsId " " sms.numberFrom " " sms.status " " sms.date " " sms.message " " sms.text);
            }

            
//logout
            
soapi.logout(session);

            
Console.ReadLine();
        }
    }

J'ai bien la liste des SMS en retour.

Idem avec les paramètres de pagination et filtre par tag :

Code PHP:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
Test
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
managerService soapi = new managerService();

            
//login
            
string session soapi.login("xxxxx-ovh""xxxxxxxx""fr"false);

            
//telephonySmsHistory
            
telephonySmsHistoryStruct[] result soapi.telephonySmsHistory(session"sms-xxxxx-1"0null0100nullnull"plop");

            foreach (
telephonySmsHistoryStruct sms in result)
            {
                
Console.WriteLine(sms.smsId " " sms.numberFrom " " sms.status " " sms.date " " sms.message " " sms.text " " sms.tag);
            }

            
//logout
            
soapi.logout(session);

            
Console.ReadLine();
        }
    }

Est-ce que tu suis bien la mise en place conseillée sur le "How-To" du guide SOAPI ?

http://guide.ovh.net/SOAPI#link5

EctoArckanox
24/11/2011, 14h34
Bonjour,

je tente d'utiliser la méthode telephonySmsHistory pour récupérer les statuts des sms envoyés.
J'utilises le service suivant : http://www.ovh.com/soapi/soapi-re-1.27.wsdl
Je code en C# sous visual studio 2010.

L'envoi des SMS fonctionne très bien, je peux les consulter dans l'interface d'administraton.

mon code d'appel (après login) est :

Code:
 telephonySmsHistoryStruct[] smsHistoy = sopaiManagerservice.telephonySmsHistory(soapiSession, OVHSoapiSMSAccount, 0, null, 0, 100,null, null, null);
Je recois bien un tableau de telephonySmsHistoryStruct mais ils sont tous vides ! (mais le nombre d'éléments correspond bien au nombre de messages qui ont été envoyés et si je précise un smsid, je n'en recoit qu'un)

Je ne suis manifestement pas le seul car les utilisateurs suivants ont le même soucis :

http://forum.ovh.com/showthread.php?t=67516
http://forum.ovh.com/showpost.php?p=432316&postcount=6

Je souhaiterai également utiliser le filtre par tag via un code similaire :

Code:
telephonySmsHistoryStruct[] smsHistoy = sopaiManagerservice.telephonySmsHistory(soapiSession, OVHSoapiSMSAccount, 0, null, 0, 100,null, null, ddlSMSLogs.SelectedValue);
mais dans ce cas je recois une erreur :

Cannot assign object of type System.Object[] to an object of type DotNetNuke.Modules.ModuleSMS.OVHSoapi.telephonySms HistoryStruct[].

Quelle est la solution ? Le problème vient-il de ma méthode d'appel ou du webservice ?

Merci d'avance.