---
# System prepended metadata

title: さんまぶりAPI(v0)草案

---

# さんまぶりAPI(v0)草案

- https://api.submarin.online/v0/
- https://docs.submarin.online/api/v0/
- https://github.com/Submarin-online/Submarin-docs/
- http://trello.com/submarinchat/

## 注意

箇条書きで段落つけるときは文章の先頭でTabキー押してください。

## 必要な機能
### システム
- オンラインのメンバー(人間クラス)の配列を取得(アップタイム含めてもいいかも？)
- テキストチャット
- チャンネルの作成と削除と編集
- メッセージ取得
- メッセージ送信(Bot用)
### メディア
- 画像アップロード、URLを取得

## API(クライアント)詳細
### プラットフォーム
- Oauth 2.0
- Nodejs
- Python (3.x)
- Nim
### API制限
- 短期間での大量アクセス
- 目安1919分に114514回
- 鍵チャンネルへの接続試行5回
### アカウント無効化
- 短期間に制限3回、4回目は無いぞ
- アカウント登録ページから解除申請

## APIのクラス
### クライアント
#### メソッド
- チャンネルIDからチャンネルクラスを取得
- チャンネルを作成
- チャンネルを削除
- チャンネルの編集
- 名前の変更
- 鍵の有無(変更は鍵を一旦解除してからもっかいつけなおす感じでいくか)
- チャンネルへ接続(メッセージを垂れ流す)
#### 子供
- チャンネル一覧(IDをキーとした連想配列、値にチャンネルクラスのobj)
- イベント
- メンション時(これAPIで提供する必要あるかな？)→暇な時に作るかも
- 接続したチャンネルでのメッセージ受信時
- 受信したメッセージに特殊要素があれば専用クラス化([pic]:とか)
    これはクライアント側で処理するかも
### 人間
#### メソッド
- その人間をミュート
- その人間をメンション先に追加する
- 子供
- アイコンURL
- ついたID
- 端末情報
- Official
- UUID(? : 詳細未定)
- チャンネル
- メソッド
- チャンネルにメッセージを送信
- 怪レいメッセージを送信
#### 子供
- チャンネルのオンラインメンバー(人間クラスの配列)一覧
- チャンネル名
- チャンネルのステータス(鍵かオープンか)
- 鍵の場合はパスワード認証で使うなにか
- 複数回(カウントはすべてのチャンネルで共通/ユーザー単位)ミスったらアウト
- 製作者の人間クラス
- 製作者の識別番号(? : 詳細未定)

## APIのエンドポイント
- /media
    - /upload [GET]
        - 画像とかアップロードする用。
        - 対応 : jpeg, png, gif, webp
        - dataクエリにbase64化した画像データをはっつける。
        - 帰ってくるのはJSON
            - url : 画像のURL
- /pubnubkeys [GET]
    - ぱぶなぶ卒業したら廃止予定