I'm trying to login with instagram with new documentation and getting error like Invalid platform app, "code": 400
I am successfully getting code using https://api.instagram.com/oauth/authorize and after getting code i am calling https://api.instagram.com/oauth/access_token for getting access_token but it gave me error.
I am following this documentation : https://developers.facebook.com/docs/instagram-basic-display-api/getting-started
Please help me to solve this.
Thanks in advance.
Use Instagram App ID, Instagram App Secret and remove #_ from received code. Then Make your post request below format.
let urlString = "https://api.instagram.com/oauth/access_token"
let appendedURI = "client_id=\(API.INSTAGRAM_CLIENT_ID)&client_secret=\(API.INSTAGRAM_CLIENTSERCRET)&grant_type=authorization_code&redirect_uri=\(API.INSTAGRAM_REDIRECT_URI)&code=\(code)"
let url = URL(string: urlString)!
let session = URLSession.shared
var request = URLRequest(url: url)
request.httpMethod = "Post"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField:"Content-Type");
request.cachePolicy = URLRequest.CachePolicy.reloadIgnoringCacheData
request.httpBody = appendedURI.data(using: .utf8)
let task = session.dataTask(with: request) { (data, response, error) in
if error == nil {
let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("result=",dataString!)
let task = session.dataTask(with: request) { (data, response, error) in
if error == nil {
let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("result=",dataString!)
do {
if let accDetail = try JSONSerialization.jsonObject(with: data!, options: []) as? [String : Any] {
let accessToken = accDetail["access_token"] as! String
let userID = accDetail["user_id"] as! Int64
completion("success", accessToken, userID)
}
}catch let error {
}
}
}
task.resume()