gpt4 book ai didi

ios - 谁能告诉我为什么我在执行此代码(Swift)时收到错误的身份验证错误?

转载 作者:行者123 更新时间:2023-11-30 14:12:09 25 4
gpt4 key购买 nike

我正在使用 Fabric SDK 在我的应用程序中添加 Twitter 登录按钮......我在 URL 中添加了身份验证 header ,但在执行时仍然显示错误身份验证错误。建议我如何在 Swift 中的 URL 中添加 header 。

     let twitter = Twitter.sharedInstance()
let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session())

let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()

let request = NSMutableURLRequest(URL: NSURL(string: "https://api.twitter.com/1.1/search/tweets.json?q=Himan_dhawan")!)
request.allHTTPHeaderFields = authHeaders
println(request)
var session = NSURLSession.sharedSession()

let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
if((error) != nil) {
println(error.localizedDescription)
}

var strData = NSString(data: data, encoding: NSASCIIStringEncoding)
println(strData)
})

task.resume()

最佳答案

这与您在请求上设置 header 的方式有关。

Fabric 文档并没有为您提供有关在想要使用自己的 NSMutableURLRequest 时创建 OAuth 签名 header 的完整信息。

let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()

返回[NSObject : AnyObject]!字典为您提供请求所需的值。但是,它为 header 提供的内容与需要通过 NSMutableURLRequest 发送的内容不同。

这是您应该如何设置此请求的 header :

            let twitter = Twitter.sharedInstance()

let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session())

let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()

let mutableUrlWithUsableUrlAddress = NSMutableURLRequest(URL: usableUrlForRequest)

mutableUrlWithUsableUrlAddress.addValue(authHeaders[TWTROAuthEchoAuthorizationHeaderKey] as? String, forHTTPHeaderField: "Authorization")

这会将所需的授权 key 设置为请求中“Authorization” header 的值,与传入 authHeaders 字典时相反,它将设置为“X-Verify-Credentials-Authorization”。

Fabric doc's确实要深入探讨这一点,但它比应有的位置稍微隐蔽一些。

关于ios - 谁能告诉我为什么我在执行此代码(Swift)时收到错误的身份验证错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31652773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com