kokoro.io SDK for Node.js
yarn add kokoro-io
TypeScriptで書かれたソースをpostinstallで自動的にビルドします。
型定義ファイルのd.tsも同時に出力します。
import kokoro from 'kokoro-io';
// または const kokoro = require('kokoro-io');
const kokoroIo = new kokoro.io({
accessToken: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
autoReconnect: true, // Stream切断時に自動再接続を行う
});
kokoroIo.Stream.on(kokoroIo.Stream.Event.Connect, async () => {
const memberships = await kokoroIo.Api.Memberships.getMemberships();
const channelIds = kokoroIo.Helper.membershipsToChannelIds(memberships);
kokoroIo.Helper.subscribeChatChannelByChannelIds(kokoroIo.Stream, channelIds);
const postChannelId = kokoroIo.Helper.membershipsToChannelIdByChannelName(memberships, "kokoro.io/テスト用");
if (postChannelId) {
await kokoroIo.Api.Channels.postChannelMessage(postChannelId, {
message: 'もこたんインしたお!',
});
}
});
kokoroIo.Stream.on(kokoroIo.Stream.Event.Chat, (message) => {
console.log('message:', message);
});
kokoroIo.Stream.on(kokoroIo.Stream.Event.Event, (event) => {
console.log('event:', event);
});
kokoroIo.Stream.connect();
import kokoro from 'kokoro-io';
// または const kokoro = require('kokoro-io');
const kokoroIo = new kokoro.io({
accessToken: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
});
(async () => {
await kokoroIo.Api.Bot.postChannelMessage('JPERDC16M', {
message: 'hi',
});
})();
npmのactioncableはイマイチ(今どきCoffeeScriptはちょっと)なので解析して疑似っています。
動作確認は行っているので繋がらないことはないと思いますが、Rails公式ではないので不安定かもしれません。
- ActionCable
- connect
- disconnect
- welcome
- ping
- confirm_subscription
- reject_subscription
- send
- PriparaEvent
- subscribed
- message_created
- ???
-
access_tokens
- get /v1/access_tokens
- post /v1/access_tokens
- delete /v1/access_tokens/{access_token_id}
-
bot
- post /v1/bot/channels/{channel_id}/messages
-
channels
- get /v1/channels/{channel_id}
- put /v1/channels/{channel_id}
- put /v1/channels/{channel_id}/archive
- put /v1/channels/{channel_id}/unarchive
- get /v1/channels/{channel_id}/memberships
- get /v1/channels
- post /v1/channels
- post /v1/channels/direct_message
- put /v1/channels/{channel_id}/manage_members/{member_id}
- get /v1/channels/{channel_id}/messages
- post /v1/channels/{channel_id}/messages
-
devices
- get /v1/devices
- post /v1/devices
- delete /v1/devices/{device_identifier}
-
memberships
- get /v1/memberships
- post /v1/memberships
- delete /v1/memberships/{id}
- put /v1/memberships/{id}
- put /v1/memberships/{id}/join
-
messages
- delete /v1/messages/{message_id}
-
profiles
- get /v1/profiles
- get /v1/profiles/me
- put /v1/profiles/me