IFTTT を使って新しいトピック、投稿、またはプライベートメッセージを作成したいですか?さっそく始めましょう!
IFTTT サービスの Maker Webhooks を使用することで、Discourse API への呼び出しが可能です。そのためには、まず API キーを生成する必要があります。API キーは管理パネルの /admin/api/keys から作成できます。
また、ユーザー管理ページを通じてユーザー固有の API キーを生成することも可能です。
次に、IFTTT で 新しいアプリレットを作成 し、お好みのトリガーサービスを選択します。ここでは例として Google カレンダー サービスを使用します。
\u003cimg src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/3/4/341b41d93de97b271496b99dcc53d21df4089ac4.png" width="591" height="409"\u003e
次に、新しいイベントが追加された場合 というトリガーを選択します。
\u003cimg src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/a/9/a92552c97474e03de602f8f5b134e4d3929bc76b.png" width="690" height="330"\u003e
トリガーを Discourse に接続するには、アクションサービスとして Maker Webhooks を、アクションとして Web リクエストを送信 を選択します。
\u003cimg src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/c/9/c9522a31c798594cadafc8f3962b0eb4cccc6a13.png" width="681" height="500"\u003e
次に、アクションフィールドを以下のように設定します。
- URL (必須):
https://discourse.example.com/posts.json - メソッド (必須):
POST - コンテンツタイプ:
application/json - 追加ヘッダー:
Api-Key: [YOUR_API_KEY]
Api-Username: [API_USERNAME]
\u003e
重要: API 認証情報は URL クエリパラメータではなく、HTTP ヘッダー (Api-Key および Api-Username) として送信する必要があります。Discourse は POST リクエストにおけるクエリパラメータ経由の API キー認証を受け付けません。IFTTT の Maker Webhooks サービスではカスタムヘッダーがサポートされています。追加ヘッダー フィールドを使用してヘッダーを追加してください。
- ボディ:
{
"title": "{{Title}}",
"raw": "{{Description}}\n\n場所: {{Where}}\n時刻: {{Starts}} - {{Ends}}",
"category": 4,
"created_at": "{{CreatedAt}}"
}
\u003cimg src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/7/7/77365735ed9f95d460f2de4c16bcb13dbfda9ea0.png" width="194" height="500"\u003e
ボディテキストには {{ }} で囲まれた多くのフィールドが表示されます。これらのフィールド(コンテンツソース)は、サービスやトリガーによって異なります。下部の Ingredient ボタンから選択してください。
JSON ボディ内の title や raw フィールドは、必要に応じて周囲のテキストと共に編集できます。カテゴリ ID は、サイト内の /site.json URL から確認し、カテゴリフィールドに設定してください。その後、アクションを作成 ボタンをクリックしてアプリレットを作成します。アプリレット作成後、公開されるまで少し時間がかかる場合があります。
これで完了です
。これで、Google カレンダーに新しいイベントが追加されるたびに、新しいトピックが自動的に作成されるようになります
。
新しいトピックの作成ではなく、既存のトピックへの返信を投稿するには、ボディテキストを以下のように変更します(category の代わりに topic_id を使用)。
{
"title": "{{Title}}",
"raw": "{{Description}}\n\n場所: {{Where}}\n時刻: {{Starts}} - {{Ends}}",
"topic_id": 4,
"created_at": "{{CreatedAt}}"
}
新しいプライベートメッセージを作成するには:
{
"title": "{{Title}}",
"raw": "{{Description}}\n\n場所: {{Where}}\n時刻: {{Starts}} - {{Ends}}",
"target_usernames": "discourse1,discourse2",
"archetype": "private_message",
"created_at": "{{CreatedAt}}"
}
この方法と同様に、他の IFTTT アクションサービス を使用して Discourse API リクエストを作成することも可能です。
