如何使用OAuth2Swift获取Instagram access_token

时间:2016-11-14 15:04:29

标签: ios swift oauth-2.0 instagram-api

我尝试了所有可能的选项,但重定向URI不会返回access_token。我添加了一个回调URI,我可以要求用户登录并授予访问权限,但我在回拨时收到此错误。

我在Dev门户网站上注册了这个URI,它似乎工作正常:

http://oauthswift.herokuapp.com/callback/instagram

当我尝试使用以下网址在网络浏览器上进行身份验证时

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=http://oauthswift.herokuapp.com/callback/instagram&response_type=token

我确实获得了访问令牌:

Access_Token

当我尝试使用OAuthSwift时,我收到此错误,重定向URI不包含access_token,请说明文档的内容:

Docs

这是错误:

  

serverError [没有access_token,没有代码,服务器没有提供错误]

这是我的代码:

 // MARK: Instagram
func doOAuthInstagram(_ serviceParameters: [String:String]){
    let oauthswift = OAuth2Swift(
        consumerKey:    serviceParameters["consumerKey"]!,
        consumerSecret: serviceParameters["consumerSecret"]!,
        authorizeUrl:   "https://api.instagram.com/oauth/authorize",
        responseType:   "token"
    )

    let state = generateState(withLength: 20)
    self.oauthswift = oauthswift
    oauthswift.authorizeURLHandler = getURLHandler()
    let _ = oauthswift.authorize(
        withCallbackURL: URL(string: "http://oauthswift.herokuapp.com/callback/instagram")!, scope: "likes+comments", state:state,
        success: { credential, response, parameters in

            self.showTokenAlert(name: serviceParameters["name"], credential: credential)
            self.testInstagram(oauthswift)
        },
        failure: { error in
            print(error.description)
        }
    )
}

0 个答案:

没有答案