부록. Bixby Capsule 생성 및 설정

Capsule 생성

Bixby Capsule을 개발하기 위해서는, 먼저 Bixby Developer Studio를 다운로드 받아야 합니다. Developer Studio는 Bixby Center에서 다운로드 할 수 있습니다.

Bixby Developer Studio설치를 완료하셨다면, 새로운 Capsule을 만들 수 있습니다. Bixby Developer Studio를 열고, File -> New Capsule 을 클릭하시거나, Bixby Developer Studio 좌측의 Create New Capsule 버튼을 클릭하세요.

Bixby Developer Studio에서 Capsule ID는 [namesapce].[capsule name]의 형태로 추가하시면 됩니다. namespace는 Team ID라고 생각하시면 됩니다.

Team ID는 Bixby CenterTeams & Capsules에서 생성하신 후 사용하시거나, playground라는 Team ID를 사용하시면 됩니다.

playground라는 Team ID를 사용하실 경우에는, Capsule Submission은 진행할 수 없습니다.

Team ID 생성은 Bixby Center의 왼쪽 네비게이션 바에서 Teams & Capsules 버튼에 들어가시면 생성할 수 있습니다.

위 이미지 처럼 Team 생성을 위하여 필요한 조건들을 채우고 Create 버튼을 누르면 생성됩니다.

Capsule 등록을 진행하시려면, Team 페이지에서 Register Capsule을 클릭하시고 Capsule Name을 적고 등록하시면 됩니다.

Capsule 설정

Capsule Config & Secrets

Teams & Capsules 내에 등록해둔 capsule로 들어가게 되면, submission을 진행한 버전을 확인하는 탭과 Config & Secrets 탭을 보실 수 있습니다. 이 탭에서는 capsule에서 사용할 API URL과 같은 설정 정보들과 API Key 값과 같은 보안 정보를 등록할 수 있습니다. 이러한 정보들은 보안적으로 중요한 정보들이기 때문에 capsule내에서 설정하는 것이 아닌 Bixby Center에서 설정합니다.

const config = require('config');
const secret = require('secret');
var server_base = config.get("api_url");
var server_api_key = secret.get("key");

또한, Config & Secrets 탭에서 설정한 데이터를 capsule에서 사용하려면 위와 같이 내장 함수 Config와 Secret을 이용하시면 됩니다. 이와 관련한 내용은 여기를 참조하시기 바랍니다.

capsule.bxb

capsule.bxb 파일은 capsule 전반적인 설정 정보를 적어두는 곳입니다. 이 파일은 capsule당 하나만 존재합니다.

capsule {
  id (playground.burgershop) // capsule ID입니다. 'namespace.capsuleName'로 구성됩니다.
  
  version (1.1.0) // capsule의 버전을 설정합니다. submission시에 중요하게 사용됩니다.

  format (3)
  
  targets {
    target (bixby-mobile-ko-KR)
  }

  capsule-imports {
    import (viv.common) {
      as (common)
      version (3.32.18)
    }
  }
  
  permissions {
    user-profile-access
  }

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

  store-sections {
    section (Productivity)
  }
  
  marketplace-constraints {
    country-constraints{
      allowed-list{
        allow (KR)
      }
    }
  }
}

파일의 각 요소들중 중요한 몇가지만 따로 언급하겠습니다.

  • targets 정보는 capsule이 어떠한 언어와 디바이스를 지원하는 지를 적는 부분입니다. 예를 들어 한국어와 모바일을 지원한다면 'bixby-mobile-ko-KR'의 형식으로, 미국 영어와 워치를 지원한다면 'bixby-watch-en-US' 의 형식을 target에 적으시면 됩니다.

  • capsule-imports 정보는 capsule 내에서 사용할 라이브러리 capsule을 등록합니다. 라이브러리 capsule은 특정 기능을 모아둔 capsule로, 해당 기능을 capsule에서 따로 만들 필요없이 가져다 사용할 수 있도록 구성한 capsule입니다. 라이브러리 capsule에 대한 정보는 여기를 참조하여 주시기 바랍니다.

  • permissions 정보는 capsule이 사용자에게 요청할 수있는 권한을 정의합니다. 자세한 정보는 여기를 참조하여 주시기 바랍니다.

  • runtime-flags 정보는 capsule 실행 중 특정 런타임 동작을 변경하도록 합니다. 자세한 정보는 여기를 참조하여 주시기 바랍니다.

  • store-sections 정보는 capsule이 마켓플레이스에 등록되었을 때, 어떠한 섹션에 들어갈지 적는 부분입니다. 최대 2개의 섹션에 등록할 수 있습니다. 섹션에 대한 자세한 정보는 여기를 참조하여 주시기 바랍니다.

  • marketplace-constraints 정보는 어떠한 마켓플레이스에 등록시킬지를 적는 부분입니다. 국가별 또는 디바이스별로 지원하거나 제한할 수 있습니다. 자세한 정보는 여기를 참조하여 주시기 바랍니다.

capsule-info.bxb

capsule-info.bxb 파일은 마켓플레이스에 등록시에 필요한 정보들을 모아두는 곳입니다. 이 파일의 정보는 언어와 디바이스마다 차이가 있을 수 있으므로 각 resources 폴더 하위에 있는 각 언어 및 디바이스 폴더마다 생성되어야 합니다.

capsule-info {
  display-name  (버거샵) // 마켓플레이스에 사용될 capsule 이름
  developer-name  (버거샵)
  icon-asset  (images/bixby_launcher.png) 
  description ("Bixby 버거샵 capsule 입니다.") // 마켓플레이스 정보란에 기재될 내
  website-url  (https://github.com/bixbydevelopers)
  privacy-policy-url ("https://github.com/bixbydevelopers/pp")
  terms-url ("https://github.com/bixbydevelopers/terms")
  dispatch-name (빅스버거샵)
  dispatch-aliases {
    alias (빅스버거)
  }
  search-keywords{
    keyword (예제)
  }
}

파일의 각 요소들중 중요한 몇가지만 따로 언급하겠습니다.

  • icon-asset은 마켓플레이스에서 capsule을 대표할 아이콘을 등록하는 부분입니다. 이 아이콘 이미지는 capsule 내부에 위치하고 있어야 합니다.

  • website-urlterms-url의 경우, 각각 서비스의 사이트 혹은 서비스를 이용함에 필요한 약관등을 게시하는 부분입니다. 이 두가지 내용은 없어도 되는 부분이나, 만약에 존재한다면 정상적으로 접속 및 내용을 가지고 있어야 합니다.

  • privacy-policy-url필수적으로 적어야 할 부분입니다. capsule에서 처리하는 개인정보에 대한 내용을 담고 있어야 합니다.

  • dispatch-name은 마켓플레이스에서 capsule로 접근하기 위하여 capsule에 붙이는 호출 이름입니다. 이 이름은 마켓플레이스 유일한 이름이어야 합니다. dispatch-aliases에서는 dispatch-name을 다르게 부를 수 있는 몇가지 이름을 추가로 적을 수 있습니다.

  • search-keywords는 마켓플레이스 검색시에 capsule이 효과적으로 검색될 수 있도록 하는 키워드들을 적습니다.

hints.bxb

// test.hints.bxb
hints {
  uncategorized {
    hint ("빅스버거샵에서 콜라 줘")
    hint ("빅스버거샵에서 차가운 커피 내놔")
    hint ("빅스버거샵에서 사이다 뽑아")
  }
}

hints.bxb 파일의 정보는 마켓플레이스 capsule 정보란에 표시되는 정보중 하나입니다. 사용자에게 capsule을 사용할 수 있게하는 발화들을 등록하게 됩니다. capsule의 action의 수에 따라 다소 변동이 있을 수 있지만, 사용자에게 충분한 capsule 사용 가이드를 위하여 일반적으로 10개 이상의 hint 등록을 권장하고 있습니다. hints.bxb 파일에 등록하는 발화들은 capsule-info에서 등록한 dispatch-name과 training 데이터의 조합으로 구성하면 됩니다.

Last updated