PocketAPI 1.0.3

PocketAPI 1.0.3

测试已测试
语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年1月

姓名维护。



PocketAPI 1.0.3

  • Michael Schneider, Steve Streza, James Yopp 和 Nate Weiner

欢迎!

感谢您查看 Pocket SDK。只需几行代码,您的应用程序即可快速支持将 URL 保存到用户的 Pocket 列表中。

安装 Pocket SDK

Pocket SDK 是将 Pocket 集成到任何 iOS 或 Mac 应用程序的最快方式。将 Pocket SDK 添加到应用程序非常简单。按照以下步骤操作,您可以在 15 分钟内从您的应用程序将 URL 保存到 Pocket。

第 1 步:下载 Pocket SDK

您可以在以下位置下载 SDK:http://getpocket.com/api/v3/pocket-objc-sdk.zip

您还可以从 GitHub 中查看/检查 SDK:http://github.com/pocketco/Pocket-ObjC-SDK。如果您使用,建议通过在您存储库的根目录中运行 git submodule add git://github.com/Pocket/Pocket-ObjC-SDK.git <path> 将 Pocket SDK 添加为项目的 git 子模块,将 <path> 替换为您希望它安装到的路径。

如果您使用 CocoaPods,您可以将 PocketAPI pod 添加到 Podfile。然后运行 pod install,Pocket SDK 将可用在项目中。有关设置新或现有项目的文档,请参阅 CocoaPods 网站上的文档。

项目下载包括 SDK 和示例项目。

第 2 步:将 Pocket SDK 添加到您的项目

  • 打开您的现有项目。
  • 将从示例项目中拖动 SDK 文件夹到您的 Xcode 项目中。
  • 确保选中了“如果需要,将项目复制到目标组文件夹中”复选框。
  • 在项目导航器中选择您的 Xcode 项目,选择您的应用程序目标,选择“构建阶段”,并将 Security.framework 添加到“链接二进制与库”阶段。

SDK 包含所有必要的源文件,没有其他依赖项。

第 3 步:获取平台消费者密钥

当您在 Pocket 上注册您的应用程序时,它将为您提供一个平台消费者密钥。此密钥用于识别您的应用程序以 Pocket 的 API。

如果您尚未获取消费者密钥,您可以在 http://getpocket.com/api/signup 注册一个。

第 4 步:添加 Pocket URL 方案

一旦您获得了所支持平台的消费者密钥,应用程序必须注册一个 URL 方案以接收登录回调。默认情况下,这是 "pocketapp" 加上您应用程序的 ID(您可以在消费者密钥中的短划线之前找到它)。因此,如果您的消费者密钥是 42-abcdef,您的应用程序 ID 是 42,并且您的 URL 方案将是 "pocketapp42"。 

如果您的应用程序的 Info.plist 中已经有 URL 方案,您可以添加新的 URL 方案,或者通过调用 [[PocketAPI sharedAPI] setURLScheme:@"YOUR-URL-SCHEME-HERE"] 使用现有的方案。要添加 URL 方案,请在 Info.plist 中创建一个如下所示的块,并用应用程序的方案更新它

▾ URL Types (Array)
    ▾ Item 0 (Dictionary)
          URL Identifier (String) com.getpocket.sdk
        ▾ URL Schemes (Array) (1 item)
            Item 0  (String) [YOUR URL SCHEME, like "pocketapp42"]

或者,您可以直接将以下内容复制粘贴到 Info.plist 的 XML 源中

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.readitlater</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>pocketapp9553</string>
        </array>
    </dict>
</array>

第 5 步:配置您的 App Delegate

设置 Pocket SDK 的最终步骤是在主应用程序委托中添加一些代码。这是包含 iOS 所需方法(如 applicationDidFinishLaunching)的类。

导入 PocketAPI 头文件

在您应用程序委托的源文件顶部(以及您调用 PocketAPI 对象的任何地方),您需要包含 PocketAPI 头文件。您可能在类的顶部已经看到了其他导入。只需添加以下行

#import "PocketAPI.h"

设置您的平台消费者密钥

Pocket SDK 需要您的消费者密钥才能向 API 发出请求。在启动应用程序时,使用您的注册消费者密钥调用此方法

[[PocketAPI sharedAPI] setConsumerKey:@"Your Consumer Key Here"];

为 Pocket URL 方案添加一个方法

最后一步是给 SDK 机会处理传入的 URL。如果您还没有在应用程序委托中实现此方法,只需添加以下方法

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

    if([[PocketAPI sharedAPI] handleOpenURL:url]){
        return YES;
    }else{
        // if you handle your own custom url-schemes, do it here
        return NO;
    }

}

第 6 步:开始将内容保存到 Pocket!

在此阶段,您已正确安装了 SDK,现在可以开始发出请求并将 URL 保存到 Pocket。这里有一个示例

NSURL *url = [NSURL URLWithString:@"http://google.com"];
[[PocketAPI sharedAPI] saveURL:url handler: ^(PocketAPI *API, NSURL *URL, NSError *error){
    if(error){
        // there was an issue connecting to Pocket
        // present some UI to notify if necessary

    }else{
        // the URL was saved successfully
    }
}];

上述示例使用了需要 iOS 4.0 或更高版本的 blocks。如果需要支持 iOS 3.0,可以使用 [linkto:delegate 或 operation based methods]。 

管理账户/处理用户登录

按照 Pocket API的最佳实践,您可能希望提供一种方法让用户管理他们登录的账户。通常,这是通过在应用程序的选项屏幕中添加一个设置来处理的,允许用户配置他们的 Pocket 账户。当用户点击它时,您可以简单地调用一行代码,这将处理整个授权过程。

[[PocketAPI sharedAPI] loginWithHandler: ^(PocketAPI *API, NSError *error){
if (error != nil)
{
    // There was an error when authorizing the user. The most common error is that the user denied access to your application.
    // The error object will contain a human readable error message that you should display to the user
    // Ex: Show an UIAlertView with the message from error.localizedDescription
}
else
{
    // The user logged in successfully, your app can now make requests.
    // [API username] will return the logged-in user’s username and API.loggedIn will == YES
}
}];

还建议您观察 PocketAPI 的 username 和 loggedIn 属性的变化,以确定已登录用户的更改。如果 iOS 在后台终止您的应用程序(例如,由于内存限制),任何挂起的登录尝试将在启动时自动保存和恢复(如果需要)。因此,您的委托/块响应可能不会被调用。如果需要在用户登录更改时更新 UI,请在应用程序启动时注册 PocketAPI 的观察者。

调用其他Pocket API

要调用其他任意API,需要传递API的方法名、HTTP方法名和一个参数的NSDictionaries。将包含API响应的NSDictionaries传递到处理程序。

NSString *apiMethod = ...;
 PocketAPIHTTPmethod httpMethod = ...; // usually PocketAPIHTTPMethodPOST
 NSDictionary *arguments = ...;

 [[PocketAPI sharedAPI] callAPIMethod:apiMethod
                       withHTTPMethod:httpMethod
                            arguments:arguments
                              handler: ^(PocketAPI *api, NSString *apiMethod, NSDictionary *response, NSError *error){
    // handle the response here
 }];

致谢

Pocket SDK使用了以下开源软件

许可

版权所有 © 2012 Read It Later, Inc.

特此赋予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许软件提供方以本协议规定的条件使用软件。

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他原因,也不论这种责任是由于、源于或与本软件或其使用或其他交易有关。