StravaSwift
这是对 Strava v3 API 的 Swift 包装。
因为这是一个充满热情的项目,所以只有在我有时间的时候我才工作。所以,如果您有兴趣贡献,请随时提交 PR。
示例
要运行示例项目,请克隆存储库,然后首先从 Example 目录中运行 pod install
安装
StravaSwift 通过 Swift 包管理器 和 CocoaPods 提供。
Swift 包管理器
dependencies: [
.package(url: "https://github.com/mpclarkson/StravaSwift.git", from: "1.0.0")
]
Cocoapods
要安装它,只需将以下行添加到您的Podfile中
pod "StravaSwift", '~> 1.0.0'
快速开始
完整的库文档可在此处找到。
-
首先,您必须在Strava注册您的应用并获得OAuth
client id
和client secret
。 -
以下是如何初始化Strava客户端,建议在您的
AppDelegate.swift
中执行,以确保在调用之前已进行配置
let config = StravaConfig(
clientId: YourStravaClientId,
clientSecret: YourStravaClientSecret,
redirectUri: YourRedirectUrl
)
StravaClient.sharedInstance.initWithConfig(config)
-
请注意,默认情况下OAuth令牌仅在应用运行期间可用,这意味着您需要请求新的令牌。您可以通过在《StravaConfig》初始化器中重写默认的令牌
delegate
来实现自定义令牌存储和检索行为,该初始化器必须实现《TokenDelegate》协议。 -
在您的《info.plist》文件中注册您的重定向URL方案。
-
默认情况下,认证将使用已安装在设备上的Strava应用。如果用户没有安装Strava,它将回退到iOS版本的《SFAuthenticationSession》或《ASWebAuthenticationSession》。如果您的应用链接在iOS 9.0或更高版本上,您必须将《strava》添加到您的应用的《info.plist》文件中。它应该是《LSApplicationQueriesSchemes》键下的数组条目。如果未执行此操作,则调用《canOpenUrl:》时会导致崩溃。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>strava</string>
</array>
- 在您的《AppDelegate.swift》中实现以下方法以处理来自Strava的OAuth重定向
let strava = StravaClient.sharedInstance
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return strava.handleAuthorizationRedirect(url)
}
- 在授权后,您可以开始请求资源
strava.authorize() { result in
switch result {
case .success(let token):
//do something for success
case .failure(let error):
//do something for error
}
}
- 请求资源
《Router》的实现基于这个Alamofire 示例
strava.request(Router.athletes(id: 9999999999)) { (athlete: Athlete?) in
//do something with the athlete
}
let params = [
'page' = 2,
'per_page' = 25
]
strava.request(Router.athleteActivities(params: params) { (activities: [Activity]?) in
//do something with the activities
}
待办事项
- 100% API 覆盖率(目前约90%)
- 文档
- 测试
- 更好的示例应用
作者
Matthew Clarkson,[email protected]
许可
StravaSwift根据MIT许可发布。查看LICENSE文件以获得更多信息。