首页 > 解决方案 > IBM Watson Unity SDK,IamAuthenticator 对象无法成功认证

问题描述

我正在尝试查询 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;

提前感谢您的帮助!

标签: c#unity3dibm-watsondiscoveryauthenticator

解决方案


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


推荐阅读