Watson凭证在Unity中的怪异错误

时间:2019-01-27 08:03:39

标签: c# unity3d ibm-cloud ibm-watson watson-conversation

我正在尝试将Watson Assistant实施到Unity中。

当我使用用户名,密码和serviceUrl作为参数创建新的凭据对象时。 serviceUrl设置正确,但是用户名和密码保持为空。我将相同的代码用于其他服务,但特别是使用此脚本时,我会遇到此错误。

//Properties
[SerializeField]
private string _username;
[SerializeField]
private string _password;
[SerializeField]
private string _serviceUrl;

private void CreateService() {
        //Credentials
        Debug.Log(_username);
        Debug.Log(_password);
        Debug.Log(_serviceUrl);

        Credentials credentials = new Credentials(_username, _password, _serviceUrl);

        Debug.Log(credentials.Username);
        Debug.Log(credentials.Password);
        Debug.Log(credentials.Url);

        //Service
        //service = new Assistant(credentials);
}

输出

username
password
serviceUrl

null
null
serviceUrl

我在示例脚本中遇到了同样的问题。

3 个答案:

答案 0 :(得分:0)

IBM Cloud上的所有IBM Watson服务都从用户名/密码更改为IAM (identity and access management) authentication。因此,当您使用未经修改的旧代码时,可能会在凭据对象中查找用户名和密码。

答案 1 :(得分:0)

我尝试了这段代码,它对我有用。您是在检查器中添加用户名/密码/ serviceUrl,还是直接在此脚本中添加?这些值可能会被检查器中的空白字段覆盖。

enter image description here

答案 2 :(得分:0)

更新Watson SDK之后,我不再在任何脚本中都遇到此错误。仍然不确定确切的问题在旧版本中。这些属性确实是在检查器中设置的,它们似乎可以将值设置得很好,直到将其添加到对象中为止。

可能不是我使用IAM的事实,但是在更新版本中使用用户名和密码似乎可以正常工作。