TikTok Login Kit completion not being called

Viewed 90

I am trying to integrate the TikTok login kit into my app. I've set the credentials and requested delegate methods as the docs say. However, after my app redirects me to TikTok and I authorize, the completion block of the request.send is not called at all.

Delegate Methods

    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

    guard let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
          let annotation = options[UIApplication.OpenURLOptionsKey.annotation] else {
        return false
    }

    if TikTokOpenSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: sourceApplication, annotation: annotation) {
        return true
    }
    return false
}

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    if TikTokOpenSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation) {
        return true
    }
    return false
}

func application(_ application: UIApplication, handleOpen url: URL) -> Bool {
    if TikTokOpenSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: nil, annotation: "") {
        return true
    }
    return false
}

Login View Controller

class TikTokViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    /* STEP 1 */
    let scopes = ["user.info.basic","video.list"] // list your scopes
    let scopesSet = NSOrderedSet(array:scopes)
    let request = TikTokOpenSDKAuthRequest()
    request.permissions = scopesSet
    /* STEP 2 */
    request.send(self, completion: { resp -> Void in
        
        /* STEP 3 */
        if resp.errCode.rawValue == 0 {
            
            
            /* STEP 3.a */
            let clientKey = "..." // you will receive this once you register in the Developer Portal
            if let responseCode = resp.code{

            // replace this baseURLstring with your own wrapper API
            let baseURlString = "https://open-api.tiktok.com/demoapp/callback/?code=\(responseCode)&client_key=\(clientKey)"
            let url = NSURL(string: baseURlString)

            /* STEP 3.b */
            let session = URLSession(configuration: .default)
            let urlRequest = NSMutableURLRequest(url: url! as URL)
            let task = session.dataTask(with: urlRequest as URLRequest) { (data, response, error) -> Void in
                 /* STEP 3.c */
            }
            task.resume()
                
            }
        } else {
            print("ERROR OCCURED")
            // handle error
        }
    })

 }

}
0 Answers
Related