求助:如何将当前URL发送至Discord Webhook?
将当前页面URL发送到Discord Webhook的实现方法及替代方案
一、可行实现方法
1. 浏览器控制台/用户脚本(Tampermonkey等)
直接用JS调用Discord Webhook接口,控制台或用户脚本不受页面跨域限制,操作简单:
// 替换成你的Discord Webhook地址 const webhookUrl = 'https://discord.com/api/webhooks/xxx/yyy'; const currentUrl = window.location.href; fetch(webhookUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ content: `当前页面URL:${currentUrl}` }) }) .then(res => console.log('发送成功')) .catch(err => console.error('发送失败:', err));
你可以把这段代码存成Tampermonkey脚本,设置打开页面自动触发;也可以手动复制到浏览器控制台运行。
2. 后端中转(解决前端跨域问题)
如果要在网页中直接集成这个功能,因为Discord Webhook默认不允许前端跨域请求,需要搭个简单后端做中转。比如用Node.js的Express快速实现:
const express = require('express'); const fetch = require('node-fetch'); const app = express(); app.use(express.json()); app.post('/send-url', async (req, res) => { const { url } = req.body; const webhookUrl = 'https://discord.com/api/webhooks/xxx/yyy'; try { await fetch(webhookUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ content: `页面URL:${url}` }) }); res.status(200).send('发送成功'); } catch (err) { res.status(500).send('发送失败'); } }); app.listen(3000, () => console.log('中转服务运行在3000端口'));
前端调用这个后端接口即可:
const currentUrl = window.location.href; fetch('http://你的后端地址/send-url', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: currentUrl }) });
3. 浏览器扩展
开发一个极简的Chrome/Edge扩展,点击图标就发送当前标签页的URL。核心代码(background.js):
chrome.action.onClicked.addListener(async (tab) => { const webhookUrl = 'https://discord.com/api/webhooks/xxx/yyy'; await fetch(webhookUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ content: `当前页面URL:${tab.url}` }) }); });
配合manifest.json(v3版本)配置:
{ "manifest_version": 3, "name": "URL转Discord", "version": "1.0", "action": {}, "background": { "service_worker": "background.js" }, "permissions": ["activeTab"] }
打包后安装到浏览器,点击扩展图标就能发送当前页面URL。
二、替代方案
如果不想写代码或搭服务,试试这些方式:
- 书签工具:创建一个新书签,把以下代码作为书签的URL,点击书签即可触发发送:
javascript:(function(){const u='https://discord.com/api/webhooks/xxx/yyy';fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({content:`当前页面URL:${window.location.href}`})})})();
注意:部分浏览器可能限制书签中的跨域请求,遇到错误的话还是用用户脚本或扩展方案更稳定。
- 自动化平台:用Zapier、Make这类工具,设置触发器为浏览器的收藏/标记动作,自动将页面URL推送到Discord Webhook,全程无需写代码。
内容的提问来源于stack exchange,提问作者Slaughter
相关产品推荐
相关产品推荐

