月光博客 » 编程开发 » 同时更新Twitter、饭否、嘀咕和做啥

同时更新Twitter、饭否、嘀咕和做啥

  很多微博客(如嘀咕和做啥)和第三方工具(如Hellotxt、Ping.fm)都同时提供了同步到其他微博客的服务,可以同步信息到一些主要的微博客服务,如Twitter、饭否等,但是这些工具都有一个很重要的问题,就是存在密码被盗或泄漏的风险。

  目前大多数微博客是通过用户名和密码做为参数进行认证登录,Twitter可使用OAuth协议进行认证,而这些用户名和密码存放在这些同步工具网站上,万一保存不当,就有可能会被黑客获取,带来用户帐号被盗的风险,因此,比较保险的办法是通过自己写的程序来实现微博客的自动同步功能,这样被黑客破解的可能性就小了很多。

  我这里写了一个同时更新Twitter、饭否、嘀咕和做啥等微博客的小程序,可以在自己的服务器上实现微博客同时更新功能,为了代码简单,使用时需要这几个服务使用相同的用户名和相同的密码,选中需要同步的微博客,也可勾选掉不想发布的服务,然后输入用户名和密码,发布信息后就会自动同时更新这几个微博客。

  全部源程序代码如下:

<%@ CODEPAGE=65001 %>

<%
If Request("submit")<>"" Then

 Dim xmlhttp
 Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")

 Response.Cookies("save_username")=Request("username")
 Response.Cookies("save_username").Expires=Date+365
 Response.Cookies("save_password")=Request("password")
 Response.Cookies("save_password").Expires=Date+365
 username = Request("username")
 password = Request("password")

 post_status = "status=" + server.URLencode(Request("updateStatus"))

 If Request("twitter") = 1 Then
  xmlhttp.Open "POST", "http://" & username & ":" & password & "@twitter.com/statuses/update.xml", False
  xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
  xmlhttp.setRequestHeader "Content-Length", Len(post_status)
  xmlhttp.Send (post_status)
  Response.Write "twitter OK." 'xmlhttp.responseText
 End If
 
 If Request("fanfou") = 1 Then
  xmlhttp.Open "POST", "http://" & username & ":" & password & "@api.fanfou.com/statuses/update.xml", False
  xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
  xmlhttp.setRequestHeader "Content-Length", Len(post_status)
  xmlhttp.Send (post_status)
  Response.Write "fanfou OK." 'xmlhttp.responseText
 End If

 If Request("digu") = 1 Then
  post_status = "content=" + server.URLencode(Request("updateStatus"))
  xmlhttp.Open "POST", "http://" & username & ":" & password & "@api.digu.com/statuses/update.xml", False
  xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
  xmlhttp.setRequestHeader "Content-Length", Len(post_status)
  xmlhttp.Send (post_status)
  Response.Write "digu OK." 'xmlhttp.responseText
 End If

 If Request("zuosa") = 1 Then
  xmlhttp.Open "POST", "http://" & username & ":" & password & "@api.zuosa.com/statuses/update.xml", False
  xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
  xmlhttp.setRequestHeader "Content-Length", Len(post_status)
  xmlhttp.Send (post_status)
  Response.Write "zuosa OK." 'xmlhttp.responseText
 End If

 Set xmlhttp = Nothing
 response.end
Else

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <meta http-equiv="Content-Language" content="zh-CN" />
 <title>更新状态</title>
<script language="javascript"> 
function countChar(textareaName,spanName)

 document.getElementById(spanName).innerHTML = 140 - document.getElementById(textareaName).value.length;

</script>
</head>
<body>
 <form method="post" action="<%= Request.ServerVariables("URL")%>">
  <p>
   <textarea tabindex="1" id="updateStatus"  name="updateStatus" rows="6" cols="40" onkeydown='countChar("updateStatus","counter");' onkeyup='countChar("updateStatus","counter");'></textarea>
  </p>
  <p>
   <label><input tabindex="2" type="submit" id="submit" name="submit" value="  发     布  " /></label>    可以输入 <span id="counter">140</span> 字
  </p>
  <p>
   <label>用户名:</label>
   <input tabindex="3" type="text" name="username" id="username" value="<%= Request.Cookies("save_username")%>" />
  </p>
  <p>
   <label>密 码:</label>
   <input tabindex="4" type="password" name="password" id="password" value="<%= Request.Cookies("save_password")%>" />
  </p>
  <p>
   <label><input type="checkbox" id="twitter" name="twitter" value="1" checked="checked"> Twitter </label><label><input type="checkbox" id="fanfou" name="fanfou" value="1" checked="checked"> 饭否 </label><label><input type="checkbox" id="digu" name="digu" value="1" checked="checked"> 嘀咕 </label><label><input type="checkbox" id="zuosa" name="zuosa" value="1" checked="checked"> 做啥</label>
  </p>
 </form>
</body>
</html>

<%
End if
%>
 

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    wenshi0295   说道:
    写的不错的。。支持下
    支持(9反对(2回复
  1. 2
    猪头   说道:
    我正在做php的程序,功能和这个类似,不过我希望能显示各个微博的status
    支持(11反对(6回复
  1. 3
    west   说道:
    1.不同的网站用户名和密码不同是不是不能用?
    2.已经在twitter里发了的可以转到jiwai去吗?
    支持(10反对(5回复
  1. 4
    kate   说道:
    沙发
    第一次
    wordpress教程网 于 2009-6-16 22:46:35 回复
    不用这么复杂吧。
    wordpress教程网 于 2009-6-16 22:47:28 回复
    不用这么复杂吧。...
    零八后 于 2009-6-18 23:27:54 回复
    听说,这样回复,就可以排在前面。
    XDash 于 2009-6-22 17:49:44 回复
    正需要开发API的资料呢。谢谢。
    支持(8反对(4回复
  1. 5
    我想想   说道:
    一看这代码就熟悉啊,可爱可亲的asp
    好像现在过时啊
    支持(10反对(6回复
  1. 6
    dotion   说道:
    有没有PHP版本的???
    williamlong 于 2009-6-16 9:11:38 回复
    可以参照这个修改为PHP的,应该很简单的。
    支持(9反对(5回复
  1. 7
    大帝007   说道:
    加一个嘀咕和饭否的机器人,应该问题都能解决吧,呵呵
    支持(7反对(4回复
  1. 8
    grnnet   说道:
    去试试看啊,太好了呀
    支持(8反对(6回复
  1. 9
    apturic   说道:
    不会用…… 完全不懂代码的人……
    支持(9反对(7回复
  1. 10
    我想想   说道:
    真的不错啊,太有才了。
    支持(7反对(6回复
  1. 11
    园子   说道:
    同意13楼的说法

    只是一个人申请那么多我想想都有感觉累

    嘿嘿~
    支持(6反对(5回复
  1. 12
    明月本无心   说道:
    可以同时更新的网站少了点,可以多些吗?特别是给“墙”了的网站。
    支持(6反对(5回复
  1. 13
    lu   说道:
    能同时搜索吗?弟兄们给推荐个搜索 微博客的
    支持(7反对(6回复
  1. 14
    啊哈热哈哈   说道:
    只能说很欣赏。。。
    支持(7反对(6回复
  1. 15
    yihui   说道:
    牛人,只能说很欣赏。。。
    支持(8反对(7回复
  1. 16
    范特西大杂烩   说道:
    饭否和叽歪最近被和谐了,不晓得是什么原因``
    支持(9反对(8回复
  1. 17
    河蟹   说道:
    全部河蟹,没商量
    支持(7反对(6回复
  1. 18
    风雪残士   说道:
    这个好 方便 前排坐 o(∩_∩)o...
    支持(8反对(8回复
  1. 19
    受不了   说道:
    他们的API居然都是一个格式,受不了
    球球快跑 于 2009-6-16 1:18:55 回复
    为了规范。
    支持(6反对(6回复
  1. 20
    Rexavin   说道:
    强大 啊啊啊啊
    支持(7反对(7回复
  1. 21
    大漠   说道:
    越来越欣赏你了
    支持(7反对(7回复
  1. 22
    布股鸟   说道:
    很好很强大,不过自己还没用过什么微博客呢!好像落伍了啊~
    支持(6反对(6回复
  1. 23
    超级熊猫   说道:
    代码 很强大 试试看 效果
    支持(4反对(4回复
  1. 24
    2547   说道:
    这个不错哦。。。
    支持(7反对(7回复
  1. 25
    tty   说道:
    这个密码会被主机商看到,傻比...
    williamlong 于 2009-6-17 12:20:22 回复
    你仔细看看程序就应该知道密码是保存在用户本地cookies里的。
    支持(5反对(5回复
  1. 26
    koukang   说道:
    莫名其妙出现一条非自发消息sfdsf。。。
    谁的恶作剧。。。
    支持(7反对(7回复
  1. 27
    fff   说道:
    msxml3.dll 错误 '80070005'

    拒绝访问。

    /twitter/index.asp,行 22
    支持(9反对(9回复
  1. 28
    evilguy   说道:
    慢了。。没拿到沙发。。。

    日志的代码部分在chrome下显示错位了。。。

    xmlhttp.Send (post_status) 之后 根据服务器返回的信息 判断是否OK。。因为输入的账号密码有可能出错,此时再显示OK就不现实了。
    支持(5反对(6回复
  1. 29
    天然卷   说道:
    不错,自己再加了个叽歪
    fd 于 2009-6-16 12:26:18 回复
    怎么加的叽歪
    支持(7反对(8回复
  1. 30
    神兽   说道:
    一直需要这样的东西XXOO
    支持(6反对(7回复
  1. 31
    angnow   说道:
    学习了,谢谢月光.
    支持(6反对(7回复
  1. 32
    我不是兔子   说道:
    不能做个客户端吗?5555
    支持(7反对(8回复
  1. 33
    XjAcKs   说道:
    自己的服务器?那可是有钱人干的事……
    支持(5反对(6回复
  1. 34
    asdasdas   说道:
    腾讯公司电话号码是什么:(08)98677-88889
    支持(6反对(7回复
  1. 35
    一品茶   说道:
    牛人!!!!!!!!!
    支持(6反对(7回复
  1. 36
    kid   说道:
    如何解决twitter API数目的限制?
    抓包后模拟POST没成功...
    williamlong 于 2009-6-17 12:19:24 回复
    twitter API数目的限制在服务器端没法解决,就是每小时100次,除非用客户端软件来解决。
    支持(7反对(9回复
  1. 37
    炎龙博客   说道:
    有没有开发个zblog的插件啊?
    这样每次都手动提交很不方便。
    支持(5反对(7回复
  1. 38
    tony   说道:
    做啥的更新不起作用,请博主查实
    支持(6反对(8回复
  1. 39
    鬓角之家   说道:
    月光博客之所以能成为名博,最主要的就是它的主人除了有一点正义感外,还是一个无私的人,在他这里,总能找到你想要的,或是你想知道的。
    therock 于 2009-12-30 10:00:34 回复
    处理 URL 时服务器出错。请与系统管理员联系。

    这个是不是服务器超时所致?
    支持(5反对(8回复
  1. 40
    wenshi0295   说道:
    很好啊,你的博客一直在关注
    支持(5反对(9回复
  1. 41
    牵手   说道:
    试用了一下,同步到嘀咕成功,饭否却无端多出来一条不知道是谁写的状态,做啥没有成功!
    支持(7反对(13回复

发表留言