SinglySDK 1.2.3

SinglySDK 1.2.3

测试已测试
语言语言 Obj-CObjective C
许可 BSD
发布最后发布2014年12月

未声明 维护。



SinglySDK 1.2.3

  • Singly, Inc, Justin Mecham 和 Thomas Muldowney

Singly iOS SDK

一个简单的 SDK,用于从 iOS 应用中访问 Singly。

入门

首先,您需要从 Singly 为您的应用程序获取一个客户端 ID 和客户端密钥。如果您还没有这样做,请通过 Singly 登录 添加您的应用程序。您的客户端 ID 和客户端密钥可以在您的应用程序设置页面找到。

一旦您获取了客户端 ID 和客户端密钥,我们可以开始一个新的 iOS 应用程序或使用现有的一个。如果您从头开始,您可以查看并克隆我们的 骨架项目,该项目已经为 Singly iOS SDK 准备就绪。

下载 Singly SDK

开始使用 Singly SDK 的最简单方法是 下载我们的预包装发行版

将 Singly SDK 包含到您的项目

  1. 从预包装发行版中将 SinglySDK.frameworkSinglySDK.bundle 文件拖放到您的 Xcode 项目中。将提示您将它们添加到您的目标中;这样做。

  2. Singly SDK 需要连接到一些框架,您可能或可能没有被连接。在构建阶段设置中,将 AccountsAddressBookAddressBookUISecuritySocialTwitterQuartzCore 框架添加到“链接二进制与库”阶段。如果您针对 iOS 5,务必将 Social 框架标记为“可选”而不是“必需”。

  3. 使用 #import <SinglySDK/SinglySDK.h> 将 Singly SDK 导入您希望使用 SDK 的源文件。

向 Singly 开启一个会话

要开始在您的项目中使用 Singly SDK,您首先需要初始化 SinglySession。您可能会在应用程序刚刚完成后进行此操作,例如,在 application:didFinishLaunchingWithOptions:launchOptions 方法中。

SinglySession *session = [SinglySession sharedSession];
session.clientID = CLIENT_ID;
session.clientSecret = CLIENT_SECRET;

[session startSessionWithCompletion:^(BOOL isReady, NSError *error) {
    if (isReady) {
        // The session is ready to go!
    } else {
        // A valid session could not be started. You will need to authenticate
        // with a service (from a view controller) to establish a valid
        // session.
    }
}];

SinglySession 有两个其他属性

  • accessToken - 您的 Singly 访问令牌。您通常不需要访问此属性,除非您需要执行不属于当前 Singly SDK 范围的操作。
  • accountID - 您的 Singly 账户 ID。

这两个都是在 NSUserDefaults 中保存的,应使用 SinglyServiceSinglyLoginViewController 实例进行设置。

使用Singly登录服务

Singly iOS SDK会尝试为用户提供最佳的用户体验,根据用户选择的验证服务和设备上的支持情况。要请求授权,要在一个视图控制器中调用以下代码,以显示给定服务的登录视图。

SinglyService *service = [SinglyService serviceWithIdentifier:@"facebook"];
service.delegate = self;
[service requestAuthorizationFromViewController:self];

您请求授权的服务代理应遵循SinglyServiceDelegate协议。授权请求完成后将调用这些方法。

- (void)singlyServiceDidAuthorize:(SinglyService *)service
{
    // We're ready to rock! Go do something amazing!
}

- (void)singlyServiceDidFail:(SinglyService *)service
                   withError:(NSError *)error
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Error"
                                                    message:[error localizedDescription]
                                                    delegate:self cancelButtonTitle:@"OK"
                                                    otherButtonTitles:nil];
    [alert show];
    [self dismissViewControllerAnimated:YES completion:nil];
}

使用Singly登录选择器

如果您需要登录多个服务或提供多个登录服务,则可以使用SinglyLoginPickerViewController

SinglyLoginPickerViewController *viewController = [[SinglyLoginPickerViewController alloc] init];
[self presentModalViewController:viewController animated:YES];

发送API请求

一旦我们有一个有效的会话,我们可以开始发送API请求。我们可以使用SinglyRequest类(它简单地是NSURLRequest的一个方便的子类)发送GET、POST或任何方法请求。请求只是我们要发送的请求的描述,要实际执行请求,我们使用NSURLConnection

以下是一个请求用户资料列表并使用块处理结果的示例。

SinglyRequest *request = [SinglyRequest requestWithEndpoint:@"profiles"];

[NSURLConnection sendAsynchronousRequest:request
                                   queue:[NSOperationQueue mainQueue]
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
    NSArray *profiles = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
    NSLog(@"The profiles result is: %@", profiles);
}];

使用Singly API同步设备联系人

iPhone SDK允许您使用Singly API将用户设备联系人同步为朋友。除了将返回的这些联系人作为朋友端点中的朋友添加之外,Singly还会允许您看到哪些同龄人已经在使用该应用程序。更多详细信息,请参阅同龄人文档

// Observe for Contacts Sync Notifications
[NSNotificationCenter.defaultCenter addObserverForName:kSinglyContactsSyncedNotification
                                                object:nil
                                                queue:nil
                                                usingBlock:^(NSNotification *notification) {

    NSArray *syncedContacts = (NSArray *)notification.userInfo;
    NSLog(@"Synced Contacts: %@", syncedContacts);
}];

// Sync Contacts
[SinglySession.sharedSession syncDeviceContacts];

构建示例应用程序

Singly SDK附带的示例应用程序演示了SDK的所有功能。

提供您的客户端ID和客户端密钥

在您构建和运行示例应用程序之前,您需要在SinglyConfiguration.h中提供您的客户端ID和客户端密钥。

启用本地Facebook授权(可选)

请参阅以下说明(在“本地Facebook授权”下)以启用Facebook应用程序回退尝试的测试。

构建和运行!

在完成配置后,只需在模拟器中构建并运行项目即可。

如果您希望在iPhone或iPad上运行示例,您需要使用适用于您的设备和Apple开发者账户的配置为项目配置,这超出了本文档的范围。

API文档

在克隆项目后,您将在SinglySDK/Documentation文件夹中找到生成的文档。这些文档会随着Xcode中框架每次成功构建而自动重新生成,前提是您已安装appledoc

您还可以在http://singly.github.com/iOS-SDK/api查看最新版本的文档或通过Xcode订阅它,链接为http://singly.github.com/iOS-SDK/api/SinglySDK.atom

本地Facebook授权

Singly SDK直接与设备通信,以支持iOS 6+上的授权,并将尝试回退到已安装的Facebook应用程序,然后是内置的Singly基于Web的授权。要使Facebook应用程序回退正常工作,您需要执行以下步骤:

在Facebook上配置您的应用程序

Facebook Developers网站上,您需要创建并配置您的应用程序作为“原生iOS应用程序”。您需要设置Info.plist中定义的打包标识符。

注册您的应用程序以处理Facebook URL

您必须在Info.plist中添加以下内容,用您实际的Facebook App ID替换0:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb000000000000000</string>
        </array>
    </dict>
</array>

配置您的应用程序委托以通过URL启动

当无法实现原生集成时,我们回退到启动Facebook应用程序(如果已安装)以完成授权工作流程。为了实现这一点,您需要确保您的应用程序委托实现以下方法,以便完成双向过程

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
  return [SinglySession.sharedSession handleOpenURL:url];
}

需要帮助?

我们可以回答您的问题,帮助您解决集成问题,并调查我们服务和SDK可能存在的错误。

  • 发现了错误?如果您认为您发现了SDK中的错误,请花点时间在文件错误,并提供尽可能多的关于问题的信息。

  • 加入我们吧。对于问题或只是想打个招呼并炫耀您正在构建的内容,欢迎加入我们的Support HipChat并与我们交谈!

您还可以通过[email protected]@opieSupport HipChat联系Singly iOS SDK的维护者,Justin Mecham。

许可

Singly iOS SDK在BSD许可协议的条款下许可。有关更多信息,请参阅LICENSE文件。