如果您使用 Xcode 6 及更高版本,只需将 Swifter Xcode 项目拖到您自己的项目中,并将 SwifteriOS 或 SwifterMac 框架添加为嵌入式框架,即可安装 Swifter。
Swifter 可以与 Twitter 允许的三种不同类型的身份验证协议一起使用。您可以指定要使用的协议,如下所示。 有关每种身份验证协议的更多信息,请查看 Twitter OAuth 帮助。
使用 ACAccount 实例化
// Instantiation using ACAccount
var swifter = Swifter(account: twitterAccount)
// Instantiation using Twitter's OAuth Consumer Key and secret
swifter = Swifter(consumerKey: TWITTER_CONSUMER_KEY, consumerSecret: TWITTER_CONSUMER_SECRET)
// Instantiation using App-Only authentication
swifter = Swifter(consumerKey: TWITTER_CONSUMER_KEY, consumerSecret: TWITTER_CONSUMER_SECRET, appOnly: true)
swifter.authorize(with: callbackURL, success: { accessToken, response in
// ...
}, failure: { error in
// ...
})
swifter.getHomeTimeline(count: 50, success: { json in
// ...
}, failure: { error in
// ...
})
某些 Twitter API 调用允许您使用 user_id
或 screen_name
来获取与用户相关的对象(以及列表的 list_id
/slug
)。 Swifter 提供了一个解决方案,可以防止用户意外使用错误的方法,并且没有返回任何内容。 有关更多信息,请查看 SwifterTag.swift
文件。
swifter.getUserFollowersIDs(for: .id(userId), success: { json, prev, next in
// alternatively, you can use .screenName(userName)
// ...
}, failure: { error in
// ...
})
swifter.getListSubscribers(for: .slug(listSlug, owner: .screenName(userName)), success: { json, prev, next in
// alternatively, you can use .id(listId)
// ...
}, failure: { error in
// ...
})
此外,对于接受屏幕名称数组或 userIDs 数组的方法,还有 .screenName(arrayOfUserNames)
和 .id(arrayOfIds)
。
重要提示:Twitter 已弃用流式 API,转而使用新的 帐户活动 API。 您可以在此处找到有关迁移到新 API 的更多信息。 Twitter 计划于 2018 年 8 月 16 日删除旧的流式 API,Swifter 将在此之后不久删除其端点。
swifter.streamRandomSampleTweets(progress: { status in
// ...
}, stallWarnings: { code, message, percentFull in
// ...
}, failure: { error in
// ...
})
swifter.postTweet(status: "Hello, world.", success: { status in
// ...
}, failure: { error in
// ...
})
为了简化访问 Twitter 请求返回的数据,Swifter 提供了一个用于表示 JSON 的类,您可以像与字典一样与它交互。 使用它的主要优点是,与 Dictionary<String, AnyObject> 相比,它可以更好地与 Swift 严格的类型系统配合使用,并且不需要您不断地向下转换访问的对象。 它还消除了对大量可选链的需求,从而使您的代码更加简洁易读。
这是一个示例,说明如何访问状态列表中第一个元素的文本
if let statusText = statuses[0]["text"].string {
// ...
}
在 Twitter REST API v1.1 中,每个客户端应用程序都必须使用 consumer key 和 consumer secret 令牌进行身份验证。 您可以在 Twitter 的开发人员网站上为您的应用程序请求 consumer 令牌。
如果您使用 SSO 授权,则应将 URL-Scheme 添加到您的 Info.plist。 将 $(TWITTER_CONSUMER_KEY) 替换为您的 CONSUMER KEY。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>swifter-$(TWITTER_CONSUMER_KEY)</string>
</array>
</dict>
</array>
Swifter 在 MIT 许可证下获得许可。 有关更多信息,请参阅 LICENSE 文件。