引言
最近不是太忙,花了一些时间学习android的应用开发。经过两个星期的学习,学习的同时还写了很多的demo示例,可以从基本控件及基本动画效果等示例demo集合大放送,持续更新下载。
从这个星期开始,准备拿新浪微博开放平台做个实践,开发一个功能简单的android客户端,会尽可能的完善功能。
今天的内容
上图是这个客户端的主要界面,目前只是获取了前20条数据,还可以通过refresh点击刷新数据。功能还比较简单。
运行的系统是android2.2.
使用到的技术点包括ListView,自定义ListAdapter,多线程相关的Message,Handler,验证相关的OAuth,用户图片的异步加载。
新浪微博的验证使用的是signpost的OAuth组件,没有使用微博的SDK。
源码下载: SinaWeibo2
源码下载之后,将后缀改为rar,使用压缩软件解压即可。
关于OAuth验证
OAuth是当下流行的授权方案,twitter,facebook,google等大型网站的开放平台都支持了oauth验证模式,国内的新浪微博、腾讯微博、163微博的开放平台也相继支持了这种验证模式。
引用维基百科的相关说明
“oauth是一个开放的标准,允许用户让第三方应用访问该用户放在某一个网站的私密资源,而无需将用户名和密码传递给第三方应用。oauth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。”
举例来说就是:
用户A在服务提供者B上存放了一些资源,B支持oauth授权模式,A在B上是注册用户,有用户名和密码,使用用户名和密码登陆B就可以查看自己的资源。假设有一个应用C,用户A在使用C的时候需要自己在B上存放的资源。有两种方法来实现C上显示自己在B上的资源。
- 一种是在C上输入自己在B的用户名和密码,让C帮自己登陆,获取资源,然后显示在C上,但是这么做太不放心了,C是一个什么样的应用,用户A不放心把B的用户名和密码交给C。
- 第二种是在C上也存放一份相关资源,这样C就直接显示用户A在C上的资源就可以了。这样的话,用户的维护量就会很大,资源的同步更新很让人头疼的。
这时候C就可以使用B开放的oauth授权机制了,用户A在想要显示B上的资源的时候,C会跳转到B的验证页面,用户在B的页面输入用户名和密码,通过之后,会询问用户是否开发相关的资源给C应用,用户可以自定义C可以访问的资源,然后再跳转回C应用。这样既不用担心用户名和密码的问题,又不用同时存放多份资源造成的维护问题了。
大家可以通过下面的网站详细了解oauth的具体技术细节。
http://oauth.net/
http://code.google.com/p/oauth-signpost/
从上图我们可以看出,真个过程分为consumer和provider两个部分。consumer也就是例子中的c应用,provider就是例子中的B服务提供者。
使用OAuth进行认证和授权的过程如下所示:
-
用户访问客户端的网站,想操作用户存放在服务提供方的资源。
-
客户端向服务提供方请求一个临时令牌。
-
服务提供方验证客户端的身份后,授予一个临时令牌。
-
客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
-
用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
- 授权成功后,服务提供方引导用户返回客户端的网页。
-
客户端根据临时令牌从服务提供方那里获取访问令牌。
-
服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
-
客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。
新浪微博的oauth
借用一张新浪微博的oauth验证流程图。
我们再新浪微博开放平台新建应用的时候都会分配给新建应用一个key和secret,也就是consumerKey和consumerSecret。通过这两个东西,我们去request_token,然后将用户重定向到新浪微博平台的授权页面,授权之后,根据callback_url跳转会我们应用的一个地址,我们再次使用request_token获取access_token,在后面就需要通过access token来访问开放平台提供的需要验证的接口了。
当然了,那些不需要验证就可以访问的接口,就直接使用key就可以访问了,详情可以参考开放平台提供的API文档。
腾讯微博和163微博的开放平台也是类似的原理和实现。
更多功能
接下来,有两个主要的功能会完善,一个是分页浏览,一个是发表微博。
往后,可能会支持图片发表等实用功能。
还有就是UI的美化,性能的优化。
总结
学习的过程中看过两本书,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527).pdf,都是很不错的入门书籍。书我没有全看完,看完大部分吧,边看边写demo。
同时每天泡论坛http://www.eoeandroid.com/forum.php,eoe的开发者门户。回答问题,解决问题,提出问题,发帖子,总之就是锻炼自己,强迫自己锻炼基础和思考。
在论坛上,有很多的中文pdf教程,但是发现大多都是翻译android developer center的Dev Guide和Resources中的内容。所以觉得,如果英文不是很差,建议直接阅读上面的两个板块,同时练习其中的示例,保证两个星期,你会有很大的进步。
参考资料
http://developer.android.com/index.html
http://www.cnblogs.com/hll2008/archive/2011/01/03/1923674.html
http://open.weibo.com/wiki/Oauth
http://blog.csdn.net/lihenair/article/details/6010026
http://www.cnblogs.com/liangxing/archive/2010/10/19/1855938.html
http://code.google.com/p/oauth-signpost/wiki/GettingStarted
分享到:
相关推荐
从这个星期开始,准备拿新浪微博开放平台做个实践,开发一个功能简单的android客户端,会尽可能的完善功能。 上图是这个客户端的主要界面。今天增加的功能。 1.简单的样式和皮肤,只是添加了按钮。 运行的系统是...
微博是中国最具影响力的社交媒体平台之一,而新浪微博开放平台SDK则是开发者们接入微博服务、构建第三方应用的重要工具。本文将深入探讨这个SDK的核心功能、使用场景以及如何通过它来扩展你的应用程序。 ### SDK...
首先,你需要在新浪微博开放平台上注册并创建一个应用,从而获得AppKey和AppSecret。这两个密钥将在后续的开发过程中被用于身份验证。尽管新浪微博提供了相应的SDK,但本文作者选择直接调用Rest API,避免了SDK可能...
- 本项目通过开发Android版新浪微博客户端,不仅涉及了Android开发的基础知识,还深入探讨了与第三方平台API的集成过程以及UI设计与实现的关键技术点。 - 对于初学者而言,这是一个非常实用的学习案例,不仅可以帮助...
本文将深入探讨“新浪微博开放接口”的相关知识点,结合提供的“weibo_android_sdk-master”文件,帮助你了解如何利用这些接口进行Android客户端的开发。 一、新浪微博开放接口概述 新浪微博开放接口,简称Sina ...
在本文中,我们将深入探讨如何使用Android平台进行新浪微博客户端的开发。这是一项涉及移动应用开发、网络通信以及用户界面设计的综合性任务。首先,我们来理解Android开发的基础知识。 Android是一种开源的操作...
首先,我们要明确,这个开源项目是基于Android平台开发的,主要目标是实现一个功能完善的新浪微博客户端。Android平台以其开放性和灵活性,吸引了大量开发者进行二次开发和创新。通过研究这份源码,我们可以了解到...
"安卓开发-Android新浪微博客户端项目yibo.zip" 这个标题表明我们正在处理一个关于安卓(Android)平台的开发项目,具体来说是实现了一个微博客户端。"yibo"可能是指项目的名称或者开发者的名字,它代表了这个应用的...
在Android平台上开发一款微博客户端,主要是利用Android SDK和微博开放API来实现的。这个项目涉及到的知识点涵盖了Android应用开发的基础到高级技术,包括UI设计、网络通信、数据存储、权限管理等多个方面。以下是对...
标题“Android客户端接入新浪微博”揭示了本主题的核心——在Android应用程序中集成新浪微博的功能,以便用户可以登录、分享内容、互动等。这涉及到Android开发、网络通信、OAuth授权以及社会化媒体API的使用。 ...
本文主要探讨的是基于新浪微博开放平台的Android终端应用的设计与实现,这是计算机科学领域的一个实际项目,涉及移动应用开发和社交网络API的集成。在本文中,作者将详细阐述如何利用Android开发工具和技术来构建一...
在移动互联网领域,社交应用占据着举足轻重的地位,其中新浪微博作为国内知名社交媒体平台,其Android客户端的开发与优化是许多开发者关注的焦点。本篇文章将深入探讨如何构建一个功能完备且用户体验优秀的新浪微博...
乐分享是一个开源新浪微博Android客户端。 目前支持发布文字、图片、拍照等功能。功能简单,源代码开放,供各位Android开发爱好者学习、完善。 依赖项目: 1、新浪微博Api; 2、创新工厂友盟统计服务。
1. **第三方应用开发**:第三方客户端是基于微博的开放API(应用程序接口)进行开发的,通过这些接口,开发者可以获取用户授权,实现与微博平台的数据交换,构建自己的应用。 2. **OAuth认证**:为了确保安全,第三...
新浪微博开放平台为开发者提供了SDK和API文档,允许开发者接入其服务。注册开发者账号,创建应用后,可以获得API密钥,这些密钥在后续的登录授权和数据请求中至关重要。 在实现登录功能时,我们会使用OAuth 2.0协议...