vba excel sms for api
我希望每次我注册预约时,客户都会收到短信通知。 您将发现附加的vba代码用于发送sms。 脚本似乎正在执行。 另一方面,不要按预期发送sms。 请有人帮我找出遗漏了什么vba excel sms for api,vba,api,sms,excel-2007,Vba,Api,Sms,Excel 2007,我希望每次我注册预约时,客户都会收到短信通知。 您将发现附加的vba代码用于发送sms。 脚本似乎正在执行。 另一方面,不要按预期发送sms。 请有人帮我找出遗漏了什么 Sub send_SMS_RDV() Application.ScreenUpdating = False ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub send_SMS_RDV()
Application.ScreenUpdating = False
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''essai code xfactor'''''''''''''''''''''
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
Dim Recipient As String
Dim Message As String
Dim rowname As String
Dim rowprestardv As String
Dim rowtimerdv, rownumber, rowdaterdv, x As String
rowtimerdv = Worksheets("PLANNING").Range("I4").Value
rowprestardv = Worksheets("PLANNING").Range("H4").Value
rowname = Worksheets("PLANNING").Range("N4").Value
rownumber = Worksheets("PLANNING").Range("O4").Value
rowdaterdv = Worksheets("PLANNING").Range("Q4").Value
x = "237"
Recipient = "x&lastrownumber"
'
If rowdaterdv = Worksheets("PLANNING").Range("P32").Value Then
'
Message = "Dear " & rowname & ", your appointment has been register at : " & rowtimerdv & " Contact us for any changes. Merci"
Else
'
Message = "Dear " & rowname & ", your appointment has been register at : " & rowdaterdv & " Contact us for any changes. Merci"""
'
'
End If
'Set vars where phone numbers and msg are set in your sheet'
URL = api.smsfactor.com/send?text=" + Message + "&to=" + Recipient
objHTTP.Open "GET", URL, False
objHTTP.SetRequestHeader "Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzNDcwOSIsImlhdCI6MTYwMTk5NzM4N30.VbWdRwVwtIn5JtwNYjeJ8imnM_2bYskRIg2O6uZG5fA" 'Your Token'
objHTTP.SetRequestHeader "Accept", "application/json"
objHTTP.send ("")
End Sub
您的
URL
变量看起来有误。这需要一个字符串,但它不是一个正确的字符串。您缺少一个开始引号,并且您正在使用+
进行连接,我希望在这里看到的是&
尝试将其更改为:
URL = "api.smsfactor.com/send?text=" & Message & "&to=" & Recipient
谢谢你的贡献。 我解决了这个问题。 这里是我修改的,使它工作
Recipient = 237 & rownumber
在url之后
url = Replace(url, " ", "%20")
但是,我想使用另一个提供程序进行配置,但再次出现问题
Sub send_SMS_Fact()
Application.ScreenUpdating = False
' Declaring varibles for sending sms
Dim objWinHTTP As Object
Dim response, send As String
Dim sURL As String
Dim API As String
Dim SenderID As String
Dim Recipient, Message As String
' Declaring varibles for Application
Dim rowname As String
Dim rowtypevente As String
Dim rowamount, rownumber, x As String
Worksheets("FACTURATION").Activate
rowtypevente = Worksheets("FACTURATION").Range("H11").Text
rowamount = Worksheets("FACTURATION").Range("M11").Text
rowname = Worksheets("FACTURATION").Range("S11").Text
rownumber = Worksheets("FACTURATION").Range("T11").Text
API = "Um9kcnlnMTIzOnNhbG9tZQ=="
x = "237"
Recipient = x & rownumber
SenderID = "TechSoft-SMS"
' Preparation sms
If rowtypevente = "VENTE DIFF" Then
Message = "Dear " & rowname & ", The amount of your invoice which is: " & rowamount & " remains to be paid as soon as possible"
Else
rowtypevente = "VENTE"
Message = "Dear " & rowname & ", We thank you for your loyalty and hope to have satisfied you. Best regards and see you soon"
End If
' Checking for valid mobile number
If rownumber <> "700000000" Then
Else
Recipient = CStr(rownumber)
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''test protocole url'''''
Set objWinHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
sURL = app.techsoft-web-agency.com/sms/api"
sURL = Replace(sURL, " ", "%20")
Request = "&apikey=" & API & URLEncode(Apikey) & "&number=" & Recipient & URLEncode(Number)
Request = Request & "&message=" & Message & URLEncode(Message)
Request = Request & "&expediteur=" & SenderID & URLEncode(Expediteur) & "&msg_id=" & MsgID
objWinHTTP.Open "GET", URL & Request, False
objWinHTTP.SetTimeouts 30000, 30000, 30000, 30000
objWinHTTP.send
If objWinHTTP.StatusText = "OK" Then
strReturn = objWinHTTP.ResponseText
Debug.Print strReturn
End If
Set objWinHTTP = Nothing
send = strReturn
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function URLEncode(sRawURL) As String
On Error GoTo Catch
Dim iLoop As Integer
Dim sRtn As String
Dim sTmp As String
Const sValidChars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:/.?=_-$()~&"
If Len(sRawURL) > 0 Then
For iLoop = 1 To Len(sRawURL)
sTmp = Mid(sRawURL, iLoop, 1)
If InStr(1, sValidChars, sTmp, vbBinaryCompare) = 0 Then
sTmp = Hex(Asc(sTmp))
If sTmp = "20" Then
sTmp = "+"
ElseIf Len(sTmp) = 1 Then
sTmp = "%0" & sTmp
Else
sTmp = "%" & sTmp
End If
End If
sRtn = sRtn & sTmp
Next iLoop
URLEncode = sRtn
End If
Finally:
Exit Function
Catch:
URLEncode = ""
Resume Finally
End Function
Sub send\u SMS\u Fact()
Application.ScreenUpdating=False
'声明用于发送sms的变量
Dim objWinHTTP作为对象
Dim响应,以字符串形式发送
作为字符串的Dim sURL
Dim API作为字符串
将SenderID设置为字符串
Dim收件人,消息为字符串
'声明变量以供应用
将行名称设置为字符串
Dim RowTypeVent作为字符串
Dim rowamount、rownumber、x作为字符串
工作表(“制作”)。激活
rowtypevente=工作表(“制作”).范围(“H11”).文本
行数量=工作表(“制作”).范围(“M11”).文本
rowname=工作表(“制作”).范围(“S11”).文本
行数=工作表(“制作”).范围(“T11”).文本
API=“Um9kcnlnMTIzOnNhbG9tZQ=”
x=“237”
收件人=x行编号(&R)
SenderID=“TechSoft短信”
“准备短信
如果rowtypevent=“VENTE DIFF”,则
Message=“亲爱的”&rowname&”,您的发票金额为:“&rowmount&”,有待尽快支付
其他的
rowtypevent=“VENTE”
Message=“亲爱的”&rowname&”,我们感谢您的忠诚,希望能让您满意。致以最良好的问候,不久再见
如果结束
'正在检查有效的手机号码
如果行号为“70000000”,则
其他的
收件人=CStr(行编号)
如果结束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
测试协议url
设置objWinHTTP=CreateObject(“WinHttp.WinHttpRequest.5.1”)
sURL=app.techsoft web agency.com/sms/api”
sURL=替换(sURL,“,“%20”)
Request=“&apikey=“&API&URLEncode(apikey)&”&number=“&Recipient&URLEncode(number)
请求=请求&“&message=“&message&URLEncode(消息)
Request=Request&“&expeditor=“&SenderID&URLEncode(expeditor)&”&msg_id=“&MsgID
objWinHTTP.Open“GET”,URL和请求,False
objWinHTTP.SetTimeouts 300003000030000300003000030000
objWinHTTP.send
如果objWinHTTP.StatusText=“确定”,则
strReturn=objWinHTTP.ResponseText
调试。打印strReturn
如果结束
设置objWinHTTP=Nothing
发送=返回
端接头
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
公共函数URLEncode(sRawURL)作为字符串
关于错误转到捕获
Dim iLop作为整数
Dim sRtn As字符串
Dim sTmp作为字符串
Const sValidChars=“1234567890abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz:/。?=-$()~&”
如果Len(sRawURL)>0,则
对于iLoop=1到Len(sRawURL)
sTmp=Mid(sRawURL,iLoop,1)
如果InStr(1,sValidChars,sTmp,vbBinaryCompare)=0,则
sTmp=十六进制(Asc(sTmp))
如果sTmp=“20”,则
sTmp=“+”
ElseIf Len(sTmp)=1,则
sTmp=“%0”&sTmp
其他的
sTmp=“%”和sTmp
如果结束
如果结束
sRtn=sRtn和sTmp
下一个iLoop
URLEncode=sRtn
如果结束
最后:
退出功能
捕获:
URLEncode=“”
最后恢复
端函数
这就是我根据在他们网站上找到的文档配置新url的方式。
但是在“objWinHTTP.Open“GET”,URL&Request,False”行中,我被告知URL使用了无法识别的协议Use
Option Explicit
,以确保正确声明了所有变量。您是否刚刚在公共互联网上发布了您的私有API令牌?我想现在任何人都可以使用您的帐户发送短信了。