主頁 > 知識庫 > 利用VBS發(fā)送短信的實現(xiàn)代碼(通過飛信)

利用VBS發(fā)送短信的實現(xiàn)代碼(通過飛信)

熱門標簽:銀行業(yè)務(wù) 智能手機 網(wǎng)站文章發(fā)布 鐵路電話系統(tǒng) 美圖手機 檢查注冊表項 呼叫中心市場需求 服務(wù)器配置
光看標題就已經(jīng)覺得很牛逼了,聽說過可以用 PHP 發(fā)送短信(飛信),也使用過 Python 實現(xiàn)的 PyFetion 發(fā)送過短信(飛信)。我也看過對應(yīng)的 PHP 和 Python 源碼,實現(xiàn)起來還是比較復(fù)雜的,難道可以用 VBS 來實現(xiàn)?

看到代碼后更覺得牛逼,竟然是使用 10086.cn (移動官網(wǎng))上面的接口來實現(xiàn)的,飛信官方難道已經(jīng)公布飛信接口了?若不是,難道是代碼的作者自己發(fā)現(xiàn)的接口?那也太強大了!Google 了一下才發(fā)現(xiàn),哦,都不是,而是 WAP 飛信。像我這種還在用著 2005 年生產(chǎn)的只能打電話發(fā)短信的手機的生活在石器時代的人,當然不知道 WAP 飛信的存在。我現(xiàn)在連短信都很少發(fā),更不用說飛信了,我已經(jīng)不記得上一次登陸飛信是什么時候。
復(fù)制代碼 代碼如下:

m = "xxxyyyyzzzz" '手機號碼
pass = "12345678" '登陸密碼
msg = "Hello world" '飛信內(nèi)容
Const online = 1 '在線
Const busy = 2 '忙碌
Const away = 3 '離開
Const hidden = 4 '隱身
Dim http
Set http = CreateObject("Msxml2.XMLHTTP")
http.open "POST", "http://f.10086.cn/im/login/inputpasssubmit1.action", False
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send "m=" m "pass=" pass "loginstatus=" hidden '隱身登陸
wml = http.responseText
If InStr(wml, "密碼輸入錯誤") Then
WScript.Echo "對不起,密碼輸入錯誤,請重新輸入!"
WScript.Quit '登陸失敗,退出程序
End If
http.open "POST", "http://f.10086.cn/im/user/sendMsgToMyselfs.action", False
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send "msg=" msg '給自己的手機發(fā)短信
wml = http.responseText
If InStr(wml, "發(fā)送成功") Then WScript.Echo "發(fā)送成功"
http.open "GET", "http://f.10086.cn/im/index/logoutsubmit.action", False
http.send '注銷登陸

這里只是一個示例,至于怎么給別人發(fā)短信和飛信,自己琢磨吧。本來想寫一個像 PyFetion 那樣的 VbsFetion 的,但是想想沒什么意義,這樣還不如直接裝個飛信 PC 客戶端,于是就不折騰的,喜歡折騰的同學(xué)可以繼續(xù)。
上面的程序可以很輕松地改寫成其他語言,C、C++、C#、Java、JavaScript、Python、Perl、Ruby、Lua、PHP……用這個接口可以做很多有趣的事情,不是嗎?

VBS短信飛信發(fā)送類(VBSFetion)

本來想把昨天《用VBS發(fā)送短信(飛信)》里的 VBS 程序改寫成 PHP 的,不過為了不重復(fù)造輪子,事先 Google 了一下,發(fā)現(xiàn)已經(jīng)有人實現(xiàn)了,詳見PHP飛信發(fā)送類(PHPFetion)v1.2發(fā)布。好吧,既然已經(jīng)有人把它封裝成 PHP 類了,我就封裝一個 VBS 類吧。
復(fù)制代碼 代碼如下:

Class VBSFetion
Private [$mobile], [$password], http
'Author: Demon
'Website: http://demon.tw
'Date: 2011/6/11
'初始化事件
Private Sub Class_Initialize
Set http = CreateObject("Msxml2.XMLHTTP")
End Sub
'結(jié)束事件
Private Sub Class_Terminate
Call Logout()
Set http = Nothing
End Sub
'初始化函數(shù)
'mobile 手機號
'password 登陸密碼
Public Function Init(mobile, password)
[$mobile] = mobile
[$password] = password
str = Login()
If InStr(str, "密碼輸入錯誤") Then
Init = False
Else
Init = True
End If
End Function
'發(fā)送飛信
'mobile 對方手機號
'message 發(fā)送內(nèi)容
Public Function SendMsg(mobile, message)
If message = "" Then Exit Function
If mobile = [$mobile] Then
Send = ToMyself(message)
Else
uid = GetUid(mobile)
If uid > -1 Then Send = ToUid(uid, message, False)
End If
End Function
'發(fā)送短信
'mobile 對方手機號
' 'message 發(fā)送內(nèi)容
Public Function SendShortMsg(mobile, message)
If message = "" Then Exit Function
If mobile = [$mobile] Then
Send = ToMyself(message)
Else
uid = GetUid(mobile)
If uid > -1 Then Send = ToUid(uid, message, True)
End If
End Function
'登陸
Private Function Login()
url = "/im/login/inputpasssubmit1.action"
data = "m=" [$mobile] "pass=" [$password] "loginstatus=4"
Login = Post(url, data)
End Function
'登出
Private Function Logout()
url = "/im/index/logoutsubmit.action"
Logout = Post(url, "")
End Function
'給自己發(fā)飛信
Private Function ToMyself(message)
url = "/im/user/sendMsgToMyselfs.action"
message = "msg=" message
ToMyself = Post(url, message)
End Function
'給好友發(fā)送飛信(短信)
'uid 飛信ID
'message 飛信(短信)內(nèi)容
'isshort True為短信,F(xiàn)alse為飛信
Private Function ToUid(uid, message, isshort)
If isshort Then
url = "/im/chat/sendShortMsg.action?touserid=" uid
data = "msg=" message
Else
url = "/im/chat/sendMsg.action?touserid=" uid
data = "msg=" message
End If
ToUid = Post(url, data)
End Function
'獲取飛信ID
'mobile 手機號
Private Function GetUid(mobile)
url = "/im/index/searchOtherInfoList.action"
data = "searchText=" mobile
str = Post(url, data)
Set re = New RegExp
re.Pattern = "/toinputMsg\.action\?touserid=(\d+)"
If re.Test(str) Then
Set ms = re.Execute(str)
GetUid = ms.Item(0).Submatches(0)
Else
GetUid = -1
End If
End Function
'發(fā)送HTTP POST請求
Private Function Post(url, data)
url = "http://f.10086.cn" url
http.open "POST", url, False
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send data
Post = http.responseText
End Function
End Class
示例程序:
'初始對象
Set fetion = New VBSFetion
'登陸飛信
If fetion.Init("11122223333", "123456") Then
'發(fā)送飛信
fetion.SendMsg "44455556666", "Hello world"
'發(fā)送短信
fetion.SendShortMsg "77788889999", "Hello world"
End If

來源: http://demon.tw/my-work/vbsfetion.html
您可能感興趣的文章:
  • C#代碼實現(xiàn)短信驗證碼接口示例
  • C#怎么實現(xiàn)手機短信發(fā)送功能
  • java、php、C#、asp實現(xiàn)短信群發(fā)功能的方法
  • CDMA 貓用AT命令發(fā)中文短信(C#)
  • 基于JavaScript實現(xiàn)手機短信按鈕倒計時(超簡單)
  • php發(fā)送短信驗證碼完成注冊功能
  • Android發(fā)送短信功能代碼
  • Android Mms之:短信發(fā)送流程(圖文詳解)
  • android中可以通過兩種方式調(diào)用接口發(fā)送短信
  • WPF MVVM制作發(fā)送短信小按鈕

標簽:新疆 長治 上海 沈陽 樂山 河南 滄州 紅河

巨人網(wǎng)絡(luò)通訊聲明:本文標題《利用VBS發(fā)送短信的實現(xiàn)代碼(通過飛信)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266