【发布时间】:2018-01-08 07:29:03
【问题描述】:
在我的应用程序中,我使用 webView 进行 Instagram 身份验证。首先它显示 Instagram 登录屏幕,成功登录后我正在获取 accessToken 然后我使用 accessToken 获取其他详细信息。
这是我在 viewDidLoad 中调用的 loadrequest 方法
func loadrequest(){
let authURL = String(format: "%@?client_id=%@&redirect_uri=%@&response_type=token&scope=%@", arguments: [INSTAGRAM_API.INSTAGRAM_AUTHURL,INSTAGRAM_API.INSTAGRAM_CLIENT_ID,INSTAGRAM_API.INSTAGRAM_REDIRECT_URI, INSTAGRAM_API.INSTAGRAM_SCOPE ])
let urlRequest = URLRequest.init(url: URL.init(string: authURL)!)
instaWebview.loadRequest(urlRequest)
}
这是我调用 checkRequestForcallBackURL 方法的 webViewDelegate 方法
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
return checkRequestForcallBackURL(request: request)
}
在这个方法中我正在检查我是否获得了我的访问令牌
func checkRequestForcallBackURL(request : URLRequest) ->Bool{
let requestURLString = (request.url?.absoluteString)! as String
if requestURLString.hasPrefix(INSTAGRAM_API.INSTAGRAM_REDIRECT_URI) {
let range: Range<String.Index> = requestURLString.range(of: "#access_token=")!
handleAuth(authToken: requestURLString.substring(from: range.upperBound))
return false;
}
return true
}
现在登录询问安全码后,在提供安全码后,它会将我重定向到我不想要的 Instagram 应用程序。我不知道如何进一步处理
【问题讨论】:
-
Instagram 出现暂时性问题,他们一直要求提供安全码,但未提供访问令牌。希望他们能尽快解决。这只发生在某些用户名上,您可以尝试其他一些用户名来检查您的代码。
-
@MayankBarnwal ,嘿,我也厌倦了其他几个帐户,但无法获取代码或访问令牌,它只会将我重定向到 Instagram 应用程序
-
@shaki 您是否尝试过使用其他客户端 ID?我正在尝试使用此链接instagram.com/oauth/authorize/… 并且运行良好。您也可以添加范围。
-
@MayankBarnwal 是的,我厌倦了其他客户 ID,发生了同样的事情,但我无法获取代码或 #accesstoken,但我只重定向到 instagram 应用程序
标签: ios swift instagram instagram-api