这是一个帮助开发者使用 Clova Extension Kit (CEK) 开发扩展的库。CEK 文档可以在这里找到。
这个库还包含一个示例项目,它可以返回用户向 Clova 询问的世界某个城市的当地时间。
这个库和示例项目可以使用 Swift Package Manager (SPM) 构建。 它依赖于 Kitura。
运行时需要设置以下环境变量
名称 | 值 | 说明 | 是否必须 |
---|---|---|---|
PORT | 整数 | 监听的端口号 | 是(Heroku 会自动设置) |
APPLICATION_ID | 字符串 | 您在 Clova 平台上设置的应用程序 ID | 此项或 PATH_FOR_DEBUG 必须设置一项 |
PATH_FOR_DEBUG | 任意 | 如果设置,服务器将在 <PATH_FOR_DEBUG> 中响应,无需验证 | 此项或 APPLICATION_ID 必须设置一项 |
LOG_TYPES | 字符串 | 要输出的日志类型。 使用 , 组合以下字符串:ENTRY , EXIT , DEBUG , VERBOSE , INFO , WARNING , ERROR |
否 |
GOOGLE_API_KEY | 字符串 | Google Geocoding API 的用户密钥 | 否 |
要使用 XCode 进行开发,请执行以下操作
$ swift package generate-xcodeproj
$ open *.xcodeproj
请注意,某些安全框架方法需要 macOS 版本 >= 10.12
它有一个 Dockerfile,可以被 Docker 使用。 如果你想使用 Docker 进行构建、执行或部署,请安装 Docker。 https://docs.dockerd.com.cn/docker-for-mac/
这个示例应用处理一个名为 CityTimeIntent
的意图,以及一个名为 city_name
的槽位。 登录平台,并在您的技能中注册它们,并提供足够的语料库。
SPM
$ swift build
Docker
$ docker-compose build web
SPM(按 Control+C 退出)
$ swift run
Docker(按 Control+C 退出)
$ docker-compose up web
扩展的 Webhook 服务器需要 SSL 连接,我们将 Heroku 作为解决方案之一介绍。
确保 Docker 正在运行
$ docker ps
安装 Heroku-CLI。 可以使用 Brew
$ brew install heroku/brew/heroku
创建您的 Heroku 帐户。 https://www.heroku.com
登录 Heroku 并创建您的应用程序。 在此之后的 heroku 命令中,您可以通过添加 --apps 来指定现有的应用程序名称。
heroku login
heroku create
设置必要的环境变量,除了 $PORT,它由 Heroku 自动设置。
$ heroku config:add LOG_TYPES="WARNING,ERROR"
设置 PATH_FOR_DEBUG 以在没有验证的情况下回答任何请求
$ heroku config:add PATH_FOR_DEBUG="/debug"
$ heroku container:login
$ heroku container:push web
$ heroku container:release web
如何在 Heroku 中使用 Docker 运行 Vapor https://gist.github.com/alexaubry/bea6f9b626e71b48ae6065664748bc97
容器注册表和运行时(Docker 部署) https://devcenter.heroku.com/articles/container-registry-and-runtime