Foursquare API 检查 Alamofire 请求的问题

问题描述 投票:0回答:1

成功登录、授权并检索访问令牌后,我想通过 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)
    })

}
ios swift2 alamofire foursquare
1个回答
0
投票

我发现了,它需要“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)
        }) 
© www.soinside.com 2019 - 2024. All rights reserved.