IBM Watson Visual Recognition API密钥失败-Xcode Swift

时间:2018-07-04 01:38:57

标签: swift xcode ibm-watson visual-recognition

我正在尝试使用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

1 个答案:

答案 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分钟遇到了这个问题。