Scholica 1.0.1

Scholica 1.0.1

测试已测试
语言 Obj-CObjective C
许可证 自定义
发布上次发布2015年5月

Thomas Schoffelen 维护。



Scholica 1.0.1

  • 作者
  • Thomas Schoffelen

Scholica for iOS SDK

一个 iOS SDK,允许轻松将 Scholica API 集成到您的应用中,并允许用户使用 Scholica 登录和保存数据。

Build Status

安装

您可以通过使用 CocoaPods 或手动下载 SDK 文件来安装 Scholica SDK。

手动安装

只需将 Scholica 目录中的所有文件拖放到您的 Xcode 项目中。

导入 Scholica 头文件,大功告成

#import "Scholica.h"

实现示例

如果您需要一个示例实现进行参考,请查看 schedule-ios 项目。特别是那里的 登录控制器 可能值得一试。

入门

1. 设置您的 .plist 文件

当用户安装了 Scholica 应用时,Scholica SDK 将尝试使用原生登录界面进行登录。要设置此操作,您需要将 URL 方案添加到您的 .plist 文件中的 URL 类型键下。创建一个名为 URL 方案的单一数组子项。给这个单一项提供一个完整的消费者密钥。

这用于确保应用程序将接收登录流程的回调 URL。

您的 .plist 应该如下所示

Plist example

2. 添加您的消费者密钥和密钥

通过设置消费者密钥和密钥来启动 Scholica。通常最好在 AppDelegate 中的 application:didFinishLaunchingWithOptions: 方法中这样做。

[[Scholica instance] setConsumerKey:@"<CONSUMERKEY>"];
[[Scholica instance] setConsumerSecret:@"<CONSUMERSECRET>"];

请通过发送邮件到 [email protected] 请求您的应用程序的消费者密钥和密钥。

3. 添加一个 openURL 回调

登录成功或失败之后,Scholica 将使用您设置的 URL 方案将用户重定向回您的应用。要处理此请求,请确保您的 AppDelegate 中的 openURL 方法如下所示

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    if(![[Scholica instance] applicationDelegateOpenURL:url sourceApplication:sourceApplication]){
        // Override point for URL scheme handling if requested URL is not related to Scholica login
    }

    return YES;

}

4. 登录

有趣的部分。使用 [[Scholica 实例] currentSession] 来评估用户是否已经登录(使用 NSUserDefaults 中的信息),否则调用 signIn 方法。

if([[Scholica instance] currentSession]){

    // User is logged in, do work such as go to next view controller.

}else{

    // Call signIn method
    [[Scholica instance] signIn:^(SALoginStatus status) {
        NSLog(@"Successful sign in!");
    } failure:^(SALoginStatus status) {
        NSLog(@"Something went wrong...");
    }];

}

在登录成功或失败后,分别调用 successfailure 方法。它们都是类型为 ScholicaLoginCallback 的,接受单个参数:一个类型为 SALoginStatus 的枚举,其值等于以下这些值之一:

  • SALoginStatusOK
  • SALoginStatusInvalidConsumer
  • SALoginStatusCanceledByUser
  • SALoginStatusNetworkError
  • SALoginStatusUnknown

当登录成功时,Scholica 对象将包含变量 accessToken,它将被 SASession 自动保存到 NSUserDefaults 中。要禁用此行为并手动保存访问令牌以供重用,将 autoSaveAccessToken 设置为 NO。

[[Scholica instance] setAutoSaveAccessToken:NO];

5. 获取用户资料

调用 profile 方法以接收有关当前用户的信息。

[[Scholica instance] profile:^(SAUserObject *user) {
    NSLog(@"Hi %@, welcome!", user.name);
}];

在失败的情况下,usernil

6. 发送 API 请求

调用 request 方法。

[scholica request:@"/communities/1" callback:^(SARequestResult *result) {
    if(result.status == SARequestStatusOK){
        // Request was successful
        NSLog(@"The title of this community is %@!", [result.data objectForKey:@"title"]);

    }else if(result.error.code > 900){
        // Scholica error
        NSLog(@"Scholica error: ", result.error.errorDescription);

    }else{
        // Network error
        NSLog(@"Network error.");
    }
}];

执行 API 请求(如这里所描述的方法)就像设置一个方法(即 /me)、可选地设置多个参数(在 NSDictionary 的 fields 中)和一个回调,该回调接受一个类型为 ScholicaRequestResult 的参数,该参数包含:

  • status - 一个值为 SARequestStatusOK 或 SARequestStatusError 的 SARequestStatus 枚举
  • data - 当状态为 SARequestStatusOK 时,包含 API结果的 NSDictionary
  • error - 当状态为 SARequestStatusError 时,一个 SARequestError 对象(属性:code、errorDescription、documentationURL)

类引用

有关更多信息,请参阅 SDK 类引用