Blog Image

つなげーとAPIを使ってみたのでご紹介!

0

1

サークルの募集ページを毎回手作業で作っていませんか? 私たちのサークルでは、つなげーとが公開している「外部API」を使って、イベントの下書き作成を自動化しています。
こちらの機能はリリースノートの記載にはなく、サイレントで使えるようになっていました。

公式のドキュメントはかなり簡潔で、実際に触ってみないと分からない部分も多くありました。
私は実際に下書きの仕様がバグっていて、運営に問い合わせなども行いながら、なんとか使えるようになりました。笑
この記事では、実際に手を動かした結果を交えながら、公式より一歩踏み込んで解説します。

この記事はこんな人向けです

・つなげーとの外部APIって何ができるのか知りたい人
・「AI × つなげーとAPI」でイベント管理を自動化したい運営・サークル担当者
・プログラミング用語(API・curl・トークンなど)に慣れていないけれど、雰囲気だけでも掴みたい人

エンジニア向けの言葉が出てくる箇所には、できるだけかんたんな説明を添えています。

つなげーとAPIを使うメリット(AIと組み合わせる場合)

「イベント作成なんて、いつも通り画面から手入力すればいいのでは?」と思う方も多いと思います。 1〜2件のイベントを作るだけなら、正直それで十分です。

ただ、月に何度もイベントを作る運営にとっては、画面での手入力には次のような負担があります。

・毎回同じ項目(会場の説明・キャンセルポリシー・当日の流れなど)を、コピペしながら手で入力し直す
・過去のイベントを参考にするとき、別タブで開いた画面を見ながら転記する必要がある
・タイトル・日時・チケットなど、入力項目が多く、入力漏れやコピペミスに気づきにくい

API自体は「画面の入力作業を、プログラムから行えるようにする窓口」でしかないので、API単体では正直この負担はあまり変わりません。 メリットが生きてくるのは、AIと組み合わせたときです。

AIエージェント(Claude Codeなど)に「過去のイベント内容を読んで、日付だけ変えて下書きを作って」と頼めば、

・過去のイベント本文から、必要な項目を自動で拾い出し
・つなげーとAPIへ送るための形式に自動で整形し
・下書き作成までを自動で実行

というところまでを、AIが代わりにやってくれます。人がやることは、最後に下書きの内容を確認して「公開する」を押すだけです。

つまり、「画面から手入力する」か「APIをゼロから覚えて自分でcurlを書く」かの二択ではなく、 「APIの仕組みをAIに理解させておき、指示するだけで下書きまで作ってもらう」という第三の選択肢がある、というのがこの記事で一番伝えたいことです。 そのために、まずはつなげーとAPIで「何ができるのか」を確認していきます。

APIとは

API(Application Programming Interface)は、アプリ同士がデータをやり取りするための「窓口」です。

普段私たちがつなげーとでイベントを作るときは、ブラウザの画面でタイトルや日時を入力し、ボタンを押します。 API はこの操作を、画面を使わずにプログラムから直接行えるようにする仕組みです。

つなげーとの外部APIは、HTTPという通信の仕組みの上に作られています。 HTTPは、ブラウザでWebサイトを見るときにも使われている、インターネット上でデータをやり取りするための共通ルールです。

「このURLに、こういう形式でデータを送ると、こういう結果が返ってくる」という約束事(仕様)に沿ってリクエストを送るだけで、イベントの作成・取得・更新・削除ができます。

用語メモ

リクエスト: プログラムやツールから「これをやってほしい」とAPIに送る依頼のこと
レスポンス: リクエストに対してAPI側から返ってくる結果のこと
エンドポイント: リクエストを送る先のURL(窓口の住所のようなもの)

つなげーとAPIでできること

つなげーとの外部APIでは、次のことができます。

ポイントは、作成がいきなり公開にならないことです。

① POST /api/external/events 下書き作成(誰にも見えない)
↓
(人が編集画面で内容を確認)
↓
② POST /api/external/events/:id/publish ここで初めて一般公開

下書きと公開の2段階に分かれているので、プログラムが誤った内容を生成しても、 人が確認する前に世の中に公開されてしまう事故を防げます。 私たちの運用でも、①(下書き作成)まではプログラムに任せ、②(公開)は必ず人がボタンを押す、と決めています。

インターフェース仕様

つなげーとへ情報を取得したり、イベント作成したりする際の接続方法のルールを説明します。

ざっくりとした説明は以下で公式がだしています。
https://tunagate.com/support/external_api

認証

リクエストヘッダに、発行したトークンを次の形式で乗せます。

Authorization: Bearer <トークン>

主なエンドポイント

主なパラメータ

送信形式はフォームエンコード(event[title]=... のようなネスト形式)です。

用語メモ: JSON(ジェイソン) APIのレスポンスは「JSON」という形式のテキストで返ってきます。 {"id": 620514, "title": "..."} のように、{ } の中に「項目名: 値」を並べた書き方で、 プログラムが扱いやすいデータの表現方法です。難しく見えても、エクセルの1行分のデータだと思えば大丈夫です。

ただ、パラメータについて全量がわからないので、何が設定できて、何が設定できないなどの見境がわかりづらいのがちょっと難点。
感想ですが、AIを使えばある程度わかりますが、初心者にはかなりきついなぁと思いましたね。

公式ドキュメントに載っていないポイント

実際に触ってみて分かった、公式ドキュメントに書かれていない挙動もいくつかありました。

・チケットのプランは events_plans[][plan](チケット名)・events_plans[][creator_price](価格)というキー名で送る必要がある(name / price ではない)
・プランを省略すると、無料プラン1件が自動生成されてしまう。有料イベントのつもりが無料公開になってしまうので、必ずプランを渡す
・main_image_url に指定した画像の取得に失敗すると、リクエスト全体が422エラーになる
・一覧取得APIはデフォルトでは下書きを返さない。下書きも含めたい場合は include_drafts=true を付ける(これも公式ドキュメントには記載がなく、運営に問い合わせて判明した)

実演(curl文)

curlとは

ここから先は「curl(カール)」というコマンドを使います。

curlは、ターミナル(文字だけでパソコンを操作する黒い画面)から、APIにリクエストを送るための定番ツールです。 「このURLに、こういうデータを付けて送ってください」という指示を、1行のコマンドとして書けます。

curl自体はMac・Windowsどちらにも標準、もしくは簡単な準備で使えるツールです。 今回はMacBookに標準搭載のターミナルアプリを、コードエディタの「VSCode(Visual Studio Code)」に内蔵されたターミナル機能から使っています。 VSCodeのインストール方法や基本的な使い方は本記事では扱いません。 別途、導入方法の記事で紹介する予定です(Macのターミナルアプリだけでも同じことができます)。

まず、つなげーとの管理画面「外部ツール連携 → APIトークン管理」から、トークンを発行します。

このトークンは今だけ表示され、二度と表示されません。
また、悪用される可能性があるため、他の人に漏洩しないように気をつけてください。
必ずコピーして、環境変数やパスワードマネージャーに保存してください。

用語メモ: トークン・環境変数

・トークン: 「これはあなたが本人です」と証明するための、いわば合言葉のような文字列
・環境変数: パソコンの中に一時的に保存しておける値。export 変数名=値 と入力すると、そのターミナルを閉じるまで使い回せる

次に、自分のサークルURL(https://tunagate.com/circle/(数字))の数字部分から、サークルIDを確認します。

準備ができたら、実際にcurlコマンドを打ってイベントの下書きを作成してみます。
先ほど言っていたVSCodeのターミナル画面です。こちらで以下コマンド打っていきます。
※一部私の個人情報もあるためマスクしています。

▪️環境変数設定コマンド(これを設定することで認証チェックを通過することができる)
export TUNAGATE_API_TOKEN=(発行したトークン)

▪️実行結果
実行しても何も起きないが、ちゃんと設定はされています。

▪️実行Curl文
curl -X POST https://tunagate.com/api/external/events \
-H "Authorization: Bearer $TUNAGATE_API_TOKEN" \
-d "circle_id=(自分のサークルID)" \
-d "event[title]=API解説イベント(下書きテスト)" \
-d "event[event_date]=2026-12-01T19:00:00" \
-d "body=これはAPI動作確認用の下書きです。"

▪️実行結果
実際に叩くと、次のようなJSONが返ってきます(値の一部は伏せています)。

{
"id": 620514,
"circle_id": 97956,
"title": "API解説イベント(下書きテスト)",
"status": "draft",
"event_date": "2026-12-01T19:00:00.000+09:00",
"public_url": "https://tunagate.com/circle/97956/events/620514",
"edit_url": "https://tunagate.com/event/edit/620514",
"body": "これはAPI動作確認用の下書きです。",
"capacity": null,
"min_num_of_people": 2,
"is_publicity": true,
"plans": [
{
"id": 1233270,
"plan": "参加プラン",
"capacity": 0,
"creator_price": 0,
"price_type": 99,
"is_publicity": true,
"is_application_allowed": true,
"expired_at": null
}
]
}

status が "draft" になっている通り、この時点ではまだ誰にも公開されていません。 この id(今回は 620514)を使えば、詳細取得・更新・公開ができます。

また、プランを1件も指定しなかったので、「参加プラン」という名前・価格0円のプランが自動生成されています。 実際の告知では、ここに参加費や定員を指定したプランを渡す必要があります。

確認

下書きが正しく作られたかを、2通りの方法で確認します。

1. APIから確認する

以下のCurl文でつなげーとから値が返却されるかを確認することでちゃんとイベントが作成されたかを確認します。

▪️実行Curl文
curl https://tunagate.com/api/external/events/(作成されたid) \
-H "Authorization: Bearer $TUNAGATE_API_TOKEN"

▪️実行結果
赤枠部分がつなげーとから返ってきました。

2. つなげーとの管理画面から確認する

サークルページを見ると、作成したイベントが「作成中のイベント(下書き)」に表示されています。
まだ「下書き」なので、参加者を含め、他の人からは見えません。

APIのレスポンスに含まれるURL(public_url: https://tunagate.com/circle/97956/events/620514)を開くと、 イベント名・紹介文・チケットが、送信した内容の通りに反映されているのが確認できます。

画面下部には「下書き保存」と「公開する」の2つのボタンが並んでいます。 内容に問題がなければ、ここで人が「公開する」を押すか、APIから POST /api/external/events/:id/publish を叩いて公開します。 このステップは、誤った内容を世に出さないために、必ず人の目で確認してから行っています。

AIを活用すると楽にできるよ

ここまで見てきた通り、curlコマンドは長い上に、event[title]= のような書き方のクセや、 「プランのキー名は plan / creator_price が正解で name / price ではない」といった、 公式ドキュメントに載っていない落とし穴がいくつもあります。

正直なところ、これを毎回手で正確に組み立てるのは、エンジニアでもしんどい作業です。 1文字間違えるだけでエラーになったり、プランを渡し忘れて無料イベントとして公開されてしまったり、というミスも起こりえます。

ここで役に立つのが、Claude CodeのようなAIエージェントです。
私たちのサークルでは、「curl文を書く・実行する」という部分をAIに任せることで、この作業を次のように自動化しています。
さらに、Notionとも連携することで、イベントを効率的に管理などもしています。

・過去のイベント本文から、パラメータ(event[title] や events_plans[][plan] など)を自動で組み立てる
・チケットの定員合計とイベント全体の定員が矛盾していないか、送信前にチェックする
・画像URLが実際に開けるかを事前に確認する

つまり、人間が覚えておくべきなのは「curlの書き方」ではなく、「つなげーとAPIで何ができるか」だけになります。 あとは「イベント名は〇〇、参加費は〇〇円で下書きを作って」とAIに伝えるだけで、 上で説明したcurlコマンド一式をAIが組み立てて実行してくれます。

ただし公開ボタンは必ず人が押す、というルールはAIに任せた後も変えていません。 下書き作成まではAIに任せても、「公開する」を押すかどうかの最終判断は、必ず人が内容を見てから行っています。

公式ドキュメントの行間を読む作業(今回のような「実は include_drafts=true というパラメータがある」といった発見)自体も、 AIと一緒に検証しながら進めると、一人で試行錯誤するより早く進みます。

まだ新しい機能でバグやできないことがあります

ここまで使い方を説明してきましたが、実はチケットの作成時の説明が登録できなかったり、サブ画像が登録できなかったりなど、仕様としてできなかったりするものがあり、開発の途中段階なのかなぁ
と思うところがつなげーとAPIにはあります。
なので完璧じゃないよということだけ伝えておきます。
(私も今それで問い合わせしています)

こちらはつなげーとさんに頑張ってもらいたいですねぇ〜

まとめ

・つなげーとの外部APIは、下書き作成→人の確認→公開、という2段階の設計になっている
・公式ドキュメントに載っていない仕様もあり、実際に叩いて確認する必要がある部分がある
・curl で直接叩くこともできるが、書き方にクセがあり、手作業だとミスも起こりやすい
・AIエージェントに「curl文を書いて実行する」部分を任せれば、覚えることは「APIで何ができるか」だけで済む
・どこまで自動化しても、「公開」は人が最終確認してから押す、という部分は変えていない
イベント運営の裏側は、意外と地味な検証の積み重ねでできています。 同じように外部APIを触っている運営の方の参考になれば嬉しいです。