我正在尝试使用 VisualRecognitionV3.framework 连接到 Watson。
框架编译得很好(通过 Carthage),并且我认为我已经正确配置了服务凭证,但是当我将 Xcode 编译到模拟器时,我收到了 invalid-api-key 错误。
有人遇到过同样的问题吗? 我做错了什么?
private let apiKey = "Xn5DUtQU8WzgFTL9qNEFwBjxxxxxxxxxxxxxxxxxx"
private let classifierId = "DefaultCustomModel_2051029379"
private let version = "2018-07-01"
var visualRecognition: VisualRecognition!
override func viewDidLoad() {
super.viewDidLoad()
self.visualRecognition = VisualRecognition(apiKey: apiKey, version: version)
}
override func viewDidAppear(_ animated: Bool) {
let localModels = try? visualRecognition.listLocalModels()
if let models = localModels, models.contains(self.classifierId) {
print("local model found")
} else {
self.updateModel()
}
}
Xcode 错误:
Error Domain=com.ibm.watson.developer-cloud.VisualRecognitionV3 Code=403 "ERROR: invalid-api-key" UserInfo={NSLocalizedDescription=ERROR: invalid-api-key}
Watson配置截图: Watson Config
最佳答案
您需要使用另一个初始化程序来初始化 VisualRecognition,如下所示
let visualRecognition = VisualRecognition(version: version, apiKey: apiKey, iamUrl: nil)
不同之处在于,您需要使用第三个参数(即 iamUrl)来调用这个 3 个参数的构造函数,即使您将其设为 nil 并且其他任何内容都相同。这告诉 VisualRecognition 类使用 IAM 对您的应用程序进行身份验证。
git 文档非常困惑,这里说 https://github.com/watson-developer-cloud/swift-sdk#visual-recognition
Note: a different initializer is used for authentication with instances created before May 23, 2018:
这意味着旧的方式应该可行,除非,他们犯了一个错误,他们实际上的意思是之后 2018 年 5 月 23 日
无论如何,如果你尝试一下,它应该会起作用。在写这个答案之前 30 分钟我就遇到了这个问题。
关于swift - IBM Watson Visual Recognition API key 失败 - Xcode Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164718/