博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于调用新浪微博与腾讯微博
阅读量:6227 次
发布时间:2019-06-21

本文共 2723 字,大约阅读时间需要 9 分钟。

   有一个很简单的需求,我想把自己的微博的内容输出到我的网站上。本以为是个很简单的事情,结果折腾了一晚上。

   首先想到使用新浪微博,因为平常自己用的就是新浪微博。网上有很多关于新浪微博的API开发,首先就找到了dudu站长的分享: 第一步是要申请账号: 现在申请已经不需要发邮件了。非常简单,申请成为开发者,然后创建应用,填写正确的邮箱地址,马上就收到App Key了。

    拿到这个Key后,没有照dudu的代码试一遍,因为其介绍的是发布内容到微博,而我的要求是获取微博内容到网站。 文章下面推荐使用: ,下载之后便可以直接使用了。里面有个示例代码,修改web.config中的appkey后可以直接运行。

点击连接按钮后,弹出窗口,需要授权。

授权完成后,即可调用相关方法,返回也没有问题,可以成功输出。

本以为皆大欢喜,但总觉得哪里不对,是“授权”!每次登录都会弹出这该死的授权页面。

尝试按照dudu文章里面的代码,结果总是报错:

反复查找新浪的开发指南,始终没找到方法,又去了开发者论坛找: 有与我碰到同样问题的朋友,不过也没有解决办法。

不过得到几个关键信息:

1.使用oAuth是一定会弹出授权页面的。

2.basic登录已经不开放了。

3.oauth2.0授权有效期是24小时。

4.用户名密码方式需要申请。

几个有用的帖子:

                      

                      

实在想不到什么好办法了,只好继续搜索。

beer提供了一种方法获取RSS:  不过这个方法我没有试。

 

新浪的路看来是走不通了,抱着侥幸的心理试试腾讯的微博。

类似的方法进行开发者申请,同样是创建应用后通过邮件收到appKey.阅读开发文档的时候有个让我眼前一亮的东东:RSS/JSONP输出。

需要登录访问,可以直接获取两种方式的调用地址:

如我的:

直接输入浏览器中即可出现jsonp的数据(要多刷新几次)。这不正是我想要的东东吗?本以为万事大吉,想通过jquery的getJSON()轻松获取:

$.getJSON("http://v.t.qq.com/output/json.php", { type: "2", name: "dragonice", sign: "fa46dfdc668d42faf78b11193ea12db7ec207678" },            function (db) {            var msg = "";            for (var i = 0; i < db.data.length; i++) {            msg += "

" + db.data[i].content + "

"; } document.getElementById('weibo').innerHTML = msg; } );

结果死活得不到数据。不甘心,可能是json和jsonp不同,找到一篇文章:通过ajax()来尝试:

$.ajax({                url: "http://v.t.qq.com/output/json.php?type=2&name=dragonice&sign=fa46dfdc668d42faf78b11193ea12db7ec207678",                type: "GET",                dataType: "JSONP",                success: function (db) {                    alert("a");                    var msg = "";                    for (var i = 0; i < db.data.length; i++) {                        msg += "

" + db.data[i].content + "

"; } document.getElementById('weibo').innerHTML = msg; } });

没有成功(有时会报weiboData()没有定义的错误。)。反反复复试了N次,还是不成功。装个chrome浏览器(chrome确实比ie9快,MS怎么这么不给力啊!)。调试后发现数据得到了,但是处理不正确。整了N久还是不行。本来想放弃算了,还是求助了下Google,结果发现了这个:

微薄正在加载中

一段代码就搞定了。

其实有种方法一直想试,但是没js调用没成功,怎么都不甘心。尝试一下发现是可以的:

string url = "http://v.t.qq.com/output/json.php?type=2&name=dragonice&sign=fa46dfdc668d42faf78b11193ea12db7ec207678";            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);            request.ContentType = "application/x-www-form-urlencoded";            HttpWebResponse response = (HttpWebResponse)request.GetResponse();            Stream myResponseStream = response.GetResponseStream();            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("UTF-8"));            string retString = myStreamReader.ReadToEnd();            Response.Write(retString);

  

转载于:https://www.cnblogs.com/kulong995/archive/2011/12/13/2285489.html

你可能感兴趣的文章
(转)BT1120接口及协议
查看>>
Robot Framework与Web界面自动化测试学习笔记:定位到新窗口
查看>>
The Dataflow Model 论文
查看>>
Linux守护进程
查看>>
遇到没“人性”的管理:你真可怜!
查看>>
http://www.bootcss.com/p/font-awesome/
查看>>
新浪微博UWP UI意见征求
查看>>
使用ServiceStack构建Web服务
查看>>
Linqer工具
查看>>
table中超过长度的列,显示省略号
查看>>
Qtcreator中经常使用快捷键总结
查看>>
可扩展Web架构与分布式系统(转)
查看>>
KVM虚拟机的安装
查看>>
【转】PHP中require和include路径问题总结
查看>>
Android 监听apk安装替换卸载广播
查看>>
指针之——一级二级多级指针
查看>>
AndroidStudio遇到过的问题
查看>>
MySQL整体架构与内存结构
查看>>
线上centos6出现软死锁 kernel:BUG: soft lockup
查看>>
pl/sql developer 自动输入替换 光标自动定位
查看>>