Hello, world!
This project is a tutorial to develop app-server of Channel Corp. App Store.
Thank you for visiting. 😁
Index | |
---|---|
Prerequisite | - |
Installation | - |
Build | # Build the whole project |
# Build only the wam | |
APIs | # ping |
# functions | |
# wam(static) |
It is available to download the necessary packages for the project by running one of the following commands:
- Use makefile.
$ make init
- Use go cli.
$ go mod tidy
$ make build # it builds wam, either.
$ make build-wam
Before running the program, make sure to check the configuration file.
You must prepare the metadata of the app by registering one to Channel App Store.
stage: development # name of the env
appId: # app id registered in advance
appSecret: # app secret issued in advance
api:
public:
http:
port: 3022 # port number of the server
appStore:
baseUrl: # api endpoint of the Channel App Store
bot:
name: AppTutorialBot # bot name to write messages in groups
$ STAGE="your stage" make dev
The default setting for the stage is development
.
METHOD | PATH |
---|---|
GET | /ping |
(empty)
pong
METHOD | PATH |
---|---|
PUT | /functions |
This api is to request general functions defined in the project.
You must register it as a functionUrl of the app.
Note that context
in the function request is automatically full by the Channel App Store.
NOTE:The values in the context field of the request body will be automatically populated by the App Store.
- tutorial (to prepare wam arguments before opening the wam)
{
"method": "tutorial",
"context": {
"channel": {
"id": "channel id which calls the wam"
},
"caller": {
"type": "manager",
"id": "manager id which calls the wam"
}
}
}
- sendAsBot
sendAsBot
is a function to write message as a bot.
You can set the name of the bot with configuration files.
{
"method": "sendAsBot",
"params": {
"input": {
"groupId": "group id to write a message",
"rootMessageId": "thread id",
"broadcast": false
}
},
"context": {
"channel": {
"id": "channel id which calls the wam"
},
"caller": {
"type": "manager",
"id": "manager id which calls the wam"
}
}
}
Success
200 OK
- tutorial
{
"result": {
"type": "wam",
"attributes": {
"appId": "app id",
"name": "tutorial",
"wamArgs": {
"managerId": "4761",
"message": "This is a test message sent by a manager."
}
}
}
}
- sendAsBot
{
"result": {
"type": "string",
"attributes": {}
}
}
Failure
200 OK
{
"error": {
"type": "",
"message": "the reason of the failure"
}
}
Note that both the success and the failure return 200 OK
for each request.
METHOD | PATH |
---|---|
- | /resource/wam/tutorial |
This endpoint serves a static page of the wam.
You must register it(/resource/wam
) as a wamUrl of the app.
The wam written in HTML.