Ich versuche, Zugriffstoken für Instagram zu erhalten, aber häufiger Fehler You must provide client id
. Ich denke, es ist ein Serialisierungsproblem, da meine Parameter nicht richtig serialisiert werden. Ich versuchte es auf POSTMAN
und es funktioniert gut, aber auf NSURLSession
es Fehler wirft.NSURLSession Serialisierungsfehler mit Post-Anfrage
ERROR
{
code = 400;
"error_message" = "You must provide a client_id";
"error_type" = OAuthException;
}
Was mache ich hier falsch, während es die Serialisierung.
let instaInfoDict = NSDictionary(objects: ["client_id","client_secret","grant_type","redirect_uri","code"], forKeys: [kCLientIdInstagram,kCLientSecretIdInstagram,"authorization_code",kRedirectUriInstagram,code])
// Hit post request with params
WebServices().postRequest(kAccessTokenGenerationInstagram, bodyData: instaInfoDict, completionBlock: { (responseData) in
print(responseData)
})
//WEBSERVICE CLASS:
func postRequest(url:String, bodyData:NSDictionary, completionBlock:WSCompletionBlock){
if let url = NSURL(string: url){
let headers = [
"Accept": "application/json",
"content-type": "application/json"]
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url, cachePolicy: .UseProtocolCachePolicy, timeoutInterval: 10)
request.HTTPMethod = "POST"
request.allHTTPHeaderFields = headers
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(bodyData, options: [.PrettyPrinted])
let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) in
if error != nil {
// Handle error
completionBlock!(responseData:nil)
}
else{
//Parsing the data
let parsedData = parseJson(response as? NSData)
completionBlock!(responseData: parsedData)
}
})
task.resume()
}
}
ich dies versucht haben, auch
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(bodyData, options: NSJSONWritingOptions(rawValue: 0))
Ja, mein Fehler war, dass ich 'json' Daten gepostet habe, aber 'Instagram' akzeptiert entweder' url-kodierte oder multipart/form Daten '. – ankit