swift4:此客户端应用程序未批准回调 URL [英] swift4: Callback URL not approved for this client application

查看:19
本文介绍了swift4:此客户端应用程序未批准回调 URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 swift4:我想用 twitter 登录到应用程序,但是当我用 twitter 按钮按下登录时,我收到了这个错误:

<块引用>

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

我遵循了本文档 并设置所有 plist 变量和应用程序委托,这是我在登录页面中的代码:

@IBAction func loginWithTwitter(_ sender: Any) {TWTRTwitter.sharedInstance().logIn(完成:{(会话,错误)在如果让 sess = session {打印(会话:",sess.authToken,sess.authTokenSecret,sess.userID,sess.userName)self.loginWithTwitter(twitter_id: sess.userID, name: sess.userName)} 别的 {打印(错误:",错误?.localizedDescription as Any)}})}func loginWithTwitter(twitter_id: String, name: String) {self.deviceMac = UIDevice.current.identifierForVendor!.uuidStringKRProgressHUD.show(withMessage: "انتظر ....")API.loginWithTwitter(mac:self.deviceMac, twitter_id: twitter_id, name: name, token: self.token) { (error: Error?, success: Bool, value: Any) in如果成功{KRProgressHUD.dismiss()让 json = JSON(值)打印(json)if(json["token"] != "") {让令牌 = json["token"].string让 def = UserDefaults.standarddef.set(token, forKey: "token")def.synchronize()Common.setIfTwitterLogin(登录:令牌!)让 homeViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeViewController") as!主视图控制器self.present(homeViewController,动画:false,完成:nil)} 别的 {self.errorLable.text = "عذرا لقد حدث خطأ حاول مره أخري"}} 别的 {KRProgressHUD.dismiss()self.errorLable.text = "عذرا لقد حدث خطأ حاول مره أخري"如果 Connectivity.isConnectedToNetwork(){打印(互联网连接可用!")}别的{Common.showToast(消息:الرجاء التحقق من إتصالك بالإنترنت",视图:self.view)}}}}

class func loginWithTwitter(mac:String, twitter_id: String, name: String, token: String, completion: @escaping (_ error: Error?, _ success: Bool,_ value: Any) ->空白) {让 loginURL = URLs.loginWithTwitter让登录参数 = [mac":mac,推特_id":推特_id,令牌":令牌,名称":名称]打印(登录URL,登录参数)Alamofire.request(loginURL, method: .post, parameters: loginParameters, encoding: URLEncoding.default, headers: nil).responseJSON { 回应切换响应结果{案例.失败(让错误):打印(错误:",错误)完成(错误,假,")案例.成功(让价值):完成(零,真,值)}}}

我在 Twitter 开发者应用设置中设置了一个回调 url,有人知道有什么问题吗?

解决方案

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

twitterkit-://

<块引用>

即twitterkit-4bvXXXXXXNFfOXXwrXXXXXXmT://

i'm using swift4: i want to login to the app with twitter, but when i presses login with twitter button i got this error:

Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings" UserInfo={NSLocalizedDescription=Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings} error: Optional("Request failed: forbidden (403)")

i'd followed this documentation and set all plist variables and app delegate also, this is my code in login page:

@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)
            }
        }
    }
}

and

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)
            }
    }
}

i'd set a call back url in twitter developer app setting, any one know what is the problem?

解决方案

In your twitter dashboard Go to: https://apps.twitter.com Go into the settings tab and add following Callback URL.

twitterkit-<consumerKey>://

i.e. twitterkit-4bvXXXXXXNFfOXXwrXXXXXXmT://

这篇关于swift4:此客户端应用程序未批准回调 URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆