Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/line/clova-cek-sdk-swift
SDK of the Clova CEK for Swift
https://github.com/line/clova-cek-sdk-swift
cek-sdk clova kitura serverside-swift swift
Last synced: about 1 month ago
JSON representation
SDK of the Clova CEK for Swift
- Host: GitHub
- URL: https://github.com/line/clova-cek-sdk-swift
- Owner: line
- License: apache-2.0
- Archived: true
- Created: 2018-07-10T09:17:46.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-10T02:29:04.000Z (almost 6 years ago)
- Last Synced: 2024-07-14T01:42:15.510Z (about 2 months ago)
- Topics: cek-sdk, clova, kitura, serverside-swift, swift
- Language: Swift
- Homepage:
- Size: 32.2 KB
- Stars: 20
- Watchers: 46
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Clova-CEK-SDK-Swift
## About this repository
This is a library to help for development of the extension with the Clova Extension Kit (CEK).
CEK Documentation can be found [here](https://clova-developers.line.me/guide/).This library also contains a sample project which returns local time of a city in the world about which an user asks Clova.
## Architecture
This library and the sample project can be built with the Swift Package Manager(SPM). It has a dependency on Kitura.
Following environment variables need to be set when it runs:
### For the sample project
|Name|Value|Explanation|is Mandatory|
| --- | --- | --- | --- |
|PORT|Int|A port number to listen to|Yes (Heroku automatically sets it)|
|APPLICATION_ID|String|An application Id that you set on the clova platform|Eiter this or PATH_FOR_DEBUG is necessary|
|PATH_FOR_DEBUG|Any|If set, the server responds in without verification|Eiter this or APPLICATION_ID is necessary|
|LOG_TYPES|String|Log types to output. Combine following strings with `,`: `ENTRY`, `EXIT`, `DEBUG`, `VERBOSE`, `INFO`, `WARNING`, `ERROR`|No|
|GOOGLE_API_KEY|String|A user key for Google Geocoding API|No|## Preparation of development
To develop it with XCode, do
```
$ swift package generate-xcodeproj
$ open *.xcodeproj
```
*Note that it requires macOS version >= 10.12 for some of Security framework methods*It has a Dockerfile which can be used by Docker. If you want to use Docker for build, execusion or deploy, install Docker.
https://docs.docker.com/docker-for-mac/## Preparation in the Clova Platform for the sample app
This sample app handles an intent named `CityTimeIntent`, with a slot named `city_name`.
Log into the platform and register them in your skill with enough number of corpora.## Build the sample app
SPM
```
$ swift build
```Docker
```
$ docker-compose build web
```## Run the sample app
SPM(Hit Control+C to quit)
```
$ swift run
```Docker(Hit Control+C to quit)
```
$ docker-compose up web
```## Deploy to Heroku with Docker
The webhook server for the extension requires SSL connection and we introduce Heroku as one of the solution.
### Preparation
Make sure Docker is running
```
$ docker ps
```Install Heroku-CLI. Brew can be used:
```
$ brew install heroku/brew/heroku
```Create your Heroku account.
https://www.heroku.comLog into Heroku and create your app.
With heroku commands after here, you can specify existing app name by putting --apps .
```
heroku login
heroku create
```### Environment variables
Set necessary environment variables besides $PORT which is automatically set by Heroku.
```
$ heroku config:add LOG_TYPES="WARNING,ERROR"
```Set PATH_FOR_DEBUG to answer any request without verification
```
$ heroku config:add PATH_FOR_DEBUG="/debug"
```### Deploy
```
$ heroku container:login
$ heroku container:push web
$ heroku container:release web
```## References
How to run Vapor with Docker in Heroku
https://gist.github.com/alexaubry/bea6f9b626e71b48ae6065664748bc97Container Registry & Runtime (Docker Deploys)
https://devcenter.heroku.com/articles/container-registry-and-runtime