我正在尝试使用VisualRecognitionV3.framework连接到Watson。
框架的编译很好(通过Carthage),我认为我已经正确配置了服务凭据,但是当我将Xcode编译到模拟器时,我得到了一个无效的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
答案 0 :(得分:0)
您需要使用另一个初始化程序来初始化VisualRecognition,如下所示:
let visualRecognition = VisualRecognition(version: version, apiKey: apiKey, iamUrl: nil)
区别在于,即使您将其设置为nil且其他任何条件都相同,您仍需要使用第三个参数(即iamUrl)来调用此3参数编辑的构造函数。这告诉VisualRecognition类使用IAM对您的应用程序进行身份验证。
git文档非常混乱,在这里https://github.com/watson-developer-cloud/swift-sdk#visual-recognition
注意:对于2018年5月23日之前创建的实例,将使用其他初始化程序进行身份验证:
这意味着旧方法应该可以正常工作,不需要,他们犯了一个错误,实际上是在之后 2018年5月23日
无论如何,如果您尝试使用它就可以了。我在写此答案前30分钟遇到了这个问题。