Snapper 0.64.4

Snapper 0.64.4

测试测试过
Lang语言 Obj-CObjective C
许可证 MIT
Released最后发布2015 年 10 月

Paul Schifferer 维护。



Snapper 0.64.4

  • Paul Schifferer

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 对象的应用程序在对象为这些类型而不是字典时才会进行操作。

  • ACL
  • 注释
  • 频道
  • 配置
  • 描述
  • 实体
  • 文件
  • 过滤器
  • 过滤子句
  • 标签
  • 图像
  • 交互
  • 链接
  • 提及
  • 消息
  • 地点
  • 帖子
  • 流标记
  • 令牌
  • 用户

以下是一些模型对象的备注需要顺序排列。

访问控制列表(Access Control List, ACL)

这是包含在Channel对象的readerswriters属性内的对象。

注释(Annotation)

代表PostMessageUser的注释。注意,value属性仅是一个字典,以允许注释内在的灵活性。

描述

该对象代表包含在User对象中的字典。请注意,它不包含包含间接mentionslinkshashtags数组属性的entities属性;这些属性存在于该对象的顶部。

实体(Entity)

这是一个被MentionLinkHashtag对象继承的抽象对象。它可能永远不会直接使用,但它提供了这些实体的公共基础。

操作(Operations)

所有操作都通过块来提供它们的响应。除了少数例外,这些块的签名包含一个参数:SNPResponse

在Snapper中定义的操作太多,无法在此列出。请浏览源代码或标题以查看哪些操作可用。操作命名是为了使其与在官方App.net API文档中记录的资源完全或不完全对应。

杂项(Miscellaneous)

响应和元数据

响应封装在SNPResponse对象中。在响应对象中有一个data属性(一个ID,因为结果可以是对象、字典或对象的数组,具体取决于端点),还有一个metadata属性。metadata属性是一个包含某些组合错误信息、流标记信息和/或分页数据的SNPMetadata对象。

在处理操作的响应时,首先检查data属性:如果它是nil,则可能存在错误,并且SNPMetadata对象的各个错误属性将提供更多详细信息。

API工具

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

在此特此授予任何获得本软件及其相关文档(以下简称“软件”)副本的任何人,完全免费地使用、复制、修改、合并、发布、分发、再许可或出售软件副本的权利,并允许取得软件副本的个人为此目的而使用软件,前提是遵守以下条件

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

软件按“现状”提供,不提供任何形式的保证,无论是明示的、默示的还是法律上规定的,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权持有人均不对任何索赔、损害或任何其他责任负责,无论这些责任是因合同、侵权或其他行为引起的,无论是在软件或其使用或其他方面。