成功登录、授权并检索访问令牌后,我想通过 foursquare API 检查当前用户是否进入场地。根据文档,
venueId
只有一个必需参数,我在搜索场地方法中成功检索到了该参数。文档还说请求需要包含 oauth 令牌,所以我也包含了它。
令牌字符串是正确的,我已经检查过,
venueId
也是如此,但我仍然得到这个......我不知道为什么,但我已经做了我应该做的一切,任何想法?
SUCCESS: {
meta = {
code = 400;
errorDetail = "Missing access credentials. See https://developer.foursquare.com/docs/oauth.html for details.";
errorType = "invalid_auth";
};
response = {
};
}
在签入方法内部...(就像我说的,令牌字符串在那里并且正确,就像
venueId
一样)
if let tokenStr = NSUserDefaults.standardUserDefaults().objectForKey("tokenKey") as? String {
print("Checkin token string: \(tokenStr)")
Alamofire.request(.POST, "https://api.foursquare.com/v2/checkins/add", parameters: ["venueId" : "\(self.nearestPlaceID!)", "oauth_token" : "\(tokenStr)"], encoding: .JSON, headers: nil).responseJSON(completionHandler: { (response) -> Void in
print(response.request)
print(response)
})
}
我发现了,它需要“v”和“m”参数以及内容类型标头!
Alamofire.request(.POST, "https://api.foursquare.com/v2/checkins/add", parameters: ["venueId" : "\(self.nearestPlaceID!)", "oauth_token" : "\(tokenStr)", "v" : "\(foursquareVersion)", "m" : "foursquare"], headers: ["Content-type" : "application/x-www-form-urlencoded"]).responseJSON(completionHandler: { (response) -> Void in
print(response.request)
print(response)
})