Как получить информацию о пользователе? - PullRequest
2 голосов
/ 20 января 2020

Как получить имя пользователя Bixby, предоставляя любую информацию о пользователе, например, его имя?

Я пытался добавить bixby-user-id-access и user- 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)
}

Значение собственного свойства

1 Ответ

1 голос
/ 22 января 2020

$ vivContext не содержит такой информации. Пожалуйста, проверьте здесь , чтобы увидеть, что $ vivContext содержит и как получить к нему доступ в JS.

Правильный подход к использованию библиотеки viv.self. Для доступа вам необходимо разрешение user-profile-access . Подробнее о библиотеке viv.self здесь .

Пожалуйста, следуйте этому примеру, разработчик должен сначала настроить свой профиль на телефоне Samsung. Для разработчиков, у которых еще нет телефона Samsung, можно попытаться ознакомиться со структурой, используя viv.self.GetImaginarySelf. Имя будет «Привет Биксби» при использовании viv.self.GetImaginarySelf.

Вы также можете загрузить и попробовать образец капсулы, предоставленный в этой статье базы знаний

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;
}

Вы должны увидеть имя в режиме просмотра результатов. enter image description here

Вы также можете проверить другое поле возвращенной структуры viv.self.Self в окне отладчика. enter image description here

...