当前位置: 首页 > 知识库问答 >
问题:

top.gg投票webhook(discord.js)

钱经业
2023-03-14

我正在努力使一个top.gg投票webhook,由于某些原因,它给我‘未定义’回来时,我投票。下面是我的代码:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.use(express.static('public'));

app.get('/', function(req, res){
    res.send(`This is not a website!`);
});

app.post('/dblwebhook', function(req, res) {
    if(req.headers.authorization !== 'top.gg auth') return console.log(`Invalid request!`);
    if(req.body.type === 'test'){
        console.log(req.vote); //gives back 'undefined'
    } else {
        console.log(req.vote); //gives back 'undefined'
    }

   res.send({code: 'success'});
});

有人看到我做错了什么吗?

共有1个答案

柳玄裳
2023-03-14

找到答案了,忘了从@topgg/sdk包中添加webhook中间件。它看起来是这样的:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const topgg = require('@topgg/sdk');

const webhook = new topgg.Webhook('auth');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.use(express.static('public'));

app.get('/', function(req, res){
    res.send(`This is not a website!`);
});

app.post('/dblwebhook', webhook.middleware(), function(req, res) {
    if(req.headers.authorization !== 'top.gg auth') return console.log(`Invalid request!`);
    if(req.body.type === 'test'){
         console.log(req.vote);
    } else {
         console.log(req.vote);
    }

   res.send({code: 'success'});
});
 类似资料:
  • 一、简介 系统的投票功能提供了两种投票类型,第一个是单选投票.第二种是多选投票.网站编辑人员可以根据实际的需求,选择类型进行操作。 何处使用投票: 常用于首页、内容页、及专题页面。所有你想放投票的区域。 如何使用: 只需要根据投票所放位置不同,复制对应代码到模版里即可。 系统信息发布页 和 专题管理内置提供了投票选择功能,只需手动点选,即可添加投票。 针对不同位置CSS样式不同,系统提供了三种常用

  • 现在我们的系统更完善了,但是想要找到最受欢迎的帖子有点难。我们需要一个排名系统来给我们的帖子排个序。 我们可以建立一个基于 karma 的复杂排名系统,权值随着时间衰减,和许多其他因素(很多功能都在 Telescope 中实现了,他是 Microscope 的大哥)。但是对于我们的例子 app, 我们尽量保持简单,我们只按照帖子收到的投票数为它们排序。 让我们实现一个给用户为帖子投票的方法。 数据

  • 获取投票信息 Mudu.Room.Vote.Get(function (response) { response = JSON.parse(response) if (response.status === 'y') { console.log('获取成功,数据为:', response.data) } if (response.status === 'n') {

  • 投票模块 投票模块PC标签调用说明 模块名:vote 模块提供的可用操作   操作名 说明 lists 获取投票列表 get_vote 获取投票概述 获取投票列表(lists): 可用参数: 参数名 是否必须 默认值 说明 siteid 是 null 站点ID enabled 否 1 显示方式 order 否 subjectid DESC 排序方式 代码例子: {pc:vote action="l

  • Mudu.Room.Vote 投票组件 获取投票信息 Mudu.Room.Vote.Get(function (response) { response = JSON.parse(response) if (response.status === 'y') { console.log('获取成功,数据为:', response.data) } if (response.st

  • 我想找到一种方法,使悬停属性在投票后保持活动状态,这是状态,并让Javascript或Firebase记住为该用户保持投票图标处于该状态。所以当一个用户投了几个名字,然后再回到页面时,他们会看到他们投了哪些名字,他们投的是什么。 我正在寻找如何实现这一目标的想法。 目前,在firebase中,我将用户的身份验证ID(uid)保存在他们投票的每个人的名字中,或者是1或者是-1表示支持或支持。我确信可