如何获取用户信息?

How can get user info?

如何获取用户名 Bixby 是否提供有关用户的任何信息,例如他的名字?

我尝试添加 bixby-user-id-accessuser-profile-access 以使用 $ vivContext 获取一些信息,但有用户名。我也试过了self.GetSelf但是返回的结果是空的,没有用户信息。

computed-input (self) { 
      type (self.Self)
      min (Optional) max (One)
      compute {
        intent {
          goal: self.Self
          route: self.GetSelf
        }
      }
}
property (self) {
    type (self.Self)
    min (Required) max (One)
}

The value of self property

$vivContext不包含此类信息。请检查 here 以查看 $vivContext 包含什么以及如何在 JS 中访问它。

使用viv.self 库是正确的方法。要访问您需要 user-profile-access 权限。阅读有关 viv.self 库 here 的更多信息。

请按照这个例子,开发者需要先在三星 phone 上设置他们的配置文件。对于还没有三星 phone 的开发者,可以尝试使用 viv.self.GetImaginarySelf 来熟悉该结构。使用 viv.self.GetImaginarySelf 时,名称将是 "Hi Bixby"。

您也可以下载并试用 this KB article

中提供的示例胶囊
action (GetAllNames) {
  description (__DESCRIPTION__)
  type (Search)
  collect {
    computed-input (self) {
      type (self.Self)
      min (Optional) max (One)
      compute {
        intent {
          goal: self.Self
          route: self.GetImaginarySelf // for developers has NO Samsung device
          // route: self.GetSelf // for release
        }
      }
    }
  }
  output (TextName)
}

并在端点文件中的链接 JS 中执行此操作。

module.exports.function = function getAllNames (self) {
  var rslt = []
  rslt.push ("John")
  rslt.push ("Jane")
  if (self == null) {
    rslt.push ("NULL")
  }
  else {
    rslt.push(self.nameInfo.structuredName)
  }
  return rslt;
}

您应该能够在结果视图中看到该名称。

您还应该能够在调试器 window 中检查返回的 viv.self.Self 结构的其他字段。