抖音web端私信protobuf 初识

发布于:2023-05-22 ⋅ 阅读:(388) ⋅ 点赞:(0)

因之前没有接触过protobuf故此查阅了很多相关的材料,大致了解了相关的过程,那总得实践一下吧,随便找了涉及相关知识的用以来验证。
发现抖音web端在私信方面涉及到这方面的知识,那我们就开始验证下所学的只是是否正确吧。

通过抓包发现竟然是走的ws的协议,这可真麻烦,有没有一种什么方式可以实现比较便捷的方式呢,经过一番倒腾发现他有应急协议,二话不说直接开干。下方是返回的protobuf信息。

在这里插入图片描述

  • 一、我们先保存到本地的文件取名:1.bin
  • 二、安装protobuf,这个自行百度,一堆的教程
  • 三、识别protobuf看是否是完整的文件
CMD运行如下命令:
protoc --decode_raw < C:\1.bin
1: 100
2: 10013
3: "0.4.1"
4: ""
5: 3
6: 0
7: "7747f9e:master"
8 {
  100 {
    1 {
      6: 58
      6: 0x333630393930353a
      7: 0x333436363a353534
      6: 52
      6: 0x35383338
    }
    2: 1
    3: 6652201397120991746
    4: "{\"mention_users\":[],\"aweType\":700,\"richTextInfos\":[],\"text\":\"1111\"}"
    5 {
      1: "s:mentioned_users"
      2: ""
    }
    5 {
      1: "s:client_message_id"
      2: "15fc194e-d542-47c1-8dc1-47494xxx9"
//局部省略
  • 四、这样是不是清晰多了呢,那么接下来我们就需要编写proto文件啦 直接照着结构编写就可以了
syntax = "proto3";

message Request {
    int32 cmd = 9;
    int32 id = 2;
    string version = 3;
}
  • 五、接下来就是生成对应语言的proto代码
python3 -m grpc_tools.protoc -I./ --python_out=. --grpc_python_out=. ./helloworld.proto
//代码含义这边不做过多的解释,自行百度
  • 六、调用代码并构建参数(照着上面的抄就可以)来校验生成的proto是否正确
    request.cmd = cmd
    request.id = id
    request.version = "0.4.1"
  • 七、获取相关的messageid,这边仅仅是校验proto的准确性就不去再写出如何获取messageid,成功发出。至此就可以愉快的调用与编写proto。初识proto,写的不好勿喷。

总结

解析原始文件,编写proto文件,生成proto的对应的语言代码,引入代码,根据原始文件的结构拼装proto数据结构,生成proto的数据,最后提交测试。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到