Objective-C 中的 App.net SDK
0.64.4
Snapper 设计用于在 iOS 7.0 或更高版本或 Mac OS X Mavericks (10.9) 或更高版本上运行。
Snapper 需要 ARC,应在 Xcode 5.1 或更高版本的编译和测试中。
Snapper 使用 GitHub 框架 Mantle 用于其模型对象。您需要执行 git submodule update --init --recursive
来下载 Mantle 及其依赖项。
使用 Snapper 假设您熟悉 App.net API,并假设您应用的配置已启用所有迁移。
Snapper 广泛使用块进行进度和完成回调。所有 API 调用都是基于 NSOperation
构建的,以便允许异步活动。在这些操作中不会执行任何古怪的操作,因此您可以像使用任何其他 NSOperation
一样使用它们,包括在需要同步行为时调用 [op waitUntilFinished]
。Snapper 不会提供任何特定的操作队列,因此您可以根据自己的喜好排列操作。
几乎所有的 API 调用都需要某种类型的访问令牌。在这个库的范围内,不包含创建或管理 OAuth 2 访问令牌,或将它们存储在安全位置(例如 iOS 或 Mac OS X 密钥链)的操作。然而,当构建 API 调用时,Snapper 会使用内部账户存储来检索访问令牌。
使用 Snapper 时,首要任务是存储一个或多个访问令牌。这可以这样操作
SNPAccount* account = [[SNPAccountManager sharedAccountManager] createAccountWithName:@"The Pilgrim"
username:@"pilgrim"
userId:1199
accessToken:@"12345"
tokenType:@"Bearer"];
返回的 account
对象包括一个属性,accountId
,其中包含为该账户生成的不可见 ID。您将使用此 ID 对任何需要访问令牌的操作进行操作。
请注意,此账户管理器是 仅运行时 的。账户信息 不会持久化。
以下模型对象被定义。请注意,其中一些对象仅在其他模型对象中使用。请求 NSArray
对象的应用程序在对象为这些类型而不是字典时才会进行操作。
以下是一些模型对象的备注需要顺序排列。
这是包含在Channel
对象的readers
或writers
属性内的对象。
代表Post
、Message
或User
的注释。注意,value
属性仅是一个字典,以允许注释内在的灵活性。
该对象代表包含在User
对象中的字典。请注意,它不包含包含间接mentions
、links
或hashtags
数组属性的entities
属性;这些属性存在于该对象的顶部。
这是一个被Mention
、Link
和Hashtag
对象继承的抽象对象。它可能永远不会直接使用,但它提供了这些实体的公共基础。
所有操作都通过块来提供它们的响应。除了少数例外,这些块的签名包含一个参数:SNPResponse
。
在Snapper中定义的操作太多,无法在此列出。请浏览源代码或标题以查看哪些操作可用。操作命名是为了使其与在官方App.net API文档中记录的资源完全或不完全对应。
响应封装在SNPResponse
对象中。在响应对象中有一个data
属性(一个ID,因为结果可以是对象、字典或对象的数组,具体取决于端点),还有一个metadata
属性。metadata
属性是一个包含某些组合错误信息、流标记信息和/或分页数据的SNPMetadata
对象。
在处理操作的响应时,首先检查data
属性:如果它是nil
,则可能存在错误,并且SNPMetadata
对象的各个错误属性将提供更多详细信息。
SNPAPIUtils
类提供了一些用于构造各种App.net API端点URL的方法。您几乎永远不需要直接使用这些方法。然而,此类提供了一个属性,允许您更改“API根”(即https://alpha-api.app.net/stream/0
),如果出现这种情况(例如,如果App.net发布“开发环境”,或者您创建模拟API服务器进行测试)。
Snapper包括了iOS和Mac OS X的单元测试。为大多数函数提供了单元测试。一个显著的例外是*Operation
类:因为这些类需要OAuth 2访问令牌才能正常工作,创建无人值守的单元测试似乎没有意义。非常感谢对如何在确保安全的前提下使这成为可能的见解。
Snapper遵循MIT许可证。
版权所有 © 2014 Pilgrimage Software
在此特此授予任何获得本软件及其相关文档(以下简称“软件”)副本的任何人,完全免费地使用、复制、修改、合并、发布、分发、再许可或出售软件副本的权利,并允许取得软件副本的个人为此目的而使用软件,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的、默示的还是法律上规定的,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权持有人均不对任何索赔、损害或任何其他责任负责,无论这些责任是因合同、侵权或其他行为引起的,无论是在软件或其使用或其他方面。