Я столкнулся с некоторой ошибкой аутентификации, используя Twitter Rest APis. Хотя он работает на Postman.On почтальон есть возможность добавить Consumer Secret в Авторизация, но я не понимаю, где положить этот ключ в свой URLRequest. Я использую тот же фрагмент кода, что и Postman, но на стороне моего приложения я сталкиваюсь с ошибкой auth.Ошибка аутентификации в twitter login
let requestTokenURL = URL(string:"https://api.twitter.com/oauth/request_token")
let consumerKey = "xxxxxxxxxxxxxxxxxxxxxx"
let consumerSecretKey = "xxxxxxxxxxxxxxxxx"
let signatureMethod = "HMAC-SHA1"
let signature = "hgjhagdAGFSSAJKaqhsugqggqskugkg"
let timestamp = String(Date().timeIntervalSince1970)
let nonce = UUID().uuidString
let version = "1.0"
class TwitterHelper{
func getAuthToken(){
let session = URLSession.shared
let info = [["OAuth oauth_consumer_key":consumerKey],
["oauth_signature_method":signatureMethod],
["oauth_timestamp":timestamp],
["oauth_nonce":nonce],
["oauth_version":"1.0"],
["oauth_signature":signature]
]
var formattedString = ""
for case let authData in info {
for (key,value) in authData{
formattedString += key + "=" + (value) + ","
}
}
let headers = [
"content-type": "application/x-www-form-urlencoded",
"Authorization":formattedString
]
var request = URLRequest(url: requestTokenURL!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
session.dataTask(with: request) { (data, response, error) in
if let parsedData = parseJsonData(data: data){
print(parsedData)
}
}.resume()
}
}
Ответ:
{
code = 32;
message = "Could not authenticate you.";
}
Это происходит из-за секретный ключ потребителя. В документации по твиттеру он не определен для использования, но когда я использую его в Postman Authorization, он работает. Я не понимаю, как использовать этот «секретный ключ потребителя» в заголовке.