请求编写脚本:从Guilded API拉取活动数据至Google Sheet
解决方案:Guilded API 拉取活动数据并导入Google Sheet
一、Guilded API 基础配置与数据拉取
- 获取API令牌:在Guilded账户设置中生成个人访问令牌,确保令牌包含服务器活动读取权限。
- 调用活动列表接口:
- 接口端点:
GET /servers/{serverId}/events - curl请求示例:
curl -H "Authorization: Bearer YOUR_TOKEN" "https://www.guilded.gg/api/v1/servers/YOUR_SERVER_ID/events" - 解析返回数据:接口返回的
events数组包含每个活动的id(活动ID)、name(活动名称)字段,直接提取即可。
- 接口端点:
二、数据导入Google Sheet
方法1:Google Apps Script(推荐)
- 打开你的测试表格,点击「扩展程序」→「Apps Script」
- 替换默认代码为以下脚本:
function importGuildedEvents() { const token = "YOUR_GUILDED_TOKEN"; const serverId = "YOUR_SERVER_ID"; const url = `https://www.guilded.gg/api/v1/servers/${serverId}/events`; // 发送API请求 const options = { headers: { "Authorization": `Bearer ${token}` } }; const response = UrlFetchApp.fetch(url, options); const data = JSON.parse(response.getContentText()); const events = data.events; // 整理要写入的数据 const output = events.map(event => [event.id, event.name]); output.unshift(["活动ID", "活动名称"]); // 写入工作表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); sheet.clearContents(); sheet.getRange(1, 1, output.length, 2).setValues(output); } - 替换
YOUR_GUILDED_TOKEN和YOUR_SERVER_ID为实际信息,保存后运行脚本并完成授权,即可自动导入数据。
方法2:手动导出导入(临时需求适用)
用Postman或curl调用API后,将返回的JSON数据导出为CSV格式,再直接上传到Google Sheet。
三、API返回数据读取技巧
API返回的是JSON格式,处理时注意:
- 用JSON解析工具(如浏览器控制台、JSONFormatter)查看数据结构,确认字段路径
- 在脚本中用
JSON.parse()将返回内容转为对象,通过.或[]访问字段,比如event.id、member.user.name - 嵌套字段需逐层解析,比如获取活动成员用户名:
const eventMembersUrl = `https://www.guilded.gg/api/v1/events/${eventId}/members`; const membersResponse = UrlFetchApp.fetch(eventMembersUrl, options); const membersData = JSON.parse(membersResponse.getContentText()); const memberNames = membersData.members.map(member => member.user.name);
四、获取活动成员数据
调用活动成员接口:GET /events/{eventId}/members,替换eventId为目标活动ID,处理逻辑与拉取活动列表一致,提取成员信息(如用户ID、用户名)后追加到Sheet即可。
内容的提问来源于stack exchange,提问作者Aaron Raven
相关产品推荐
相关产品推荐

