网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 网学软件 > 常用软件 > 正文

利用VBS发送短信的实现代码(通过飞信)

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

  无意中看到百度 VBS 贴吧里一个标题为《无私的奉献出我的用飞信免费发短信接口》的帖子。

  光看标题就已经觉得很牛逼了,听说过可以用 PHP 发送短信(飞信),也使用过 Python 实现的 PyFetion 发送过短信(飞信)。我也看过对应的 PHP 和 Python 源码,实现起来还是比较复杂的,难道可以用 VBS 来实现?

  看到代码后更觉得牛逼,竟然是使用 10086.cn (移动官网)上面的接口来实现的,飞信官方难道已经公布飞信接口了?若不是,难道是代码的作者自己发现的接口?那也太强大了!Google 了一下才发现,哦,都不是,而是 WAP 飞信。像我这种还在用着 2005 年生产的只能打电话发短信的手机的生活在石器时代的人,当然不知道 WAP 飞信的存在。我现在连短信都很少发,更不用说飞信了,我已经不记得上一次登陆飞信是什么时候。

  复制代码 代码如下:

  m = "xxxyyyyzzzz" '手机号码

  pass = "12345678" '登陆密码

  msg = "Hello world" '飞信内容

  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 '给自己的手机发短信

  wml = http.responseText

  If InStr(wml, "发送成功") Then WScript.Echo "发送成功"

  http.open "GET", "http://f.10086.cn/im/index/logoutsubmit.action", False

  http.send '注销登陆

  这里只是一个示例,至于怎么给别人发短信和飞信,自己琢磨吧。本来想写一个像 PyFetion 那样的 VbsFetion 的,但是想想没什么意义,这样还不如直接装个飞信 PC 客户端,于是就不折腾的,喜欢折腾的同学可以继续。

  上面的程序可以很轻松地改写成其他语言,C、C++、C#、Java、JavaScript、Python、Perl、Ruby、Lua、PHP……用这个接口可以做很多有趣的事情,不是吗?

  VBS短信飞信发送类(VBSFetion)

  本来想把昨天《用VBS发送短信(飞信)》里的 VBS 程序改写成 PHP 的,不过为了不重复造轮子,事先 Google 了一下,发现已经有人实现了,详见PHP飞信发送类(PHPFetion)v1.2发布。好吧,既然已经有人把它封装成 PHP 类了,我就封装一个 VBS 类吧。

  复制代码 代码如下:

  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

  '结束事件

  Private Sub Class_Terminate

  Call Logout()

  Set http = Nothing

  End Sub

  '初始化函数

  '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

  '发送飞信

  'mobile 对方手机号

  'message 发送内容

  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

  '发送短信

  'mobile 对方手机号

  ' 'message 发送内容

  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

  '给自己发飞信

  Private Function ToMyself(message)

  url = "/im/user/sendMsgToMyselfs.action"

  message = "msg=" & message

  ToMyself = Post(url, message)

  End Function

  '给好友发送飞信(短信)

  'uid 飞信ID

  'message 飞信(短信)内容

  'isshort True为短信,False为飞信

  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

  '发送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

  '发送飞信

  fetion.SendMsg "44455556666", "Hello world"

  '发送短信

  fetion.SendShortMsg "77788889999", "Hello world"

  End If

  • 下一篇资讯: Dojo
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师