您的位置:首页 > 其它

快速学习和使用新浪微博API开发WEB应用

2011-01-04 15:38 309 查看
 

新浪微博API,看起来像一个高深莫测的东西,的确,这也不是一个很简单是的东西。

新浪微博API,当我第一次接触它的时候真的不知所措,感觉得很难入手,而且中间经常出现错误,一般是漏了某些参数造成,就需要浪费大量的时间去调试,在这里要感谢一下我的朋友Randy的帮忙和指导!

 

好了,废话少说,现在直接告诉大家一些我的心得,快速学习和使用新浪API。

第一步:申请新浪微博账号,登陆后在这里http://open.t.sina.com.cn/apps创建一个应用,里面的信息暂时可以乱填写(应用开发完成了再回来修改)。创建后系统会分配一个App Key和App Secret,这两个是验证开发者的身份,必不可少(在下一步下载的SDK源码里会有作者的,应该还可以正常使用,建议替换成你的。)

 

第二步:下载SDK源码,我是使用C#的,所以下载的是http://open.t.sina.com.cn/wiki/index.php/SDK#C.23选择第二个或者http://code.google.com/p/opensinaapi/。下载完解压后,就可以直接使用VS打开。

 

第三步:SDK源码主要文件oAuthBase.cs 、oAuthSina.cs、 ISinaApiService.cs 、SinaApiService.cs四个文件。上一步提到的两个KEY就在oAuthSina.cs文件第31行,直接替换即可。

那再看SinaApiService.cs文件,第63行user_timeline方法。

 

/*用户发表微薄列表*/
public string user_timeline(string userid, string passwd, string format)
{
oAuthSina _oauth = new oAuthSina();
if (oAuth(userid, passwd, _oauth))
{
string url = "http://api.t.sina.com.cn/statuses/user_timeline." + format;
return _oauth.oAuthWebRequest(oAuthSina.Method.GET, url, String.Empty);
}
else
return null;
}
 

这里方法不是使用OAuth授权方式(一般是使用这种方式),所以我们需要修改一下代码,添加一个新方法为:

/*用户发表微薄列表*/
public string user_timeline(oAuthSina oauth, string format)
{
string url = "http://api.t.sina.com.cn/statuses/user_timeline." + format;
return oauth.oAuthWebRequest(oAuthSina.Method.GET, url, String.Empty);
}
 

其它的也一样的改法,就到这一步就直接使用这些API了。

 

第四步:创建一个WEB项目,新建两个文件分别是default.aspx和SinaApiCallBack.ashx。
default.aspx 页面显示
SinaApiCallBack.ashx API返回处理页面
在default.aspx 页面做一个a标签,代码如下:

<%
oAuthSina oauth = new oAuthSina();
string authLink = oauth.AuthorizationSinaGet() + "&oauth_callback=http://localhost:2122/SinaApiCallBack.ashx";
Session["Sina_oAuth"] = oauth;  //保存到Session以便于后台调用
%>
<div>
<a href="<%=authLink %>">登陆到新浪微博</a>
</div>
 

 

SinaApiCallBack.ashx 页面代码如下:

 

context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
string oauth_token = context.Request["oauth_token"];
string oauth_verifier = context.Request["oauth_verifier"];
if (context.Session["Sina_oAuth"] != null)
{
oAuthSina oauth = (oAuthSina)context.Session["Sina_oAuth"]; //从前台session保存下来的
oauth.Verifier = oauth_verifier;
oauth.Token = oauth_token;
oauth.AccessTokenGet(oauth_token);
SinaApiService sina = new SinaApiService();
string user = sina.user_timeline(oauth, "xml"); //以上几行代码暂时不需要知道是什么,但必不可少,照写就行了
context.Response.Write(user);  //输出新浪API返回的XML文档内容
}


记得ashx文件使用session时一定要继承System.Web.SessionState.IReadOnlySessionState类,否则会出错。

好了,直接运行(F5),进入首页看到 登陆到新浪微博 点击,出现新浪授权提示,登陆你的新浪微博,新浪会跳转SinaApiCallBack.ashx页面。看到了吗?这是XML格式的内容,还有JSON格式的,然后就可以处理这些数据成为自己的所需的数据了。

 

到这里,你完全可以自己开发属于自己的微博应用,是不是没有想象中那么难呢?

刚开始时,不要去研究SDK的东西,这样你可以会被这个难倒的。我到现在也还不太懂SDK里的东西,见笑。

 

 

 我还有一个xml处理类和SinaMUser用户模型类,这两个加起来可以很轻松处理新浪返回来的XML文档。

这些文件我迟点会贴出来。

 

在这里我做一个AD,我的自己开发的新浪应用http://www.wobumang.com/zhufu/sinaapp/希望大家支持一下。

有什么问题或建议大家可以一起讨论和研究。

 

作者:xusion

鸣谢:Randy

Tag:新浪API SDK源码 学习与使用

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息