本文へスキップ

開発者

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 を使います。以下は多くの連携が最初に使うものです——全一覧はリファレンスにあります。

BASE URLhttps://api.mateflow.com/site_open_api/v1
  • 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 ステップで始める

ステップ 01

API アクセスを有効にする

API アクセスはコミュニティオーナーが有効にするプラン機能です。有効でなければすべての呼び出しが 22203 を返し、キーも作成できません——コードではなく、まずここから始めてください。

ステップ 02

スコープ付きのキーを作る

コミュニティ管理画面 → インテグレーション → API Keys。必要なスコープだけを選んでください。キーの作成後にスコープは変更できません。キー全体が表示されるのは 1 回だけです。

ステップ 03

まず /capabilities/get を呼ぶ

スコープ、API アクセスの有無、割り当ての残量を返します。プランのゲートや割り当てが他のすべてを塞いでいるときでも、答えを返す唯一のエンドポイントです。割り当ても消費しません。

使用量と制限

プランごとの上限

日次割り当ては認証を通過したすべてのリクエストを数え、UTC 0 時にリセットされます。割り当て 0 は「未設定だから無制限」ではなく閉ざされた扉で、すべての呼び出しが 22204 を返します。

プランOpen API1 日あたりのリクエスト数Webhook エンドポイント数
Starter含まれない
Growth含まれる5,0005
Business含まれる10,00020
Enterprise含まれる無制限無制限

日次割り当てに加えてバースト制限がキー単位で適用されます——リファレンスのレート制限を参照してください。

最初の呼び出しを 3 通りで

同じリクエストを各言語で。ほかのコードを書き始める前に、キーが有効かを確認しましょう。mfk_xxx は管理画面の実際のキーに置き換えてください。

cURL
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 '{}'
JavaScript
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);
Python
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 はロードマップ上です。それまでは自分で生成してください。

openapi.json をダウンロード

リファレンス

API リファレンス全文

スコープ、ページネーション、冪等性、エラーコード、レート制限、Webhook の重複排除——そして本番に出してから初めて噛みついてくる少数の例外。

構築の準備はできましたか?

アカウントを作成し、API キーを生成して、Mateflow をワークフローに組み込みましょう。

14日間の無料トライアル · クレジットカード不要

無料トライアルを開始