首页 > 解决方案 > 我如何使用他们的 api 而不是 sdk 快速设置 facebook 重定向 uri

问题描述

当我尝试使用 Facebook 的 API 而不是 SDK 登录时,我在交换令牌的代码时遇到问题,我得到的代码很好,但是当我使用该代码进行 API 调用以获取令牌时,我收到此错误消息“验证验证码时出错。请确保您的 redirect_uri 与您在 OAuth 对话请求中使用的相同”,我在 xcode 中使用的重定向 uri 是 ("fb" + appId + "://authorize",那就是为获取代码而工作,但如何将其添加到 Facebook 应用程序设置内的有效 OAuth 重定向 URI 中?

这是我的函数,它使用传递给它的代码进行 api 调用以获取令牌作为交换

func sendCodeToServer(_ code: String) {
    
        let parameters = "grant_type=authorization_code" + "&code=\(code)" + "&client_id=\(Constants.facebookAppId)" + "&client_secret=\(Constants.facebookSecret)" + "&redirect_uri=\(Constants.callbackScheme)://authorize"
        
        guard let exchangeTokenUrl = URL(string: Constants.exchangeUrl) else { return }
        
        var request = URLRequest(url: exchangeTokenUrl)
        request.httpMethod = "POST"
        request.addValue("application/json", forHTTPHeaderField: "Accept")
        request.httpBody = parameters.data(using: String.Encoding.utf8)
        
        let session = URLSession(configuration: URLSessionConfiguration.default)
        let task = session.dataTask(with: request) { data, response, error  in
            guard let data = data, error == nil else { return }
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
                print(json)
            } catch {
                print(error)
            }
        }
        task.resume()
    }

标签: iosswiftapifacebookauthentication

解决方案


推荐阅读