開発者
Mateflow API で構築する。
1 つのキーが 1 つのコミュニティに対応します。投稿・フィード・スペース・メンバーを読み取り、メンバーに代わって投稿し、すべてのイベントを Webhook で受け取る——そのすべてが 1 つの JSON API から。
できること
連携に必要なものはすべて
スコープ付き API キー
コミュニティ管理画面でキーを作成し、それぞれに必要なスコープだけを付与します。認証は X-API-Key ヘッダーで行い、管理すべきセッションはありません。
Growth 以上
JSON API
一貫した 1 つのエンベロープでコミュニティを読み書きします。すべてのエンドポイントは /site_open_api/v1 配下にあり、JSON ボディの POST を受け取り、コミュニティはキーから逆引きされます。
Growth 以上
Webhook
エンドポイントを登録すれば、イベントが起きた時点で受け取れます。配信には安定した event_id が含まれるのでリトライを重複排除でき、同じ id が Slack・Discord・Zapier 側にも届きます。
Growth 以上
インテグレーション
インテグレーションハブから Slack・Discord・Zapier を接続し、アプリカタログを閲覧し、接続済みアプリを 1 か所で管理できます。
シングルサインオン
2 組目の認証情報を維持する代わりに、チームとメンバーの認証を 1 か所に集約します。
Business 以上
配信ログ
Webhook の配信試行はすべて、ペイロードとレスポンスとともに記録されます。失敗した配信を調べ、自分が何を返したかを確認し、管理画面から再送できます。
Growth 以上
24 のエンドポイント、1 つのエンベロープ
すべて https://api.mateflow.com/site_open_api/v1 配下にあり、JSON ボディの POST を使います。以下は多くの連携が最初に使うものです——全一覧はリファレンスにあります。
- POST/capabilities/getスコープ不要キー・スコープ・残り割り当てを確認する
- POST/site/getsite.readコミュニティのプロフィールと設定を読む
- POST/feed/listcontent.readコミュニティフィードをページ送りする
- POST/post/searchcontent.read投稿を検索する
- POST/post/createcontent.writeメンバーとして投稿する
- POST/space/listspaces.readその視点で見えるスペースを一覧する
- POST/member/lookupmembers.readメールアドレスからメンバーを特定する
- POST/media/get_tokenmedia.writeメディアアップロード用トークンを取得する
クイックスタート
3 ステップで始める
API アクセスを有効にする
API アクセスはコミュニティオーナーが有効にするプラン機能です。有効でなければすべての呼び出しが 22203 を返し、キーも作成できません——コードではなく、まずここから始めてください。
スコープ付きのキーを作る
コミュニティ管理画面 → インテグレーション → API Keys。必要なスコープだけを選んでください。キーの作成後にスコープは変更できません。キー全体が表示されるのは 1 回だけです。
まず /capabilities/get を呼ぶ
スコープ、API アクセスの有無、割り当ての残量を返します。プランのゲートや割り当てが他のすべてを塞いでいるときでも、答えを返す唯一のエンドポイントです。割り当ても消費しません。
使用量と制限
プランごとの上限
日次割り当ては認証を通過したすべてのリクエストを数え、UTC 0 時にリセットされます。割り当て 0 は「未設定だから無制限」ではなく閉ざされた扉で、すべての呼び出しが 22204 を返します。
| プラン | Open API | 1 日あたりのリクエスト数 | Webhook エンドポイント数 |
|---|---|---|---|
| Starter | 含まれない | — | — |
| Growth | 含まれる | 5,000 | 5 |
| Business | 含まれる | 10,000 | 20 |
| Enterprise | 含まれる | 無制限 | 無制限 |
日次割り当てに加えてバースト制限がキー単位で適用されます——リファレンスのレート制限を参照してください。
最初の呼び出しを 3 通りで
同じリクエストを各言語で。ほかのコードを書き始める前に、キーが有効かを確認しましょう。mfk_xxx は管理画面の実際のキーに置き換えてください。
curl -X POST \
https://api.mateflow.com/site_open_api/v1/capabilities/get \
-H "X-API-Key: mfk_xxx" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch(
"https://api.mateflow.com/site_open_api/v1/capabilities/get",
{
method: "POST",
headers: {
"X-API-Key": process.env.MATEFLOW_API_KEY,
"Content-Type": "application/json",
},
// Endpoints that take no parameters still want a JSON body.
body: "{}",
},
);
const { code, data } = await res.json();
// Branch on `code`, never on the HTTP status:
// 22203 and 22204 are 403, and only 10202 is throttling.
if (code !== 0) throw new Error(`Mateflow API error ${code}`);
console.log(data.scopes, data.quota_used, data.quota_limit);import os, requests
res = requests.post(
"https://api.mateflow.com/site_open_api/v1/capabilities/get",
headers={"X-API-Key": os.environ["MATEFLOW_API_KEY"]},
json={},
)
body = res.json()
if body["code"] != 0:
raise RuntimeError(f"Mateflow API error {body['code']}")
print(body["data"]["scopes"], body["data"]["api_access"])OpenAPI 契約
機械可読な契約はすべてのパスとリクエスト・レスポンススキーマを網羅し、任意のクライアントジェネレーターに渡せます。公式 SDK はロードマップ上です。それまでは自分で生成してください。
リファレンス
API リファレンス全文
スコープ、ページネーション、冪等性、エラーコード、レート制限、Webhook の重複排除——そして本番に出してから初めて噛みついてくる少数の例外。
構築の準備はできましたか?
アカウントを作成し、API キーを生成して、Mateflow をワークフローに組み込みましょう。
14日間の無料トライアル · クレジットカード不要