1.购买服务器
阿里云:
服务器购买地址
https://t.aliyun.com/U/kcrvBe
若失效,可用地址
https://www.aliyun.com/activity/wuying/dj?source=5176.29345612&userCode=49hts92d
腾讯云:
https://curl.qcloud.com/wJpWmSfU
若失效,可用地址
https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console
华为云
https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905
2.部署教程
3.代码如下
const axios = require('axios');
let msg = "【共创世界】:\n";
const token = config.ccw.token
const headers = {
'Content-Type': 'application/json',
token
};
async function checkIn() {
const url = 'https://community-web.ccw.site/study-community/check_in_record/insert';
const body = {
"scene": "HOMEPAGE"
};
try {
const response = await axios.post(url, body, { headers });
if (response.data && response.data.code === "200") {
console.log("签到成功");
return "成功";
} else if (response.data && response.data.code === "10736001") {
console.log("用户已签到");
return "用户已签到";
} else {
return "签到失败";
}
} catch (error) {
console.error("签到失败", error);
return "签到失败";
}
}
async function queryBalance() {
const url = 'https://community-web.ccw.site/currency/account/personal';
try {
const response = await axios.post(url, {}, { headers });
if (response.data && response.data.code === "200" && response.data.body) {
console.log("当前积分:", response.data.body.internalCurrencyBalance);
return response.data.body.internalCurrencyBalance.toString();
} else {
return "获取积分失败";
}
} catch (error) {
console.error("查询失败", error);
return "查询失败";
}
}
async function task() {
let checkInMsg = await checkIn();
let balanceMsg = await queryBalance();
msg += `签到:${checkInMsg}\n积分:${balanceMsg}`;
// console.log(msg);
return msg
}
//task(); // 如果你想在文件执行时直接运行 task 函数
module.exports = task; // 允许其他文件导入并使用 task 函数
解析
脚本定义了一个名为 task
的异步函数,用于处理共创世界社区的用户签到和查询积分任务。它通过axios库向特定API发送HTTP请求,执行签到操作并获取用户当前积分。
checkIn
功能:向社区的签到API发送POST请求以进行用户签到。
流程:
如果响应的
code
是"200"
,表示签到成功。如果
code
是"10736001"
,表示用户已经签到。其他情况视为签到失败。
URL:指向社区签到记录接口的URL。
请求体:包含固定的场景值
"scene": "HOMEPAGE"
。处理响应:
错误处理:捕获网络请求或其他错误,并返回签到失败的消息。
queryBalance
功能:查询当前用户的积分余额。
流程:
如果响应的
code
是"200"
且有有效的body
数据,提取并返回积分余额。其他情况返回获取积分失败的消息。
URL:指向查询个人积分账户的URL。
处理响应:
错误处理:捕获网络请求或其他错误,并返回查询失败的消息。
task
功能:协调签到和查询积分的任务,并整合输出。
流程:
串行执行
checkIn
和queryBalance
函数,获取返回的消息。将结果整合进最终的消息字符串
msg
中,格式化输出签到和积分信息。返回这个整合后的消息字符串。
错误处理
每个功能函数都使用 try-catch
结构来捕获执行中的异常,如网络请求失败或数据处理错误,确保程序能够优雅地处理这些异常情况。
模块导出
通过
module.exports
导出task
函数,允许在其他Node.js文件中通过require
引入和使用该函数,实现模块化的任务调用。
使用场景
这个脚本非常适合需要自动化执行日常签到和积分查询任务的应用场景,尤其适用于需要维护社区活跃度和追踪积分变化的用户。通过自动化这些常规任务,用户可以节省时间并即时获取关键信息。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论