Ios 获取Twilio访问令牌时获取nil值
我正在尝试在我的iOS应用程序中设置Twilio可编程聊天,当我尝试获取访问令牌时,它返回一个Nil。我正在使用swift示例应用程序中提供的相同函数调用 这是试图获取字典中存在的访问令牌的函数Ios 获取Twilio访问令牌时获取nil值,ios,swift,twilio,Ios,Swift,Twilio,我正在尝试在我的iOS应用程序中设置Twilio可编程聊天,当我尝试获取访问令牌时,它返回一个Nil。我正在使用swift示例应用程序中提供的相同函数调用 这是试图获取字典中存在的访问令牌的函数 func fetchToken(params:[String:String], completion:@escaping (NSDictionary, NSError?) -> Void) { if let filePath = Bundle.main.path(forResource
func fetchToken(params:[String:String], completion:@escaping (NSDictionary, NSError?) -> Void) {
if let filePath = Bundle.main.path(forResource: "Keys", ofType:"plist"),
let dictionary = NSDictionary(contentsOfFile:filePath) as? [String: AnyObject],
let tokenRequestUrl = dictionary["TokenRequestUrl"] as? String {
print(tokenRequestUrl)
var request = URLRequest(url: URL(string: tokenRequestUrl)!)
request.httpMethod = "POST"
let postString = self.postDataFrom(params: params)
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("error=\(error)")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
completion(NSDictionary(), NSError(domain: "TWILIO", code: 1000, userInfo: [NSLocalizedDescriptionKey: "Incorrect return code for token request."]))
return
}
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String:Any]
print("json = \(json)")
completion(json as NSDictionary, error as NSError?)
} catch let error as NSError {
completion(NSDictionary(), error)
}
}
task.resume()
}
else {
let userInfo = [NSLocalizedDescriptionKey : "TokenRequestUrl Key is missing"]
let error = NSError(domain: "app", code: 404, userInfo: userInfo)
completion(NSDictionary(), error)
}
}
printjson
命令没有执行,但是当我在try
之前尝试打印数据时,它返回2730字节。因此,null
被作为字典传递,当我尝试获取访问令牌时,我最终得到了nil
更新:
我只是试着把数据打印成字符串。HTML代码正在数据
对象中传递当您请求令牌时,您的服务器会做出什么响应?当我请求令牌时,我可以在控制台上看到200 OK
。您可以使用web浏览器从URL请求令牌吗?还是卷曲?这说明了什么?我试过了,它打开了初学者工具包环境设置页面,所以,这可能是你的问题。您需要确保服务器正确返回令牌,而不是设置页面。您是否可以更新您的问题,提供有关您使用什么来生成令牌的更多信息?