一个使 Objective-C 与 Goodreads 集成 OAuth 更轻松的项目
创建此库的目标是尽可能容易地将 Goodreads 集成到 iOS 应用中。所有方法都是类方法,这样你就不必在需要使用 API 的每个地方传递对象。然而,因此导致的结果是版本 1.0 的 UI 不能不编辑源码进行自定义。如果您有建议、请求或希望贡献,请创建一个问题,通过 [email protected] 发送电子邮件,或直接提交拉取请求。
底层的 OAuth 库是 Christian Hansen 的,可在 https://github.com/Christian-Hansen/simple-oauth1 找到。我进行了小修改,以便库专门支持 Goodreads 而不是 LinkedIn。
git clone https://github.com/yjkogan/goodreads-oauth.git
Dependencies
目录,以及 GROAuth.h
和 .m
文件。最简单的方法是将它们拖到项目文件导航器中。使用你的 API 密钥调用 [GROAuth setGoodreadsOAuthWithConsumerKey:YOUR_KEY secret:YOUR_SECRET]
来初始化 GROAuth。建议你在 appDelegate 的 application: didFinishLaunchingWithOptions:
中做这个操作。
要登录用户并(如果还没有)要求他们授权您的应用,只需调用 GROAuth loginWithGoodreadsWithCompletion:
。这将在一个新的webview窗口上进行用户登录。如果发生错误(用户未授权您的应用、网络问题等),它将通过完成块传递。否则,您将收到一个包含 oauth_token
和 oauth_token_secret
的字典,这些是您需要用于签名请求的访问令牌。
所有发送给GROAuth的路径应该是Goodreads API文档中列出的路径,去除前缀 http://goodreads.com
,例如,如果您要使用 auth.user
方法,您应该提供路径 api/auth_user
。这个路径会连接到Goodreads的主URL。由于某种原因,并非所有API路径都以 /api
开头...
有许多方便的方法可以访问Goodreads的数据。但最重要的是,每种方法都有两个版本:一个需要访问令牌,一个不需要。不使用访问令牌的方法默认使用最近获取的访问令牌。
另一个需要注意的是,从返回 NSDictionary 的调用返回的字典比较难以使用。如果有人有关于使用 https://github.com/nicklockwood/XMLDictionary 的建议,请告诉我。
向不需要OAuth的API路径发送OAuth签名查询将返回HTML文档而不是XML文档,因此需要这些额外的函数。如果请求需要将您的密钥作为参数(可能所有请求都如此,但我尚未检查),您可以轻松地使用 [GROAuth consumerKey]
获取它。在关于返回的NSDictionaries的OAuth查询中也有相同的限制。
Goodreads-OAuth在MIT许可证下发行
MIT许可证(MIT)
版权所有 © 2013 Yonatan Kogan
特此授予任何获得本软件及其相关文档副本(以下称为“软件”)的人免费使用权,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、出版、分发、再许可和/或出售软件副本,允许向提供软件的人提供上述权利,前提如下:
上述版权声明和本许可声明应包含在本软件或其大部分副本中。
本软件按“现状”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,不论是由于合同、侵权或其他方式引起的,与软件有关或源于使用或otherwise.