将client.login(token)
放入response.send("Test");
所在的位置。这将提示您的漫游器代码在HTTP请求后执行。
在https://us-central1-<your project ID>.cloudfunctions.net/app
中,将<your project ID>
替换为项目的ID。
如果Firebase Hosting为您提供URL example-123.web.app
,则您的项目ID为example-123
。您还可以通过控制台获取项目ID:打开Firebase控制台,选择项目,单击设置图标,转到“项目设置”,其ID在表格的第二行。
为此,您必须将令牌直接移到代码中。您不能使用.env之类的shell文件。
最后,您的代码将是:
const functions = require('firebase-functions');
const token = 'whatever the token is';
const Discord = require('discord.js')
const Client = new Discord.Client();
Client.on('ready',() => {
Client.channels.find(x => x.name === 'main-cannel').send('bot is deployed')
Client.user.setGame(`The Cult | ${Client.guilds.size} servers`)
Console.log('test')
});
exports.app = functions.https.onRequest((request,response) => {
response.send("Test"); // Do not delete this! Your request will time out if you do.
Client.login(token);
});
正如Gabber235所指出的那样,这可能不是最好的Google Cloud Platform服务,您应该使用Compute Engine。
,
这可能不是google云平台服务的最佳组合,因为云功能在设计时并未考虑到这一点。您只需将Discord机器人托管在计算引擎计算机上即可。
如果要使用动态缩放,请查看Discord Microservice Bots,其中DasWolke描述了什么是微服务。嘿,还包括了他的JavaScript代码,以为Discord拆分不同的服务。
具体来说,您可以在Google云平台上执行的操作是创建运行Gateway的VM。这需要运行24/7,并且应该是轻量级的。您可以为此使用f1-micro(免费),尽管Google建议该任务使用g1-small。
网关应过滤您要查找的事件(因为Discord发送了很多事件,您不需要的事件最多),然后将数据发送到cloud function或cloud run(您可以发送数据通过pub/sub)。根据我的经验,云运行的启动时间要短得多,所以我选择了。
在您的函数内部,您将收到所需的数据。如果您需要Discord中的某些功能(发送消息,管理频道等),可以使用SnowTransfer。 SnowTransfer只是不和谐地调用其余的API。
本文链接:https://www.f2er.com/3151909.html