//入门 import console; console.showLoading(" 正在下载 dm.proto"); import protobuf.parser.github; protobuf.parser.github(false,"SocialSisterYi/bilibili-API-collect/blob/master/grpc_api/bilibili/community/service/dm/v1/dm.proto") /*** protobuf.parser.github 等价于执行下面的代码: var proto = web.rest.github.getContent(user,repos,path,branch); protobuf.parser().parse(proto,,false/*如果应用根目录不是工程目录在应用根目录生成库*/); ***/ //导入 protobuf.parser 生成的 aardio 库 import bilibili.community.service.dm.v1.DmSegMobileReply; import web.rest.client; var http = web.rest.client(); http.parseResponseResult = function(resp){ //自动解析服务器响应数据为 Protobuf 消息对象 var dmSeg = bilibili.community.service.dm.v1.DmSegMobileReply(); dmSeg.parseFromString(resp); return dmSeg; } //发送请求 var dmSeg = http.get("https://api.bilibili.com/x/v2/dm/web/seg.so",{ "oid":"36570401","pid":"76459310","type":1,"segment_index":1 }) //显示弹幕数据 for(i=1;#dmSeg.elems){ var elem = dmSeg.elems[i]; console.log(elem.idStr,elem.content); //console.more(1000); } import JSON; //不需要任何封装,所有 Protobuf 消息对象都可以直接转换为 json var json = JSON.stringify(dmSeg); //Protobuf 消息对象可通过 table.parseValue 转换为纯 table 对象 var tab = table.parseValue(dmSeg) console.pause(true);