Je travaille avec la nouvelle API Lyft, dans la section Authentification, elle indique d'envoyer une requête pour un jeton d'accès et affiche un exemple de réponse, avec une clé appelée "jeton d'accès".Problèmes d'accès à la valeur clé dans la réponse JSON de NSURLSession (API Lyft)
Exemple de réponse
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token": <access_token>,
"token_type":"bearer",
"expires_in":3600,
"scope": "public"
}
Pourtant, quand je fais l'appel (Oui, le ClientID et secret sont corrects, mais je ne peux pas les poster ici) il renvoie une réponse, mais le jeton d'accès est nul.
Merci pour l'aide comme toujours! lien Doc est ci-dessous,
docs API,
https://developer.lyft.com/docs/authentication
func authorize() {
let authString = NSString(format: "%@:@%", clientID, clientSecret)
let authData = authString.dataUsingEncoding(NSUTF8StringEncoding)
let base64String = authData!.base64EncodedDataWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
let url = NSURL(string: "https://api.lyft.com/oauth/token")
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "GET"
request.setValue("Basic \(base64String)", forHTTPHeaderField: "Authorization")
let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
let dictionary = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
if let accessToken : String = dictionary["access_token"] as? String {
print(accessToken)
}
}
task.resume()
}
Qu'est-ce qui se passe si vous appelez 'base64EncodedStringWithOptions' au lieu de' base64EncodedDataWithOptions'? – bringel
Exactement la même chose arrive ... bien que j'ai découvert en parlant au personnel de soutien à Lyft que c'est censé être un "POST" et non "GET" bien que même alors je ne reçois pas la bonne réponse. – Echizzle
@Echizzle: Je fais la même intégration, avez-vous des mises à jour à ce sujet. –