我们将有一个单屏幕应用程序,因此我们将用户认证挂载在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
该方法是以下样子
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// code
[[VKConnector sharedInstance] setDelegate:self];
[[VKConnector sharedInstance] startWithAppID:kVKAppID
permissons:[kVKPermissionsArray componentsSeparatedByString:@","]];
// code
}
在此情况下,常量 kVKAppID
和 kVKPermissionsArray
看起来如下
static NSString *const kVKAppID = @"3541027";
static NSString *const kVKPermissionsArray = @"photos,friends,wall,audio,video,docs,notes,pages,status,groups,messages";
通过将当前类设置为代理,我们可以在用户应用程序的认证过程中(以及请求实现过程中)处理7种类型的“通知”
详细信息可以参考 VKConnectorProtocol
文档。
应用程序启动后会出现此认证窗口
如果用户认证我们的应用程序,将会调用代理的 VKConnector:accessTokenRenewalSucceeded:
方法;否则,将调用 VKConnector:accessTokenRenewalFailed:
方法。如果请求过程中发生网络故障,则将调用代理的 VKConnector:connectionErrorOccured:
方法,如果发生服务器社交网络的响应解析错误,则将调用代理的 VKConnector:parsingErrorOccured:
方法。
在获得访问令牌后,我们可以代表用户执行请求。请连接 VKUser.h
并使用以下语法:
id myFriends = [[[VKUser currentUser] friends] online];
如果有必要在进行请求之前检查令牌的有效期,则将调用代理的 VKConnector:accessTokenInvalidated:
方法,您应该在其中调用 VKConnector 类的 startWithAppID:permissions:
方法来刷新访问令牌。
请求是同步的,请记住这一点。
版权(c)2013 Andrew Shmig
任何获得此软件及其相关文档文件(“软件”)副本的人,免费获得在此软件上不受限制的权利,包括但不限于使用、复制、修改、合并、发布、分发、转授许可和/或销售软件副本,并允许向软件提供副本的人这样做,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的质量担保,包括但不限于可销售性、适用于特定目的和不侵犯知识产权的担保。在任何事件中,作者或版权持有人不对任何索赔、损害或其他责任负责,无论基于合同行为、侵权行为或其他原因,无论源于、因之或与软件的使用或其他用途有关。