想使用 IFTTT 创建新主题、帖子和个人消息吗?让我们开始吧!
通过 IFTTT 服务的 Maker Webhooks,我们可以调用 Discourse API。为此,我们需要先生成 API 密钥。您可以在管理面板的 /admin/api/keys 处创建 API 密钥。
此外,我们还可以通过用户管理页面生成特定于用户的 API 密钥。
现在,在 IFTTT 上 创建新应用,然后选择您喜欢的触发服务。例如,我现在使用的是 Google Calendar 服务。
接下来,我选择 Any new event added(添加任何新事件)作为触发条件。
要将触发条件与 Discourse 连接,请选择 Maker Webhooks 作为操作服务,并选择 Make a web request(发出网络请求)操作。
现在,按如下方式填写操作字段。
-
URL(必需):
https://discourse.example.com/posts.json -
Method(方法,必需):
POST -
Content Type(内容类型):
application/json -
Additional Headers(附加标头):
Api-Key: [YOUR_API_KEY]
Api-Username: [API_USERNAME]
重要提示:API 凭据必须作为 HTTP 标头(
Api-Key和Api-Username)发送,而不是作为 URL 查询参数。Discourse 不接受通过查询参数进行 POST 请求的 API 密钥身份验证。IFTTT 的 Maker Webhooks 服务支持自定义标头 — 请使用 Additional Headers 字段添加它们。
- Body(请求体):
{
"title": "{{Title}}",
"raw": "{{Description}}\n\nPlace: {{Where}}\nAt: {{Starts}} - {{Ends}}",
"category": 4,
"created_at": "{{CreatedAt}}"
}
在请求体文本中,您会看到许多带有双括号 {{ }} 的字段。这些字段(内容源)会因每个服务的触发条件而异。请从下方的 Ingredient(变量)按钮中选择。
您可以根据需要编辑 JSON 请求体中的 title 和 raw 字段,包括周围的文本。从您网站的 /site.json URL 中找到分类 ID 并将其放入分类字段中。现在点击 Create action(创建操作)按钮以创建应用。应用创建后,可能需要一些时间才能生效。
完成啦
。现在,每当您的 Google Calendar 上创建新事件时,都会自动创建一个新主题
。
若要回复现有主题而不是创建新主题,请将请求体文本修改如下(使用 topic_id 代替 category):
{
"title": "{{Title}}",
"raw": "{{Description}}\n\nPlace: {{Where}}\nAt: {{Starts}} - {{Ends}}",
"topic_id": 4,
"created_at": "{{CreatedAt}}"
}
若要创建新的个人消息:
{
"title": "{{Title}}",
"raw": "{{Description}}\n\nPlace: {{Where}}\nAt: {{Starts}} - {{Ends}}",
"target_usernames": "discourse1,discourse2",
"archetype": "private_message",
"created_at": "{{CreatedAt}}"
}
使用相同的方法,您可以通过任何其他 IFTTT 操作服务 发起 Discourse API 请求。




