Soundcloud OAuth 请求 returns 始终无效的客户端

Soundcloud OAuth request returns always invalid client

这是我的 objective-c 从 SoundCloud 获取访问令牌的代码:

- (void) authoriseSoundcloud { NSString *apiUrl = @"<a href="https://api.soundcloud.com/oauth2/token" rel="nofollow">https://api.soundcloud.com/oauth2/token</a>"; NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:[ NSURL URLWithString:apiUrl]]; NSString * params = [NSString stringWithFormat:@"client_id=%@&client_secret=%@grant_type=password&username=%@&password=%@",client,secretKey,fldUsername.text,fldPassword.text ]; [urlRequest setHTTPMethod:@"POST"]; [urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; NSURLSession *defaultSession = [NSURLSession sharedSession];</p> <pre><code>NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { NSLog(@"Response:%@ %@\n", response, error); if(error == nil) { NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; NSLog(@"Data = %@",text); } }]; [dataTask resume];

}

然而,我总是得到结果 401- {"error":"invalid_client"}

但是,该客户端 ID 与那些不需要授权的请求完美配合,我已经多次检查,我的客户端 ID 和密码是正确的。
由于 iOS 在 HTTP post 正文中使用这些参数的样本不多,我假设我的参数列表可能不正确。 Soundcloud 工程师有什么想法吗?

只是一个打字错误,只需在"client_secret=%@"和"grant_type"之间添加“&”,就像这样:

NSString * params = [NSString stringWithFormat:@"client_id=%@&client_secret=%@&grant_type=password&username=%@&password=%@",client,secretKey,fldUsername.text,fldPassword.text ];

像魅力一样工作:)