基于Swift语言的iOS App 商业实战教程
上QQ阅读APP看书,第一时间看更新

1.1 项目介绍

1.1.1 项目背景介绍

新浪微博是一款为大众提供娱乐、休闲、生活服务的信息分享和交流平台,用户可以通过网页、WAP 页面、手机客户端、手机短信、彩信发布消息或上传图片。我们可以把新浪微博理解为“微型博客”或者“一句话博客”。用户可以将看到的、听到的、想到的事情写成一句话,或发一张图片,通过计算机或者手机随时随地分享给朋友,一起分享、讨论;还可以关注朋友,即时看到朋友们发布的信息。

新浪微博由新浪公司于2009年正式推出。截至2016年3月,微博月活跃用户2.61亿,日活跃用户1.2亿,拥有庞大的用户群,是国内最有影响力、最受瞩目的微博运营商之一。

2010年初,新浪微博推出API开放平台,通过它的开放接口,其他网站或者App纷纷推出“分享到新浪微博”功能,更加速了新浪微博的发展。图1-1展示了百度和淘宝的分享功能。

图1-1 百度分享和淘宝分享

新浪微博是中国移动互联网的代表性产品之一,它涵盖了大量的移动互联网元素。通过对新浪微博的研究及模仿实现,可以获得如下收获。

● 对这些元素在实际产品中的应用有深入的了解和认识。

● 知道如何在一个真实的项目中运用相关技术点。

● 对大型项目的架构、开发及掌控有更全面的认识和理解。

本书借助新浪微博开放平台,通过开发一个微博项目,让大家从零开始了解开发一个大型项目的各个阶段,具备一个大型项目系统开发的能力。

1.1.2 项目注册

要想使用新浪公司的接口开发项目,首先要注册一个新浪账号成为新浪的用户,然后登陆微博开放平台(open.weibo.com),注册和管理要使用新浪微博接口的项目。在新浪平台注册App,绑定项目的步骤具体如下。

(1)访问新浪微博开放平台,平台的主界面如图1-2所示。

图1-2 新浪开放平台主界面

(2)单击主界面上的“登录”按钮,页面上弹出登录界面,如图1-3所示。输入新浪用户名和密码,即可登录并成为它的开发者。

图1-3 登录界面

(3)登录成功以后,单击主页面顶部菜单上的【微连接】→【移动应用】命令,进入微连接页面,如图1-4所示。

图1-4 “微连接”页面

(4)单击“立即接入”按钮,然后在系统弹出的提示框中单击“继续创建”按钮,即可进入创建移动应用的页面,具体如图1-5所示。

(5)创建移动应用的页面如图1-6所示。输入应用名称,如我们的项目名称“黑马微博”。要注意,应用不能重名。然后在应用平台上选择“iPhone”,最后单击“创建”按钮进行创建。

图1-5 弹出的提示框

图1-6 创建移动应用的页面

(6)创建完应用以后,页面自动跳转到【我的应用】→【应用信息】→【基本信息】页面。在该页面中可以看到开放平台为应用生成的App Key和App Secret信息,如图1-7所示。

图1-7 生成的应用信息页面

其中,App Key是应用程序在新浪网站上登记的身份证号,App Secret是用于识别应用程序的,App Key和App Secret共同组成一个App的唯一标识。App Key是不可更改的,但是如果App Secret被泄露,是可以更改的。这两个信息是App可以访问新浪开放接口的关键信息,非常重要,建议保存起来。

(7)在【我的应用】→【高级信息】菜单中,单击【OAuth2.0授权设置】行尾的【编辑】,可添加授权回调页信息,这是必填项目,如图1-8所示。

图1-8 授权设置页面

(8)进入编辑页面,填入网站信息以后,单击“提交”按钮就可以了,如图1-9所示。

图1-9 添加授权回调页

至此,我们的项目已经在新浪微博开放平台上登记完成,可以在项目中使用生成的信息进行用户验证、获取数据等操作了。

1.1.3 接口文档的获取和查看

如果要开发微博应用,微博开发平台开放了包括微博、用户在内的二十余类接口,供我们实现丰富齐全的功能。首先,打开新浪开放平台的首页,单击页面上方的“文档”,进入开发文档页面,如图1-10所示。

图1-10 开发文档页面

然后,单击图1-10中的【API文档】,进入“微博API”页面,如图1-11所示。我们看到新浪微博将所有开放的接口文档按照功能模块进行分类。

图1-11 微博接口分类

单击某个功能模块,会定位到该功能模块下的接口列表。以图1-11中的“微博接口”为例,它有两个子分类,分别是读取接口和写入接口,每个子分类下又有若干接口,包括接口地址和描述,如图1-12和图1-13所示。

图1-12 微博读取接口

图1-13 微博写入接口

单击接口地址,会跳转到该接口的具体描述页面。以图1-12中的“获取最新的公共微博”接口为例,它的部分描述如图1-14和图1-15所示。

图1-14 最新公共微博的部分信息(1)

图1-15 最新公共微博的部分信息(2)

上述页面描述的具体内容包括以下要素。

(1)URL:访问接口的URL地址。

(2)支持格式:支持的数据格式,如XML或者JSON。

(3)HTTP请求方式:如GET或者POST。

(4)是否需要登录:是否需要用户登录才能访问接口,新浪微博开放的接口都需要登录。在“是否需要登录”下方有一个“如何登录授权”的链接,单击该链接就会跳转到如何进行登录授权的说明页面。

(5)访问授权限制:微博开放接口限制每段时间只能请求一定的次数。限制的单位时间有每小时、每天;限制的维度有单授权用户和单IP;部分特殊接口有单独的请求次数限制。

(6)请求参数:发送请求要带的参数,包括参数名称、是否必选、参数类型和范围,以及参数说明。从图1-15可以看出,有一个必选参数 access_token,类型是字符串类型,并说明是OAuth授权后获得。如果要查询如何登录授权,可以单击图1-14中“是否需要登录下”中的“如何登录授权”链接。

(7)注意事项:使用接口时的注意事项。

(8)调用样例及调试工具:调用接口的样例或者调试工具。

(9)返回结果:调用接口后返回的结果,以下是“获取最新的公共微博”接口的部分返回结果,如图1-16所示。

图1-16 “返回结果”部分示例

(10)返回字段说明:对接口返回的字段进行详细说明。以下是“获取最新的公共微博”接口的返回字段,如图1-17所示。

图1-17 “返回字段说明”示例

(11)其他:其他事项。

(12)相关问题:相互关联的其他问题。

1.1.4 项目功能介绍

新浪微博官方 App 包含的功能非常丰富。考虑到很多功能实现的方式类似,本书仅实现最常用的若干功能,希望大家能够掌握其中的技巧和方法,举一反三。下面是本书将要带大家实现的功能。

1.用户登录

要调用新浪微博的开放接口,多数都需要获取用户身份认证。本书在项目中采用 OAuth2.0协议授权登录的方式,在这种授权方式下,由新浪微博官方提供的接口负责用户授权验证,而本项目作为第三方 App 无法获得用户的用户名或密码等信息。授权成功后,新浪微博会返回一个令牌access_token,第三方App可以使用这个令牌从新浪微博的服务器获取用户的相关信息,以及获取微博等。用户登录的过程如图1-18所示。

图1-18 用户登录过程

2.显示原创微博

用户登录成功后,就可以查看关注的人发布的微博。这些微博信息都是从新浪微博的服务器中获取的,所以与新浪微博的显示数据是一致的。作为学习项目,本书微博项目的显示界面模仿了新浪微博官方 App 的显示界面和风格,可以显示文字微博、单图微博和多图微博。显示原创微博的界面如图1-19所示。

图1-19 显示原创微博的界面

3.显示转发微博

用户登录成功以后,不仅可以显示原创微博,还可以显示转发微博。转发微博的显示样式与新浪微博官方App是一样的。显示转发微博的界面如图1-20所示。

图1-20 显示转发微博的界面

4.发布微博

用户登录成功后,还可以通过本项目发布自己的原创微博,发布的微博被发送到新浪微博官方的服务器上,所以在新浪微博官方 App 上也可以看到。发布微博时,可以添加文字、表情和图片等。发布微博的界面如图1-21所示。

图1-21 发布微博的界面

5.照片选择和查看

在发布微博时,可以从本地相册中选择照片放在微博上。本项目提供了从本地相册选择照片和发布照片的功能。与新浪微博一致,最多可以从本地相册中选择9张图片。从本地相册选择照片的界面如图1-22所示。

图1-22 照片选择过程

6.数据缓存

用户查看过的微博数据会缓存在本地,以提高下次查看微博的速度。为了控制本地数据的大小,不让缓存数据无限制地膨胀,还会将早期的缓存数据定期清空,只保留近期的特定时间段的数据。