j'utilise Swift4: je veux me connecter à l'application avec Twitter, mais lorsque j'appuie sur Login avec le bouton Twitter, j'ai l'erreur suivante:
URL de rappel non approuvée pour cette application cliente. Les URL de rappel approuvées peuvent être ajustées dans les paramètres de votre application "UserInfo = {NSLocalizedDescription = URL de rappel non approuvée pour cette application client. Les URL de rappel approuvées peuvent être ajustées dans les paramètres de votre application} ) ")
j'avais suivi cette documentation et défini toutes les variables plist et le délégué de l'application également, c'est mon code dans la page de connexion:
@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)
}
}
}
}
et
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)
}
}
}
je définirais une URL de rappel dans les paramètres de l'application pour développeur Twitter, quelqu'un sait-il quel est le problème?
Dans votre tableau de bord Twitter, allez à: https://apps.Twitter.com Allez dans l'onglet Paramètres et ajoutez l'URL de rappel suivante.
twitterkit-<consumerKey>://
c'est-à-dire twitterkit-4bvXXXXXXNFfOXXwrXXXXXXmT: //
Twitter dev a mis à jour ses règles, vous pouvez ouvrir votre site web pour développeurs, trouver le réglage des URL de rappel, ajouter celui-ci:
Pour Android
twittersdk: //
Pour iOS, s'il vous plaît se référer
https://stackoverflow.com/a/50850233/5740236
https://stackoverflow.com/a/50662575/5740236
et ce sera un travail, souhaitez résoudre votre problème
Ajoutez twittersdk: // en tant qu’URL de rappel unique dans les paramètres de votre application Twitter https://apps.Twitter.com/ puis essayez. Cela a fonctionné pour moi.