IBM Watson Unity SDK,IamAuthenticator 对象无法成功验证

IBM Watson Unity SDK, IamAuthenticator objects cannot authenticate successfully

我正在尝试查询 Watson Discovery News 并在 Unity 中获得一些响应。

首先,我尝试通过 Discovery 服务 APIKey 验证我的 Watson Discovery 服务(如 https://github.com/watson-developer-cloud/unity-sdk). My code is exactly the same as the example code in "Query a collection" section in https://cloud.ibm.com/apidocs/discovery/discovery?code=unity#query-a-collection 中的 "IAM" 部分所述。

不幸的是,由于身份验证不成功,代码总是returns,因此我无法得到任何响应。经过一些调试,我发现IamAuthenticator.cs(这是IBM Unity SDK的一部分)中的"tokenData"字段没有被初始化;这会导致身份验证失败。

我能够通过将示例代码中的 "yield return" 更改为 "return" 来进行调试。否则,C# 调试器无法进入代码。

由于我已经遵循了 IBM 文档中的所有步骤,所以我不确定如何继续。


要重现该问题,必须在 https://github.com/watson-developer-cloud/unity-sdk 上下载 IBM Unity SDK 并按照 README 中的说明进行操作。设置后,可以使用以下代码重现问题:

var authenticator = new IamAuthenticator(
    apikey: "{apikey}"
);

while (!authenticator.CanAuthenticate())
    yield return null;

在此先感谢您的帮助!

您是否设置了 URL (SetServiceUrl) 以匹配您的服务实例的位置?请参阅 API 参考文献

中的 Service Endpoint

我使用令牌身份验证而不是使用 APIkey 绕过了这个问题。 如果可以选择使用其他 SDK,例如Java SDK,请这样做。因为Watson Unity SDK目前还没有得到很好的支持。