ios - 我如何使用他们的 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()
}
解决方案
推荐阅读
- html - 使用具有绝对定位的工具提示
- javascript - eval 与函数构造函数
- sql - 如何在 DolphinDB 的数据浏览器中显示 Vector 的值?
- javascript - 利用来自 get 映射的 JSON 值
- java - 在 `build.gradle` 中提供了运行时`spring-boot-starter-undertow` 但`:bootRun` 仍然使用 Tomcat 而不是 undertow
- c# - Picturebox 中的 Movable FrameControl 未按预期工作
- visual-studio-code - 如何以编程方式安装所有 VS Code 工作区扩展
- css - 材料设计抽屉问题
- perl - 升级到 ActivePerl v5.26.3 时 LWP::Simple 和 https 出现问题
- angular - 错误类型错误:无法读取未定义的属性“ProfileInformation”