如何从 `/code/program.js` 访问 bixby 胶囊中的 Bixby/Samsung 个人资料信息(第一个 name/last 名字)

How to access Bixby/Samsung profile information (first name/last name) in bixby capsule from `/code/program.js`

我希望用我的胶囊向用户问候他的名字和姓氏。 我查看了 this 页面,其中包含我需要的一切。 我添加了 capsule-import / permission 来执行此操作。但是我无法从 JavaScript 代码内部访问此用户信息。

Confirmation.js:

 var config = require('config')
 var http = require('http')
 var console = require('console')

module.exports.function = function getConfirmation ($vivContext, $user) {

  let result = "Hello"

  console.log($user)
  console.log($vivContext)

  return result

}

capsule.bxb

capsule {
  id (fastforward.oauthGoogleTest)
  version (0.1.0)
  format(3)

  store-sections {
    section (Photography)
    section (NewsAndMagazines)
  }

  capsule-categories{
    category (News)
  }

  targets{
    target (bixby-mobile-en-US)
  }

  marketplace-constraints {
    country-constraints {
      allowed-list {
        allow (US)
        allow (KR)
      }
    }
  }

  permissions{
    // bixby-user-id-access
    user-profile-access
  }

  runtime-flags {
    use-input-views-for-selection-list-detail
    modern-default-view-behavior
    concepts-inherit-super-type-features
    modern-prompt-rejection
    support-halt-effect-in-computed-inputs
    no-filtering-with-validation
  }

  capsule-imports {
    import (viv.contact) {
      as (contact)
      version (2.5156.4)
    }
    import (viv.self) { 
      as (profile) 
      version (3.5.167)
    }
  }

}

hello_world.model.bxb

action (hello_world) {
  type (Search)
  description (just a small test for oauth)
  output (confirmation)
}

endpoints.bxb

endpoints {
  action-endpoints {
    action-endpoint (hello_world) {
      local-endpoint (Confirmation.js)
      accepted-inputs ($vivContext, $user)
      authorization: user
    }
  }
}

我想访问用户信息是我的 javascript 代码,我该怎么做?

这些信息不在$vivContext中,有关$vivContext的详细信息请参阅https://bixbydevelopers.com/dev/docs/dev-guide/developers/actions.js-actions#passing-user-context-information

要从 viv.self 中提取信息,您需要按以下方式进行计算输入。

    // self can be computed rather than explicitly passed
    computed-input (self) { 
      type (self.Self) // import viv.self { as (self) }
      min (Optional) max (One)
      compute {
        intent {
          goal: self.Self
          route: self.GetSelf
        }
      }
    }

https://bixbydevelopers.com/dev/docs/dev-guide/developers/library.self

了解有关 viv.self 的更多信息

请注意,应该将 viv.self 导入为 (self)

埃里克, 这里有一个link到"computed-input"ref doc

我正在尝试做与您相同的事情,但还没成功

编辑....我能够让计算输入工作并检索名字和姓氏以及电子邮件地址,但由于某种原因我无法获得邮寄地址