之前写了豆瓣客户端(一)获取授权码和访问令牌后,就开始学习iOS7 TextKit方面的内容了,在前两天看Text Kit 看得无聊以后,又再回来写自己一直都很感兴趣的豆瓣客户端。途中遇到了各种各样的问题,先来小小吐槽一下:豆瓣的开发文档真是坑爹极了,基本上没有步骤可言,有时候就是一句带过,来个只能意会不能言传,难怪那么少人做豆瓣客户端,可能这个客户端赚不了什么钱吧。幸好以前有人也遇到过这些问题,在参考了他们的文章再结合一些实践和修改,最后终于掌握了调用豆瓣API的基本方法,下面让我仔细道来。
一)通过access_token判断程序加载后的根视图页面
// 获取用NSUserDefaults保存的access_token
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *access_token = [userDefaults objectForKey:udAccess_token];
if (!access_token) {
self.window.rootViewController = self.authvc; // 如果未获得access_token,则转到授权页面
}
else {
self.window.rootViewController = self.uvc; // 否则转到个人主页页面
}
这里没有考虑到access_token过期的问题,我会改进的。
简单说一下NSUserDefaults。
NSUserDefaults用于存取程序的配置信息,使用起来非常简便,不用另外写存取的方法:
保存数据:
// 保存access_token
NSString *access_token = [rspDic objectForKey:@"access_token"];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:access_token forKey:udAccess_token]; // 设置key-object对并使用NSUserDefaults对象保存
[userDefaults synchronize]; // 同步方法,这个是必须的
获取数据:
// 获取用NSUserDefaults保存的access_token
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *access_token = [userDefaults objectForKey:udAccess_token];
如果要实现退出登录的功能,也非常简单,只需要设置NSUserDefaults中对应udAccess_token这个key的value为nil即可:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:nil forKey:udAccess_token];
二)获取授权用户的简版信息
在(一)拿到access_token后,开发文档中介绍的接下来就是获取授权用户信息,参见:点击打开链接。
获取用户信息的API参见:点击打开链接。其权限必须包括scope: douban_basic_common。
这是从开发文档中摘取的内容:
豆瓣Connect通过以下两个步骤来完成认证授权.
请求用户授权,拿到授权过后的authorize_code
使用授权后的authorize_code,来获取access_token
在完成认证之后,您可以使用获取的Access Token,来获取已授权的用户信息,以便完成和您网站的用户对接工作.
获取当前授权用户信息
通过访问以下url来获取授权用户的信息