SMS Hyperlink wordt 2 x verzonden

Status
Niet open voor verdere reacties.

JohanVe

Gebruiker
Lid geworden
17 jan 2013
Berichten
19
Beste allemaal,

Ik heb een knop gemaakt waarmee ik een SMS kan verzenden. Dit gaat via een externe dienst met onderstaand code.
Code:
Application.FollowHyperlink _
     "https://api.messagebird.com/api/sms?username=[gebrnaam]&password=[password]&destination=[06nummer]&body=[tekst]&sender=[afzender]&timestamp=[tijd]"
wanneer ik op de knop klik wordt de sms 2 x verzonden ipv 1 keer maar wanneer ik de link kopieer en plak in de adresbalk van de webbrowser dan wordt hij gewoon 1 keer verzonden.

Wellicht kent iemand dit probleem en weet ook de oplossing.
 
normaal gesproken niet maar om alles uit te sluiten heb ik even een knop gemaakt met alleen deze code. Natuurlijk wel ingevuld met echte gegevens.
 
En dan nog steeds 2 berichtjes? Wat gebeurt er als je de stapmodus gebruikt?
 
dan inderdaad nog 2 berichtjes. euh.... Stapmodus? wat is dat?
 
De code uitvoeren met <F8>. Wel eerst de eerste regel met <F9> markeren, anders stopt de macro niet.
 
regel met <f9> gemarkeerd. knop geklikt. hij stopt dan ,regel is geel. 1 x <f8> dan gaat hij naar End Sub. En er worden 2 berichtjes verstuurd. hmmm... vreemd toch?!
 
Inderdaad, vreemd... Heb niet de mogelijkheid om het te reproduceren, dus kan er verder weinig van zeggen. Je kunt hooguit Internet Explorer sessie opzetten en daar je request in zetten, of zoiets:
Code:
    With CreateObject("MSXML.DOMDOCUMENT")
Geen idee of je de laatste techniek ook kunt gebruiken voor SMS; ik heb 'm gebruikt om postcode gegevens uit een webpagina te halen.
 
ik ga er naar kijken.
ben onderstaande code zojuist ook nog tegengekomen. Deze werkt wel alleen blijft de focus op de internetpagina en gaat niet terug naar access. En is webbrowser afhankelijk. niet de mooiste oplossing.

Code:
Dim strUrl As String
   
strUrl = " https://api.messagebird.com/api/sms?username=88888888&password=*******&destination=06*******&body=test&sender=afzender&timestamp=00000000"

Call Shell("C:\Program Files\Mozilla Firefox\firefox.exe " & strUrl)
 
Er zijn meer wegen die je kunt proberen; overigens kun je denk ik de focus nog wel weer terug krijgen na zo'n Shell aanroep, maar ik zou deze variant zelf ook niet gebruiken. Ik ben, voor andere zaken, hier mee aan het stoeien. Misschien heb je er wat aan.

Code:
Dim formData As String
Dim HTTPreq As WinHttpRequest, redirectURL As String
    formData = "request_token=abc&name=xyz&email=" & URLEncode("xy@xy.com")
    With HTTPreq
        .Open "POST", URL, False
        .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .SetRequestHeader "other", "headers"
        .Send (formData)
        Debug.Print .ResponseText
    End With
 
Nog een:
Code:
    With CreateObject("InternetExplorer.Application")
        .Visible = False
        .Navigate ""https://api.messagebird.com/api/sms?username=88888888&password=*******&destination=06*******&body=test&sender=afzender&timestamp=00000000"
        Do While .Busy Or .ReadyState <> 4
            DoEvents
        Loop
        .Quit
    End With
 
De eerste code gaat even boven mijn pet, die tweede code werkt perfect. top! :thumb:

Bedankt weer.
 
Naar VBA aangepast volgens de documentatie, zie https://developers.messagebird.com/docs/introduction
Met deze code heb je helemaal geen webbrowser meer nodig en gebeurt alles op de achtergrond.
Je moet wel even met je inloggegevens een gratis access_key aanmaken, zie https://developers.messagebird.com/docs/authentication, "Get an access key in the API menu in your account."
Code:
[SIZE=1]Option Explicit

Public Sub SMSMessageBird()
    Dim strAccessKey As String
    Dim strOriginator As String
    Dim strBody As String
    Dim strRecipients As String
    Dim strURL As String
    strAccessKey = "live_1234567890123456789012345"
    strOriginator = "tester 2"
    strBody = "this is a test 2"
    strRecipients = "31612345678"
    strURL = "https://rest.messagebird.com/messages?_method=POST&access_key=" & strAccessKey & "&originator=" & Replace(strOriginator, " ", "+") & "&body=" & Replace(strBody, " ", "+") & "&recipients=" & strRecipients 'am_2016
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", strURL, False
        .Send
        MsgBox .ResponseText
    End With
End Sub[/SIZE]
 
Laatst bewerkt:
Deze code is helemaal super! werkt ook zeer snel.:thumb::thumb:

Beiden zeer bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan