0

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

首先,我尝试通过 Discovery 服务 APIKey 验证我的 Watson Discovery 服务(如https://github.com/watson-developer-cloud/unity-sdk中的“IAM”部分所述)。我的代码与https://cloud.ibm.com/apidocs/discovery/discovery?code=unity#query-a-collection中“查询集合”部分中的示例代码完全相同。

不幸的是,由于身份验证不成功,代码总是返回,因此我无法得到任何响应。经过一番调试,我发现 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;

提前感谢您的帮助!

4

2 回答 2

1

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

于 2020-02-27T14:28:48.480 回答
0

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

于 2020-03-04T17:10:01.960 回答