У OAuthSwift нет члена 'accessTokenBasicAuthentification' - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь использовать библиотеку OAuthSwift, чтобы получить токен авторизации для пользователя, входящего в систему со своей учетной записью Twitch. Я использую пример кода, но я думаю, что есть проблема со Swift 5. Я использую XCode версии 10.3 (10G8):

    // create an instance and retain it
    oauthswift = OAuth2Swift(
        consumerKey:    "***",
        consumerSecret: "***",
        authorizeUrl: "https://id.twitch.tv/oauth2/validate",
        responseType: "code"
    )
    oauthswift.accessTokenBasicAuthentification = true

    //let codeVerifier = base64url("abcd...")
    //let codeChallenge = codeChallenge(for: codeVerifier)

    let handle = oauthswift.authorize(
        withCallbackURL: URL(string: "localhost")!,
        scope: "", state:"TWITCH") { result in
            switch result {
            case .success(let (credential, response, parameters)):
                print(credential.oauthToken)
            // Do your request
            case .failure(let error):
                print(error.localizedDescription)
            }
    }
} 

Я получил ошибку в строке oauthswift.accessTokenBasicAuthentification = true:

Value of type 'OAuthSwift?' has no member 'accessTokenBasicAuthentification'

И тогда я получаю сообщение об ошибке в строке let handle =:

Value of type 'OAuthSwift?' has no member 'authorize'

Любая помощь будет принята с благодарностью.

Спасибо!

РЕДАКТИРОВАТЬ: Может быть проблема с Cocoapods. Я не могу сделать pod 'OAuthSwift', '~> 2.0.0', says it can't find that version. Just installing using pod 'OAuthSwift' без номера версии, просто устанавливает v1.3.0

РЕДАКТИРОВАТЬ 2:

Понял! Благодаря Кириллу я смог обновить библиотеку до v2 (я использовал pod install вместо pod update). Затем, когда библиотека обновилась, мне пришлось добавить инициализатор let. Обновленный код:

// create an instance and retain it
        let oauthswift = OAuth2Swift(
            consumerKey:    "***",
            consumerSecret: "***",
            authorizeUrl: "https://id.twitch.tv/oauth2/validate",
            responseType: "code"
        )

        self.oauthswift = oauthswift
        oauthswift.accessTokenBasicAuthentification = true
...