发布于 2026-01-06 1 阅读
0

我是如何让 Google 表单自动将提交内容发布到我们的 Discord 服务器的 DEV's Worldwide Show and Tell Challenge Presented by Mux: Pitch Your Projects!

我是如何让 Google 表单自动将提交内容发布到我们的 Discord 服务器的

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

动机

一位朋友邀请我和他一起开发一款游戏,我当然欣然接受。项目初期,我们就决定需要招募测试玩家,并设计一个申请成为测试玩家的途径。我立刻想到了谷歌表单,于是便着手编写代码,让表单自动将答案发布到我们的 Discord 服务器中。

第一部分:那么……我该如何开始呢?

我知道我需要两样东西:一个 Discord webhook,以及一个能在每次表单提交时都向其发送请求的工具。我很快发现了Apps Script,它能让我与许多 Google 应用(包括表单)进行交互,我可以利用它将我的想法变为现实。

第二部分:好了,让我们开始吧。

首先,我想弄清楚我的表单插件是否可以发送 HTTP 请求,然后找到了UrlFetchApp.fetch。

function onSubmit(e) {
  UrlFetchApp('somecoolurlidk')
}
Enter fullscreen mode Exit fullscreen mode

第三部分:但我可以使用 Discord Webhook 吗?

是的。Discord Webhook 的文档非常棒,我几分钟之内就设置好了

function onSubmit(e) {
  var discordPayload = {
    content: 'Form submitted'
  }
  UrlFetchApp('discordwebhookurl', {
    method: 'post',
    payload: JSON.stringify(discordPayload),
    contentType: 'application/json'
  })
}
Enter fullscreen mode Exit fullscreen mode

第四部分:好了,是时候把它连接到表单了。

通过访问Edit > Current project's triggers,我可以设置表单,以便onSubmit在表单提交时触发该函数。
设置触发器
Webhook 的实际应用

第五部分:整合所有内容

我没什么好说的。我漫无目的地浏览了大约一个小时的 Apps Script 文档,但最终还是写出了这段代码:

function onSubmit(e) {
  var discordPayload = { 
    content: 'Form submitted',
    embeds: [{
      type: 'rich',
      title: 'Form submission',
      color: 7506394,
      fields: []
    }]
  }
  e.response.getItemResponses().forEach(function(i) {
    var v = i.getResponse() || 'None'
    discordPayload.embeds[0].fields.push({ name: i.getItem().getTitle(), value: v })
  })
  UrlFetchApp.fetch('youknowwhatgoeshereanywaysandimnotinthemoodtoleakstuff', {
    method: 'post',
    payload: JSON.stringify(discordPayload),
    contentType: 'application/json'
  })
}
Enter fullscreen mode Exit fullscreen mode

最终的 webhook 实际应用

文章来源:https://dev.to/cyber28/how-i-made-google-forms-automatically-post-submissions-in-our-discord-server-3fh0