Twitter OAuth抛出'桌面应用程序仅支持iOS应用程序上的oauth_callback值oob'

时间:2017-03-03 16:14:01

标签: ios swift twitter oauth oauth-2.0

因此,我目前正试图通过使用OAuthSwift插件来获取Twitter工作的授权,我试图让它与OAuth1和OAuth2一起使用,但都失败并且有不同的错误/问题。

因此,对于OAuth2,我得到了这个回复

  

哇那里!   此页面没有请求令牌。这是我们要求使用您的Twitter帐户的应用程序所需的特殊密钥。请返回发送给您的网站或应用程序,然后重试;这可能只是一个错误。

我正在使用以下代码

let oauthswift = OAuth2Swift(
            consumerKey: Twitter.consumerKey,
            consumerSecret: Twitter.consumerSecret,
            authorizeUrl: Twitter.authorizeURL,
            accessTokenUrl: Twitter.accessTokenURL,
            responseType: Twitter.responseType!)

let state = generateState(withLength: 20)

        oauthswift.authorize(
            withCallbackURL: "https://oauthswift.herokuapp.com/callback/twitter",
            scope: "",
            state: state,
            success: { credential, response, parameters in
                print("logged in with \(credential), with response \(response) and parameters \(parameters)")
            },
            failure: { error in
                print("error occured \(error.localizedDescription)")
            }
        )

然后我继续使用OAuth1,这给了我错误 Desktop applications only support the auth_callback value 'oob'虽然我显然是想从iOS应用程序中执行此操作。

我在这里使用的代码如下

let oauthTwitter = OAuth1Swift(
            consumerKey: "myKey",
            consumerSecret: "mySecret",
            requestTokenUrl: "https://api.twitter.com/oauth/request_token",
            authorizeUrl: "https://api.twitter.com/oauth/authorize",
            accessTokenUrl: "https://api.twitter.com/oauth/access_token")

oauthswift.authorize(
            withCallbackURL: "https://oauthswift.herokuapp.com/callback/twitter",
            scope: "",
            state: state,
            success: { credential, response, parameters in
                print("logged in with \(credential), with response \(response) and parameters \(parameters)")
            },
            failure: { error in
                print("error occured \(error.localizedDescription)")
            }
        )

我希望有人能够告诉我这里我做错了什么,因为我似乎无法弄明白。

2 个答案:

答案 0 :(得分:1)

问题最终导致我设置了错误的网址方案。它包含_,但不允许使用。

答案 1 :(得分:0)

就我而言,我没有在Twitter Dev网站上为该应用设置回调URL-https://developer.twitter.com/en/apps