前段时间看群里挺多讨论 微博api,正好前几天看到有个微博遥控器这东西,可以通过发微博(手机..........各种终端效果都一样)来控制电脑,看了看实现起来也不怎么复杂,整个这东西玩玩,顺便熟悉熟悉 微博api。<br><br><br><br><br>
开发环境 vs2010 <br><br><br>
实现方法很简单<br><br><br>
1.通过api取最新的一条微博<br>
2.通过微博的内容控制电脑做相关操作 如:关机,取消关机,
重启,摄像头截图,屏幕截图等<br><br><br><br><br>
使用方法
1.运行QAPITool.exe后点确定(里面的appkey appsecret最好是自己在腾讯微博应用开发页面自己申请)
<img src="/Upload/Images/2011122109/48340E0FA93F84CC.gif" alt=""><br>
<br>
2.在打开的
授权页面中输入你的腾讯微博账号<br>
<br>
<img src="/Upload/Images/2011122109/62015A283EB9871C.gif" alt=""><br>
<br>
3.把的到的授权码输入到文本框里面
<img src="/Upload/Images/2011122109/87806526F482A958.gif" alt=""><br>
4.点击
开启
<img src="/Upload/Images/2011122109/D51CC1F35820312F.gif" alt=""><br>
5.之后就可以通过你的微博输入相关命令(关机,取消关机,重启,摄像头截图,屏幕截图)来控制电脑了
<br>
<img src="/Upload/Images/2011122109/F51AD9D679944B2C.gif" alt=""><br><br><br>
<br>
具体实现代码
1.下载腾讯微博C# sdk ,有个api调试工具,方便调试使用
http://open.t.qq.com/resource.php<br>
<br><br>
2.添加一个计时器,定时取最后一条微博<br>
OauthKey oauthKey = new OauthKey();<br>
oauthKey.customKey = appKey;<br>
oauthKey.customSecret = appSecret;<br>
oauthKey.tokenKey = accessKey;<br>
oauthKey.tokenSecret = accessSecret;<br>
string ret;<br>
UTF8Encoding utf8 = new UTF8Encoding();<br>
statuses st = new statuses(oauthKey, "json");<br>
ret = st.broadcast_timeline(0, 0, 1, 0);<br><br>3.
解析返回json数据
JObject response = JsonConvert.DeserializeObject<JObject>(str);<br>
JObject data = JsonConvert.DeserializeObject<JObject>(response["data"].ToString());<br>
JObject info = JsonConvert.DeserializeObject<JObject>(data["info"].First.ToString());<br>
string id = info["id"].ToString().Replace("\"", "");
3.判断这个微博是不是最新发送的<br>
从返回的数据中取出 微博id 跟text 里面的数据 ,<br>
通过比较取出的微博id 跟电脑中保存的id 是否一致来判断是不是新发送的<br>如果是新的就执行微博中的控制命令,并更新保存的id
StringBuilder sb = new StringBuilder(255);<br>
GetPrivateProfileString("Config", "ID", "", sb, sb.Capacity, configpath);<br>
string oldID = sb.ToString();<br>
if (id != oldID)<br>
{<br>
string text = info["text"].ToString().Replace("\"", "");<br>
WritePrivateProfileString("Config", "ID", id, configpath);<br>
ProcessCommand(text);<br>
}
4.通过这条微博控制电脑做相关操作<br>
5.重启代码<br>
Process.Start("shutdown", "-r -f -t 300");<br>
6.关机代码<br> Process.Start("shutdown", "-s -f -t 300");
取消关机
Process.Start("shutdown", "-a");<br>
7.屏幕截图<br><br>
var temp1 = Environment.GetEnvironmentVariable("TEMP");<br>
var picPath1 = string.Format("{0}\\{1}.jpg", temp1, Guid.NewGuid());<br>
Class1.GetScreen(picPath1);<br>
if (File.Exists(picPath1))<br>
Send(picPath1);<br>
8.摄像头截图<br>
var temp = Environment.GetEnvironmentVariable("TEMP");<br>
var picPath = string.Format("{0}\\{1}.jpg", temp, Guid.NewGuid());<br>
Class1.GetCamera(picPath, this.pictureBox1);<br>
if(File.Exists(picPath))<br>
Send(picPath);<br>
break;
<br>
9.把截取到的图片发送到微博上
OauthKey oauthKey = new OauthKey();<br>
oauthKey.customKey = appKey;<br>
oauthKey.customSecret = appSecret;<br>
oauthKey.tokenKey = accessKey;<br>
oauthKey.tokenSecret = accessSecret;<br>
t twit = new t(oauthKey, "json");<br><br><br>
string ret;<br>
ret = twit.add_pic("pic", "127.0.0.1", "", "", file);<br>
<br>
<span style="font-family: Arial; font-size: 14px; line-height: 26px;"></span>
如果你
发现有什么不
合理的,需要改进的地方,<span style="font-family: 'lucida Grande',Verdana; font-size: 14px; line-height: 23px;">邮件联系328452421@qq.com(qq常年不
在线,邮件联系)</span>朱晓 。相互交流 谢谢
顺便问下 有家是新泰的没。
<span style="font-family: Arial; font-size: 14px; line-height: 26px;"></span>
<br>
下载地址 http://download.csdn.net/source/3457382
<br>
<br>
<br>