MapMyFitness API 请求出现错误 403
Posted
技术标签:
【中文标题】MapMyFitness API 请求出现错误 403【英文标题】:Error 403 on MapMyFitness API request 【发布时间】:2016-11-29 09:56:26 【问题描述】:我正在尝试在 MapMyFitness
API (Oauth2) 上执行一些请求。
我可以使用 oauth2 标识获取我的Authorization Code
,但现在我需要请求某些路由。
这是请求:
Alamofire.request(self.oauthClient.baseURL() + "workout/",
method: .get,
parameters: nil,
headers: authorizationHeader
)
.validate()
.responseData [weak self] (response) in
switch response.result
case .success(let data):
do
let jsonResponse = try JSON(data: data)
success(items);
self?.isLoading = false;
catch
self?.isLoading = false;
failed(nil)
break;
case .failure(let error):
print(error);
self?.isLoading = false;
failed(error)
break;
在标题中是这样的授权代码:
"Authorization": "Bearer ***********************************"
这里是关于路由 API 的文档:https://developer.underarmour.com/docs/v71_Workout
Alamofire 错误:
responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(403))
我错过了什么吗?谢谢
【问题讨论】:
你能分享你的代码来进行 OAuth2 授权吗?你是用swift3写的吗?我试图找到 swift3 的任何教程,但那里什么都没有:/ @pawisonon 用您的代码和问题提出问题,我会尽力回答您。 这里:***.com/questions/43524410/… 【参考方案1】:发现问题!
如果您使用 MapMyFitness API,则必须使用 https://www.mapmyfitness.com/v7.1/
url 进行身份验证,但当您需要请求路由时,它是 https://api.ua.com/v7.1/
。
此外,您需要在标题中添加"api-key"
。
["Authorization": "Bearer ***********************************", "api-key": client_id]
你需要在 params 中设置一个 user_id。
var params = ["user" : self.userID, field_set: "time_series"] as [String : Any]
这些信息不在文档中。
这是我最后的要求:
self.authorizationHeader.updateValue(self.clientID, forKey: "api-key")
var params = ["field_set" : "time_series",
"user" : self.userID] as [String : Any]
Alamofire.request(self.url + "/workout/",
method: .get,
parameters: params,
headers: self.authorizationHeader
)
.validate()
.responseData [weak self] (response) in
switch response.result
case .success(let data):
do
let jsonResponse = try JSON(data: data)
success(items);
catch
failed(nil)
break;
case .failure(let error):
print(error);
failed(error)
break;
【讨论】:
以上是关于MapMyFitness API 请求出现错误 403的主要内容,如果未能解决你的问题,请参考以下文章
python 用于下载和绘制MapMyFitness数据的代码
通过地理编码 API 的 Web 请求出现错误 407(代理身份验证请求)
Axios 发布请求被烧瓶制作的 api 拒绝。 CORS错误即将出现[重复]
我在单个请求中使用 spotify api 出现错误 429