swift4:未批准此客户端应用程序的回调URL

我正在使用swift4:我想通过Twitter登录应用程序,但是当我按下使用twitter按钮登录时出现此错误:

未批准此客户端应用程序的回调URL。 可以在您的应用程序设置中调整已批准的回调URL“UserInfo = {NSLocalizedDescription =未批准此客户端应用程序的回调URL。可在您的应用程序设置中调整已批准的回调URL}错误:可选(”请求失败:禁止(403)“)

我已经按照这个文档设置了所有plist变量和app delegate,这是我登录页面中的代码:

@IBAction func loginWithTwitter(_ sender: Any) { TWTRTwitter.sharedInstance().logIn(completion: { (session, error) in if let sess = session { print("session: ",sess.authToken, sess.authTokenSecret, sess.userID, sess.userName) self.loginWithTwitter(twitter_id: sess.userID, name: sess.userName) } else { print("error: ", error?.localizedDescription as Any) } }) } func loginWithTwitter(twitter_id: String, name: String) { self.deviceMac = UIDevice.current.identifierForVendor!.uuidString KRProgressHUD.show(withMessage: "انتظر ....") API.loginWithTwitter(mac:self.deviceMac, twitter_id: twitter_id, name: name, token: self.token) { (error: Error?, success: Bool, value: Any) in if success { KRProgressHUD.dismiss() let json = JSON(value) print(json) if(json["token"] != "") { let token = json["token"].string let def = UserDefaults.standard def.set(token, forKey: "token") def.synchronize() Common.setIfTwitterLogin(login: token!) let homeViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController self.present(homeViewController, animated: false, completion: nil) } else { self.errorLable.text = "عذرا لقد حدث خطأ حاول مره أخري" } } else { KRProgressHUD.dismiss() self.errorLable.text = "عذرا لقد حدث خطأ حاول مره أخري" if Connectivity.isConnectedToNetwork(){ print("Internet Connection Available!") }else{ Common.showToast(messsage: "الرجاء التحقق من إتصالك بالإنترنت", view: self.view) } } } } 

 class func loginWithTwitter(mac:String, twitter_id: String, name: String, token: String, completion: @escaping (_ error: Error?, _ success: Bool,_ value: Any) -> Void) { let loginURL = URLs.loginWithTwitter let loginParameters = [ "mac": mac, "twitter_id": twitter_id, "token": token, "name": name] print(loginURL, loginParameters) Alamofire.request(loginURL, method: .post, parameters: loginParameters, encoding: URLEncoding.default, headers: nil) .responseJSON { reponse in switch reponse.result { case .failure(let error): print("error: ", error) completion(error, false, "") case .success(let value): completion(nil, true, value) } } } 

我在twitter开发者应用程序设置中设置了一个回调url,任何人都知道这是什么问题?

在您的Twitter仪表板中访问: https : //apps.twitter.com进入设置选项卡并添加以下回调URL。

 twitterkit-:// 

即twitterkit-4bvXXXXXXNFfOXXwrXXXXXXmT://

Twitter dev更新了规则,你可以打开你的开发者网站,找到Callback URLS的设置,添加这个:

对于Android
twittersdk://

对于iOS,请参阅
https://stackoverflow.com/a/50850233/5740236
https://stackoverflow.com/a/50662575/5740236

它会起作用,希望解决你的问题

在Twitter应用设置https://apps.twitter.com/上添加twittersdk://作为一个回调url,然后尝试一下。 这对我有用。