XL 2013 Clé API ?

jpmetge

XLDnaute Nouveau
Bonjour à tous,
J'ai trouvé un code VBA fort intéressant (Merci à l'auteur,voir PJ) permettant d'envoyer des SMS depuis un PC.
Or lorsque je l'exécute, j'obtiens l'erreur suivante :
1571541234987.png


en mode débogage celà donne :
1571541145509.png

Je pense que le problème vient de ma variable
Apikey = "VotreApiKey" qui n'est pas renseignée.
Où puis-je trouver la valeur à renseigner?
Merci pour votre aide.
 

Pièces jointes

  • send_sms.xlsm
    22.8 KB · Affichages: 9

Dranreb

XLDnaute Barbatruc
Bonjour
À tout hasard prenez ce code dans un module standard :
VB:
Option Explicit
Function UHexaTexte(ByVal Texte As String) As String
Rem. —— Renvoie un texte dont chaque caractères de code ASCII > 127 est remplacé
'     par "\u" suivi de ce code en hexadécimal de 4 de long.
   Dim TJn() As String, P As Long, C As String * 1, A As Integer, J As Long
   ReDim TJn(0 To 0)
   For P = 1 To Len(Texte)
      C = Mid$(Texte, P, 1): A = AscW(C)
      If A > 127 Then
         J = J + 1: ReDim Preserve TJn(0 To J)
         TJn(J) = Right$("000" & Hex$(A), 4)
      Else
         TJn(J) = TJn(J) & C
         End If: Next P
   UHexaTexte = Join$(TJn, "\u")
   End Function
Function TexteUHexa(ByVal UHexa As String) As String
Rem. —— Renvoie un texte dont chaque groupe "\u" suivi d'un code hexadécimal de 4 de long
'     est remplacé par le caractère ayant cette valeur pour code ASCII.
   Dim TJn() As String, J As Long
   TJn = Split(UHexa, "\u")
   For J = 1 To UBound(TJn): TJn(J) = ChrW$(Val("&H" & Left$(TJn(J), 4))) & Mid$(TJn(J), 5): Next J
   TexteUHexa = Join$(TJn, "")
   End Function
Et utilisez UHexaTexte à la place de URLEncode
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

=>jpmetge
Sans clé API, ça ne peut pas fonctionner
Integrer facilement un systeme d'envoi de SMS sur votre site Internet.
N'oubliez pas de recharger votre compte pour que l'API puisse fonctionner correctement.
 

patricktoulon

XLDnaute Barbatruc
bonjour
a tu ta propre keyapi? si tu n'en a pas ça risque pas de fonctionner
et ça m'étonnerait que cela soit gratuit ;)
d'autant plus que ça ne m’étonnerait pas non plus que l'on doit paramétrer le header de la requête vu l'objectif un minimum de sécurité quand même
 

Staple1600

XLDnaute Barbatruc
Bonjour patricktoulon

patricktoulon
C'est ce que je viens d'écrire dans le message#3... :rolleyes:
Mais on n'est pas trop de deux pour rappeler l'évidence ;)

Et pour avoir une clé, il faut ouvrir le porte-monnaie
(comme c'était déjà évoqué ici à l'époque)
 

Staple1600

XLDnaute Barbatruc
Re

=>patricktoulon
Je disais cela parce que tu ne m'as pas ajouté dans tes salutations, ni réagi à mes messages.
C'est jamais agréable d'avoir l'impression d'être invisible dans un fil.

Pour revenir à la question
Ce fil est plus prometteur

NB: Il faut juste une Raspberry
(et dans le fil cité, il y a de quoi faire côté VBA (merci tatiak))
 

Dranreb

XLDnaute Barbatruc
Vous ne savez pas ce que je viens de trouver de mon coté en Excel 2016 ?
Une fonction =URLENCODAGE(UnTexte) et surtout une correspondante WorksheetFunction.EncodeURL !
Je pense qu'il vaut mieux l'utiliser plutôt qu'une moulinette perso, tant la logique du truc est incompréhensible !
Ça aboutit à un codage plus long qu'avec les \uHexa, mais évidemment, mêmes si les espaces et peut être d'autre caractères doivent obligatoirement être rendus complètement incompréhensibles humainement … Quel merdier infâme, les langages d'internet !!
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
@Staple1600 , @Dranreb

j'ai repris ton idée Dranreb pour G translate

VB:
Function EncodeText2(chaine) As String    'sur la base Dranreb exceldownload
    Dim chaine2$, P&, c$, A&
    chaine2 = chaine
    For P = 1 To Len(chaine)
        c = Mid$(chaine, P, 1): A = AscW(c)
         If A > 127 Then
            chaine2 = Replace(chaine2, c, "\u" & Right$("000" & LCase$(Hex$(A)), 4))
       ElseIf A = 32 Then
            chaine2 = Replace(chaine2, c, "+")
        ElseIf A = 39 Then chaine2 = Replace(chaine2, c, "%" & Hex$(A))
        End If
    Next
    EncodeText2 = chaine2
End Function

resultat
Les+\u00e9l\u00e8ves+vont+\u00e0+l%27\u00e9cole.

je suis quand même étonné de la flexibilité de G translate qui a sa propre code de conversion

Capture.JPG
 

Statistiques des forums

Discussions
312 275
Messages
2 086 707
Membres
103 377
dernier inscrit
fredy45