generated

This commit is contained in:
github-actions
2026-01-22 17:37:01 +00:00
commit 1424f73d2e
414 changed files with 189203 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -0,0 +1 @@
import{_ as e,c as o,b as n,o as a}from"./app-Dgsdh8A6.js";const l={};function r(s,t){return a(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const _=e(l,[["render",r]]),i=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"git":{},"filePathRelative":null}');export{_ as comp,i as data};

File diff suppressed because one or more lines are too long

208
assets/APP.html-CuPBHwrB.js Normal file
View File

@@ -0,0 +1,208 @@
import{_ as r,c,b as n,a as p,d as a,e,w as o,r as D,o as t}from"./app-Dgsdh8A6.js";const i={};function y(d,s){const l=D("RouteLink");return t(),c("div",null,[s[16]||(s[16]=n("h1",{id:"app-api-签名与鉴权",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#app-api-签名与鉴权"},[n("span",null,"APP API 签名与鉴权")])],-1)),s[17]||(s[17]=n("h2",{id:"app-api-签名特性",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#app-api-签名特性"},[n("span",null,"APP API 签名特性")])],-1)),n("p",null,[s[1]||(s[1]=a("部分客户端专用的 REST API 存在基于参数签名的鉴权,需要使用规定的")),s[2]||(s[2]=n("code",null,"appkey",-1)),s[3]||(s[3]=a("及其对应的")),s[4]||(s[4]=n("code",null,"appsec",-1)),s[5]||(s[5]=a("与原始请求参数进行签名计算,部分")),s[6]||(s[6]=n("code",null,"AppKey",-1)),s[7]||(s[7]=a("及与之对应的")),s[8]||(s[8]=n("code",null,"AppSec",-1)),s[9]||(s[9]=a("已经被公开:见该文档 ")),e(l,{to:"/docs/misc/sign/APPKey.html"},{default:o(()=>s[0]||(s[0]=[a("APPKey")])),_:1,__:[0]})]),s[18]||(s[18]=p('<ul><li><p>不同 <code>appkey</code> 对应不同的 app (如客户端、概念版、必剪、漫画、bililink等)</p></li><li><p>不同平台同 app 也会存在不同的 <code>appkey</code> (如安卓端、ios端、TV端等)</p></li><li><p>同平台同 app 下不同功能也会存在不同的 <code>appkey</code>(如登录专用、取流专用等)</p></li><li><p>不同版本的客户端的 <code>appkey</code> 也可能不同</p></li><li><p><strong>appkey与appsec一一对应</strong></p></li></ul><h2 id="app-api-签名算法" tabindex="-1"><a class="header-anchor" href="#app-api-签名算法"><span>APP API 签名算法</span></a></h2><ol><li>首先为参数中添加<code>appkey</code>字段</li><li>然后按照参数的 Key 重新排序</li><li>再对这个 Key-Value 进行 url query 序列化,并拼接与之对应的<code>appsec</code> (盐) 进行 <strong>md5 Hash 运算</strong>32-bit 字符小写),该 hash 便是 API 签名</li><li>最后在参数尾部增添<code>sign</code>字段,它的 Value 为上一步计算所得的 hash一并作为表单或 Query 提交</li></ol><h2 id="demo" tabindex="-1"><a class="header-anchor" href="#demo"><span>Demo</span></a></h2><p>该 Demo 提供 <a href="#python">Python</a>、<a href="#java">Java</a>、<a href="#typescript-javascript">TS/JS</a>、<a href="#swift">Swift</a>、<a href="#cplusplus">C++</a> 语言例程</p><p>使用 appkey = <code>1d8b6e7d45233436</code>, appsec = <code>560c52ccd288fed045859ed18bffd973</code> 对如下 <code>params</code> 参数进行签名</p>',6)),n("p",null,[s[11]||(s[11]=a("上述示例")),s[12]||(s[12]=n("code",null,"appkey",-1)),s[13]||(s[13]=a("、")),s[14]||(s[14]=n("code",null,"AppSec",-1)),s[15]||(s[15]=a("均来自文档 ")),e(l,{to:"/docs/misc/sign/APPKey.html"},{default:o(()=>s[10]||(s[10]=[a("APPKey")])),_:1,__:[10]})]),s[19]||(s[19]=p(`<h3 id="python" tabindex="-1"><a class="header-anchor" href="#python"><span>Python</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> hashlib</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> urllib.parse</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">def</span><span style="color:#DCDCAA;"> appsign</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">appkey</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">appsec</span><span style="color:#D4D4D4;">):</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;为请求参数进行 APP 签名&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;"> params.update({</span><span style="color:#CE9178;">&#39;appkey&#39;</span><span style="color:#D4D4D4;">: appkey})</span></span>
<span class="line"><span style="color:#D4D4D4;"> params = </span><span style="color:#4EC9B0;">dict</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">sorted</span><span style="color:#D4D4D4;">(params.items())) </span><span style="color:#6A9955;"># 按照 key 重排参数</span></span>
<span class="line"><span style="color:#D4D4D4;"> query = urllib.parse.urlencode(params) </span><span style="color:#6A9955;"># 序列化参数</span></span>
<span class="line"><span style="color:#D4D4D4;"> sign = hashlib.md5((query+appsec).encode()).hexdigest() </span><span style="color:#6A9955;"># 计算 api 签名</span></span>
<span class="line"><span style="color:#D4D4D4;"> params.update({</span><span style="color:#CE9178;">&#39;sign&#39;</span><span style="color:#D4D4D4;">:sign})</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> params</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">appkey = </span><span style="color:#CE9178;">&#39;1d8b6e7d45233436&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;">appsec = </span><span style="color:#CE9178;">&#39;560c52ccd288fed045859ed18bffd973&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;">params = {</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;id&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">114514</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;str&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&#39;1919810&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;test&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&#39;いいよ,こいよ&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"><span style="color:#D4D4D4;">signed_params = appsign(params, appkey, appsec)</span></span>
<span class="line"><span style="color:#D4D4D4;">query = urllib.parse.urlencode(signed_params)</span></span>
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(signed_params)</span></span>
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(query)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>输出内容分别是进行 APP 签名的后参数的 key-Value 以及 url query 形式</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>{&#39;appkey&#39;: &#39;1d8b6e7d45233436&#39;, &#39;id&#39;: 114514, &#39;str&#39;: &#39;1919810&#39;, &#39;test&#39;: &#39;いいよ,こいよ&#39;, &#39;sign&#39;: &#39;01479cf20504d865519ac50f33ba3a7d&#39;}</span></span>
<span class="line"><span>appkey=1d8b6e7d45233436&amp;id=114514&amp;str=1919810&amp;test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88&amp;sign=01479cf20504d865519ac50f33ba3a7d</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="java" tabindex="-1"><a class="header-anchor" href="#java"><span>Java</span></a></h3><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-java"><span class="line"><span style="color:#569CD6;">package</span><span style="color:#D4D4D4;"> io.github.cctyl;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.nio.charset.StandardCharsets;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.util.HashMap;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.util.Map;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.MessageDigest;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.NoSuchAlgorithmException;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.net.URLEncoder;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.util.TreeMap;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/**</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@author</span><span style="color:#6A9955;"> cctyl</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> AppSigner</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#569CD6;"> static</span><span style="color:#569CD6;"> final</span><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> APP_KEY</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">&quot;1d8b6e7d45233436&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#569CD6;"> static</span><span style="color:#569CD6;"> final</span><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> APP_SEC</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">&quot;560c52ccd288fed045859ed18bffd973&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> String</span><span style="color:#DCDCAA;"> appSign</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">Map</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">&gt; </span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#6A9955;"> // 为请求参数进行 APP 签名</span></span>
<span class="line"><span style="color:#9CDCFE;"> params</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">put</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;appkey&quot;</span><span style="color:#D4D4D4;">, APP_KEY);</span></span>
<span class="line"><span style="color:#6A9955;"> // 按照 key 重排参数</span></span>
<span class="line"><span style="color:#4EC9B0;"> Map</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">&gt; </span><span style="color:#9CDCFE;">sortedParams</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#4EC9B0;"> TreeMap</span><span style="color:#D4D4D4;">&lt;&gt;(params);</span></span>
<span class="line"><span style="color:#6A9955;"> // 序列化参数</span></span>
<span class="line"><span style="color:#4EC9B0;"> StringBuilder</span><span style="color:#9CDCFE;"> queryBuilder</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> StringBuilder</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#C586C0;"> for</span><span style="color:#D4D4D4;"> (</span><span style="color:#4EC9B0;">Map</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">Entry</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">&gt; </span><span style="color:#9CDCFE;">entry</span><span style="color:#C586C0;"> :</span><span style="color:#9CDCFE;"> sortedParams</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">entrySet</span><span style="color:#D4D4D4;">()) {</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">queryBuilder</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">length</span><span style="color:#D4D4D4;">() &gt; </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> queryBuilder</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;&amp;&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> queryBuilder</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">URLEncoder</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">encode</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">entry</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getKey</span><span style="color:#D4D4D4;">(), </span><span style="color:#9CDCFE;">StandardCharsets</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UTF_8</span><span style="color:#D4D4D4;">))</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;=&#39;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">URLEncoder</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">encode</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">entry</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getValue</span><span style="color:#D4D4D4;">(), </span><span style="color:#9CDCFE;">StandardCharsets</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UTF_8</span><span style="color:#D4D4D4;">));</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#DCDCAA;"> generateMD5</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">queryBuilder</span><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(APP_SEC).</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">());</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> String</span><span style="color:#DCDCAA;"> generateMD5</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#9CDCFE;"> input</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#C586C0;"> try</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#4EC9B0;"> MessageDigest</span><span style="color:#9CDCFE;"> md</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">MessageDigest</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;MD5&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#4EC9B0;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">digest</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">md</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">digest</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">input</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getBytes</span><span style="color:#D4D4D4;">());</span></span>
<span class="line"><span style="color:#4EC9B0;"> StringBuilder</span><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> StringBuilder</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#C586C0;"> for</span><span style="color:#D4D4D4;"> (</span><span style="color:#4EC9B0;">byte</span><span style="color:#9CDCFE;"> b</span><span style="color:#C586C0;"> :</span><span style="color:#D4D4D4;"> digest) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">String</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">format</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;%02x&quot;</span><span style="color:#D4D4D4;">, b));</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">catch</span><span style="color:#D4D4D4;"> (</span><span style="color:#4EC9B0;">NoSuchAlgorithmException</span><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">printStackTrace</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#569CD6;"> null</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> void</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#4EC9B0;"> Map</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">&gt; </span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#4EC9B0;"> HashMap</span><span style="color:#D4D4D4;">&lt;&gt;();</span></span>
<span class="line"><span style="color:#9CDCFE;"> params</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">put</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;id&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;114514&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> params</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">put</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;str&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;1919810&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> params</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">put</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;test&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;いいよ,こいよ&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> System</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">out</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">println</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">appSign</span><span style="color:#D4D4D4;">(params));</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>输出结果为01479cf20504d865519ac50f33ba3a7d</p><h3 id="typescript-javascript" tabindex="-1"><a class="header-anchor" href="#typescript-javascript"><span>TypeScript/JavaScript</span></a></h3><div class="language-typescript line-numbers-mode" data-highlighter="shiki" data-ext="typescript" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-typescript"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">createHash</span><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">from</span><span style="color:#CE9178;"> &#39;node:crypto&#39;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">type</span><span style="color:#4EC9B0;"> Params</span><span style="color:#D4D4D4;"> = </span><span style="color:#4EC9B0;">Record</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">any</span><span style="color:#D4D4D4;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">const</span><span style="color:#DCDCAA;"> md5</span><span style="color:#D4D4D4;"> = (</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=&gt;</span><span style="color:#DCDCAA;"> createHash</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;md5&#39;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">update</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">digest</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;hex&#39;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/**</span></span>
<span class="line"><span style="color:#6A9955;"> * 为请求参数进行 APP 签名</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#C586C0;">export</span><span style="color:#569CD6;"> function</span><span style="color:#DCDCAA;"> appSign</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">Params</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">appkey</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">appsec</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> params</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">appkey</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">appkey</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> searchParams</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> URLSearchParams</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#9CDCFE;"> searchParams</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">sort</span><span style="color:#D4D4D4;">()</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#DCDCAA;"> md5</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">searchParams</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">() + </span><span style="color:#9CDCFE;">appsec</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#9CDCFE;">console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span></span>
<span class="line"><span style="color:#DCDCAA;"> appSign</span><span style="color:#D4D4D4;">(</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> id:</span><span style="color:#B5CEA8;"> 114514</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> str:</span><span style="color:#CE9178;"> &#39;1919810&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> test:</span><span style="color:#CE9178;"> &#39;いいよ,こいよ&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;1d8b6e7d45233436&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;560c52ccd288fed045859ed18bffd973&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;"> ),</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;01479cf20504d865519ac50f33ba3a7d&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>输出结果为01479cf20504d865519ac50f33ba3a7d</p><h3 id="swift" tabindex="-1"><a class="header-anchor" href="#swift"><span>Swift</span></a></h3><div class="language-swift line-numbers-mode" data-highlighter="shiki" data-ext="swift" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-swift"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#4EC9B0;"> Foundation</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#4EC9B0;"> CommonCrypto</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">//Swift标准库没有MD5函数所以我们要自己实现一个</span></span>
<span class="line"><span style="color:#569CD6;">func</span><span style="color:#DCDCAA;"> MD5</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">string</span><span style="color:#D4D4D4;">: </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">) -&gt; </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#569CD6;"> let</span><span style="color:#D4D4D4;"> length = </span><span style="color:#4EC9B0;">Int</span><span style="color:#D4D4D4;">(CC_MD5_DIGEST_LENGTH)</span></span>
<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#D4D4D4;"> digest = [</span><span style="color:#4EC9B0;">UInt8</span><span style="color:#D4D4D4;">](</span><span style="color:#DCDCAA;">repeating</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">, </span><span style="color:#DCDCAA;">count</span><span style="color:#D4D4D4;">: length)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#569CD6;"> let</span><span style="color:#D4D4D4;"> d = string.</span><span style="color:#DCDCAA;">data</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">using</span><span style="color:#D4D4D4;">: .</span><span style="color:#9CDCFE;">utf8</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> _</span><span style="color:#D4D4D4;"> = d.</span><span style="color:#DCDCAA;">withUnsafeBytes</span><span style="color:#D4D4D4;"> { body -&gt; </span><span style="color:#4EC9B0;">String</span><span style="color:#C586C0;"> in</span></span>
<span class="line"><span style="color:#DCDCAA;"> CC_MD5</span><span style="color:#D4D4D4;">(body.</span><span style="color:#9CDCFE;">baseAddress</span><span style="color:#D4D4D4;">, </span><span style="color:#DCDCAA;">CC_LONG</span><span style="color:#D4D4D4;">(d.</span><span style="color:#9CDCFE;">count</span><span style="color:#D4D4D4;">), &amp;digest)</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#CE9178;"> &quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> (</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">..&lt;length).</span><span style="color:#DCDCAA;">reduce</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#569CD6;"> $0</span><span style="color:#D4D4D4;"> + </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">format</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;%02x&quot;</span><span style="color:#D4D4D4;">, digest[</span><span style="color:#569CD6;">$1</span><span style="color:#D4D4D4;">])</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">func</span><span style="color:#DCDCAA;"> appSign</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">params</span><span style="color:#D4D4D4;">: [</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">:</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">],</span><span style="color:#DCDCAA;">appKey</span><span style="color:#D4D4D4;">:</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">,</span><span style="color:#DCDCAA;">appSec</span><span style="color:#D4D4D4;">:</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">) -&gt; </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#D4D4D4;"> signedParams = params</span></span>
<span class="line"><span style="color:#D4D4D4;"> signedParams[</span><span style="color:#CE9178;">&quot;appkey&quot;</span><span style="color:#D4D4D4;">] = appKey</span></span>
<span class="line"><span style="color:#569CD6;"> let</span><span style="color:#D4D4D4;"> sortedParams = signedParams.</span><span style="color:#DCDCAA;">sorted</span><span style="color:#D4D4D4;"> { </span><span style="color:#569CD6;">$0</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;"> &lt; </span><span style="color:#569CD6;">$1</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#6A9955;"> //在制作成query时需要显式addingPercentEncoding转换</span></span>
<span class="line"><span style="color:#569CD6;"> let</span><span style="color:#D4D4D4;"> query = sortedParams.</span><span style="color:#DCDCAA;">map</span><span style="color:#D4D4D4;"> { </span><span style="color:#CE9178;">&quot;</span><span style="color:#569CD6;">\\($0</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">key</span><span style="color:#569CD6;">)</span><span style="color:#CE9178;">=</span><span style="color:#569CD6;">\\($0</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">addingPercentEncoding</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">withAllowedCharacters</span><span style="color:#D4D4D4;">: .</span><span style="color:#9CDCFE;">urlQueryAllowed</span><span style="color:#D4D4D4;">)!</span><span style="color:#569CD6;">)</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;"> }.</span><span style="color:#DCDCAA;">joined</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">separator</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&amp;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#569CD6;"> let</span><span style="color:#D4D4D4;"> sign = </span><span style="color:#DCDCAA;">MD5</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">string</span><span style="color:#D4D4D4;">: query+appSec)</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> sign</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">//testSign</span></span>
<span class="line"><span style="color:#569CD6;">let</span><span style="color:#D4D4D4;"> appKey = </span><span style="color:#CE9178;">&quot;1d8b6e7d45233436&quot;</span></span>
<span class="line"><span style="color:#569CD6;">let</span><span style="color:#D4D4D4;"> appSec = </span><span style="color:#CE9178;">&quot;560c52ccd288fed045859ed18bffd973&quot;</span></span>
<span class="line"><span style="color:#569CD6;">let</span><span style="color:#D4D4D4;"> signResult = </span><span style="color:#DCDCAA;">appSign</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">params</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;114514&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;str&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;1919810&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;test&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;いいよ,こいよ&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;">],</span><span style="color:#DCDCAA;">appKey</span><span style="color:#D4D4D4;">:appKey,</span><span style="color:#DCDCAA;">appSec</span><span style="color:#D4D4D4;">:appSec)</span></span>
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(signResult)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>输出结果为01479cf20504d865519ac50f33ba3a7d</p><h3 id="cplusplus" tabindex="-1"><a class="header-anchor" href="#cplusplus"><span>CplusPlus</span></a></h3><p>需要 c++ 23 标准库,<a href="https://github.com/libcpr/cpr" target="_blank" rel="noopener noreferrer">cpr</a>、<a href="https://github.com/weidai11/cryptopp" target="_blank" rel="noopener noreferrer">cryptopp</a>、<a href="https://github.com/nlohmann/json" target="_blank" rel="noopener noreferrer">nlohmann/json</a> 等依赖</p><div class="language-c++ line-numbers-mode" data-highlighter="shiki" data-ext="c++" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-c++"><span class="line"><span style="color:#C586C0;">#include</span><span style="color:#CE9178;"> &lt;print&gt;</span><span style="color:#6A9955;"> // std::println</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/// thrid party libraries</span></span>
<span class="line"><span style="color:#C586C0;">#include</span><span style="color:#CE9178;"> &lt;cpr/cpr.h&gt;</span><span style="color:#6A9955;"> // cpr::util::urlEncode()</span></span>
<span class="line"><span style="color:#C586C0;">#include</span><span style="color:#CE9178;"> &lt;cryptopp/md5.h&gt;</span></span>
<span class="line"><span style="color:#C586C0;">#include</span><span style="color:#CE9178;"> &lt;cryptopp/hex.h&gt;</span></span>
<span class="line"><span style="color:#C586C0;">#include</span><span style="color:#CE9178;"> &lt;nlohmann/json.hpp&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/*</span></span>
<span class="line"><span style="color:#6A9955;"> * 注意,假定不会发生错误!</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/* 获取 md5 hex(lower) */</span></span>
<span class="line"><span style="color:#4EC9B0;">std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">string</span><span style="color:#DCDCAA;"> Get_md5_hex</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">const</span><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">string</span><span style="color:#569CD6;"> &amp;</span><span style="color:#9CDCFE;">Input_str</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#4EC9B0;"> CryptoPP</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">Weak1</span><span style="color:#D4D4D4;">::MD5 hash;</span></span>
<span class="line"><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::string md5_hex;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4EC9B0;"> CryptoPP</span><span style="color:#D4D4D4;">::StringSource </span><span style="color:#DCDCAA;">ss</span><span style="color:#D4D4D4;">(Input_str, </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#C586C0;"> new</span><span style="color:#4EC9B0;"> CryptoPP</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">HashFilter</span><span style="color:#D4D4D4;">(hash,</span></span>
<span class="line"><span style="color:#C586C0;"> new</span><span style="color:#4EC9B0;"> CryptoPP</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">HexEncoder</span><span style="color:#D4D4D4;">(</span></span>
<span class="line"><span style="color:#C586C0;"> new</span><span style="color:#4EC9B0;"> CryptoPP</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">StringSink</span><span style="color:#D4D4D4;">(md5_hex)</span></span>
<span class="line"><span style="color:#D4D4D4;"> )</span></span>
<span class="line"><span style="color:#D4D4D4;"> )</span></span>
<span class="line"><span style="color:#D4D4D4;"> );</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">ranges</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">for_each</span><span style="color:#D4D4D4;">(md5_hex, [](</span><span style="color:#569CD6;">char</span><span style="color:#569CD6;"> &amp;</span><span style="color:#9CDCFE;">x</span><span style="color:#D4D4D4;">) { x = </span><span style="color:#4EC9B0;">std</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">tolower</span><span style="color:#D4D4D4;">(x); });</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> md5_hex;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/* 将 json 转换为 url 编码字符串 */</span></span>
<span class="line"><span style="color:#4EC9B0;">std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">string</span><span style="color:#DCDCAA;"> Json_to_url_encode_str</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">const</span><span style="color:#4EC9B0;"> nlohmann</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">json</span><span style="color:#569CD6;"> &amp;</span><span style="color:#9CDCFE;">Json</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::string encode_str;</span></span>
<span class="line"><span style="color:#C586C0;"> for</span><span style="color:#D4D4D4;"> (</span><span style="color:#569CD6;">const</span><span style="color:#569CD6;"> auto</span><span style="color:#D4D4D4;"> &amp;[key, value]: </span><span style="color:#9CDCFE;">Json</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">items</span><span style="color:#D4D4D4;">()) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> encode_str</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(key).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;=&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">cpr</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">util</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">urlEncode</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">is_string</span><span style="color:#D4D4D4;">() ? </span><span style="color:#9CDCFE;">value</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">get</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#4EC9B0;">std</span><span style="color:#D4D4D4;">::string&gt;() : </span><span style="color:#DCDCAA;">to_string</span><span style="color:#D4D4D4;">(value))).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;&amp;&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> // remove the last &#39;&amp;&#39;</span></span>
<span class="line"><span style="color:#9CDCFE;"> encode_str</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">resize</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">encode_str</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">size</span><span style="color:#D4D4D4;">() - </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&#39;</span><span style="color:#D7BA7D;">\\0</span><span style="color:#CE9178;">&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> encode_str;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4EC9B0;">std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">string</span><span style="color:#DCDCAA;"> App_sign</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">nlohmann</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">json</span><span style="color:#569CD6;"> &amp;</span><span style="color:#9CDCFE;">Params</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">const</span><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">string</span><span style="color:#569CD6;"> &amp;</span><span style="color:#9CDCFE;">App_key</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">const</span><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">string</span><span style="color:#569CD6;"> &amp;</span><span style="color:#9CDCFE;">App_sec</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> Params</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">&quot;appkey&quot;</span><span style="color:#D4D4D4;">] = App_key;</span></span>
<span class="line"><span style="color:#9CDCFE;"> Params</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">&quot;sign&quot;</span><span style="color:#D4D4D4;">] = </span><span style="color:#DCDCAA;">Get_md5_hex</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">Json_to_url_encode_str</span><span style="color:#D4D4D4;">(Params) + App_sec);</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#DCDCAA;"> Json_to_url_encode_str</span><span style="color:#D4D4D4;">(Params);</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">int</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">() {</span></span>
<span class="line"><span style="color:#4EC9B0;"> nlohmann</span><span style="color:#D4D4D4;">::json Params;</span></span>
<span class="line"><span style="color:#9CDCFE;"> Params</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">&quot;id&quot;</span><span style="color:#D4D4D4;">] = </span><span style="color:#B5CEA8;">114514</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#9CDCFE;"> Params</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">&quot;str&quot;</span><span style="color:#D4D4D4;">] = </span><span style="color:#CE9178;">&quot;1919810&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#9CDCFE;"> Params</span><span style="color:#D4D4D4;">[</span><span style="color:#CE9178;">&quot;test&quot;</span><span style="color:#D4D4D4;">] = </span><span style="color:#CE9178;">&quot;いいよ,こいよ&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> constexpr</span><span style="color:#569CD6;"> auto</span><span style="color:#D4D4D4;"> App_key = </span><span style="color:#CE9178;">&quot;1d8b6e7d45233436&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#569CD6;"> constexpr</span><span style="color:#569CD6;"> auto</span><span style="color:#D4D4D4;"> App_sec = </span><span style="color:#CE9178;">&quot;560c52ccd288fed045859ed18bffd973&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::string sign = </span><span style="color:#DCDCAA;">App_sign</span><span style="color:#D4D4D4;">(Params, App_key, App_sec);</span></span>
<span class="line"><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">println</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;{}&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#DCDCAA;">to_string</span><span style="color:#D4D4D4;">(Params));</span></span>
<span class="line"><span style="color:#4EC9B0;"> std</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">println</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;{}&quot;</span><span style="color:#D4D4D4;">, sign);</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-text line-numbers-mode" data-highlighter="shiki" data-ext="text" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-text"><span class="line"><span>{&quot;appkey&quot;:&quot;1d8b6e7d45233436&quot;,&quot;id&quot;:114514,&quot;sign&quot;:&quot;01479cf20504d865519ac50f33ba3a7d&quot;,&quot;str&quot;:&quot;1919810&quot;,&quot;test&quot;:&quot;いいよ,こいよ&quot;}</span></span>
<span class="line"><span>appkey=1d8b6e7d45233436&amp;id=114514&amp;sign=01479cf20504d865519ac50f33ba3a7d&amp;str=1919810&amp;test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div>`,17))])}const u=r(i,[["render",y]]),v=JSON.parse('{"path":"/docs/misc/sign/APP.html","title":"APP API 签名与鉴权","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1745052268000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":1,"url":"https://github.com/SocialSisterYi"},{"name":"cctyl","username":"cctyl","email":"34262992+cctyl@users.noreply.github.com","commits":1,"url":"https://github.com/cctyl"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"},{"name":"Lightning-Lion","username":"Lightning-Lion","email":"85005672+Lightning-Lion@users.noreply.github.com","commits":1,"url":"https://github.com/Lightning-Lion"},{"name":"YuHuanTin","username":"YuHuanTin","email":"51024916+YuHuanTin@users.noreply.github.com","commits":1,"url":"https://github.com/YuHuanTin"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"0c42c00036ec457a4786431ba9944daf72c96fc0","time":1745052268000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"fix(misc/sign/APP.md): broken demo links"},{"hash":"e7ab2d770b423a891ed7e663d94bfe1f0f59501d","time":1718245563000,"email":"51024916+YuHuanTin@users.noreply.github.com","author":"YuHuanTin","message":"wbi、av2bv、bv2av 的 c++ 实现 (#1035)"},{"hash":"faa3d97c263907ca8c492093d91406e27fc106ed","time":1703135741000,"email":"85005672+Lightning-Lion@users.noreply.github.com","author":"Lightning-Lion","message":"Update APP.md (#911)"},{"hash":"5603b1acbd02f33e54616c8a5e0ae7061a426c8e","time":1695047571000,"email":"catlair@qq.com","author":"LaMerChiang","message":"Update APP.md (#819)"},{"hash":"901e787fc655962b88dac9896b25f41d796cd2c9","time":1688262289000,"email":"34262992+cctyl@users.noreply.github.com","author":"cctyl","message":"feature: App Sign 添加java版本实现 (#729)"},{"hash":"05ac3d5e2a9e28be3bf129ae8c78ffdbebaa161c","time":1684805901000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"添加文档【Wbi 接口签名】,修改目录结构"}]},"filePathRelative":"docs/misc/sign/APP.md"}');export{u as comp,v as data};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
import{_ as s,c as a,a as e,o as n}from"./app-Dgsdh8A6.js";const d={};function o(l,t){return n(),a("div",null,t[0]||(t[0]=[e(`<h1 id="漫画任务操作" tabindex="-1"><a class="header-anchor" href="#漫画任务操作"><span>漫画任务操作</span></a></h1><h2 id="分享漫画" tabindex="-1"><a class="header-anchor" href="#分享漫画"><span>分享漫画</span></a></h2><blockquote><p>https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA/ APP</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>platform</td><td>str</td><td>平台</td><td>必要</td><td>android</td></tr></tbody></table><p><strong>json 回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num / str</td><td>返回值</td><td>见对应表格</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td></td></tr><tr><td>meta</td><td>obj</td><td>错误信息</td><td>invalid_argument 时存在,例如 <code>{&quot;argument&quot;:&quot;platform&quot;}</code></td></tr><tr><td>data</td><td>obj</td><td></td><td><code>code</code> 为 0<code>msg</code> 为空时存在</td></tr></tbody></table><p><code>code</code> - <code>msg</code> 对应表:</p><table><thead><tr><th>code</th><th>code 类型</th><th>msg</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>num</td><td>空</td><td>分享成功,<code>data</code> 存在</td></tr><tr><td>0</td><td>num</td><td>今日已分享</td><td></td></tr><tr><td>invalid_argument</td><td>str</td><td>xxxx must be valid</td><td>xxxx 字段为必须,<code>meta</code>存在</td></tr><tr><td>unauthenticated</td><td>str</td><td>must login</td><td>必须登录才能分享</td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>point</td><td>num</td><td>获取积分</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&quot;SESSDATA=xxxxx&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=android&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>分享成功:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">5</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><details><summary>今日已分享:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;今日已分享&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,18)]))}const i=s(d,[["render",o]]),c=JSON.parse('{"path":"/docs/manga/Activity.html","title":"漫画任务操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/manga/Activity.md"}');export{i as comp,c as data};

View File

@@ -0,0 +1,117 @@
import{_ as n}from"./battery-100-VBikFKl4.js";import{_ as a,c as l,a as e,o as t}from"./app-Dgsdh8A6.js";const o={};function p(c,s){return t(),l("div",null,s[0]||(s[0]=[e('<h1 id="b币方式充电" tabindex="-1"><a class="header-anchor" href="#b币方式充电"><span>B币方式充电</span></a></h1><img src="'+n+`" width="100" height="100"><p><strong>注</strong>以前充电是电池的概念1B币折合10电池一般地充电10电池可获得1经验</p><p><strong>目前2020/12/02后则是贝壳的概念1B币折合1贝壳、1经验如果存在小数点则经验值向下取整即2.5B币获得2经验</strong></p><h2 id="新版本b币充电" tabindex="-1"><a class="header-anchor" href="#新版本b币充电"><span>新版本B币充电</span></a></h2><blockquote><p>https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>bp_num</td><td>num</td><td>贝壳数量</td><td>必要</td><td>必须在2-9999之间</td></tr><tr><td>is_bp_remains_prior</td><td>bool</td><td>是否优先扣除B币余额</td><td>必要</td><td>[true,false]B币充电请选择true</td></tr><tr><td>up_mid</td><td>num</td><td>充电对象用户mid</td><td>必要</td><td></td></tr><tr><td>otype</td><td>str</td><td>充电来源</td><td>必要</td><td>up空间充电<br>archive视频充电</td></tr><tr><td>oid</td><td>num</td><td>充电来源代码</td><td>必要</td><td>空间充电充电对象用户mid<br>视频充电稿件avid</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功并不代表充电成功 <br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-500服务器错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>mid</td><td>num</td><td>本用户mid</td><td></td></tr><tr><td>up_mid</td><td>num</td><td>目标用户mid</td><td></td></tr><tr><td>order_no</td><td>str</td><td>留言token</td><td>用于添加充电留言</td></tr><tr><td>bp_num</td><td>str</td><td>充电贝壳数</td><td></td></tr><tr><td>exp</td><td>num</td><td>获得经验数</td><td></td></tr><tr><td>status</td><td>num</td><td>返回结果</td><td>4成功<br>-2低于20电池下限<br>-4B币不足</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为空</td></tr></tbody></table><p><strong>示例:</strong></p><p>以空间的方式向用户<code>mid=293793435</code>充了2贝壳得到2经验留言token为<code>BPRG5CEC3VUPOOANA540</code></p><p>此时<code>data</code>.<code>status</code>=<code>4</code></p><p><s>自己给自己冲QAQ</s></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bp_num=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;is_bp_remains_prior=true&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;up_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;BPRG5CEC3VUPOOANA540&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bp_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;2&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>当所充电贝壳数小于2时充电不会成功</p><p>此时<code>data</code>.<code>status</code>=<code>-2</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bp_num=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;is_bp_remains_prior=true&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;up_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bp_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">-2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;elec raw order create failed: 88201&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>当所充贝壳数折合的B币数不足时充电也不会成功</p><p>此时<code>data</code>.<code>status</code>=<code>-4</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bp_num=99&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;is_bp_remains_prior=true&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;up_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bp_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">-4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;bp.to.battery http failed, invalid args, errNo=800409904: B 币余额不足&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="老版本b币充电" tabindex="-1"><a class="header-anchor" href="#老版本b币充电"><span>老版本B币充电</span></a></h2><p>老版本目前已过期调用接口成功后code返回0data.status会返回0且B币不会消耗贝壳也不会增加。以下是历史信息</p><details><summary>查看折叠内容</summary><blockquote><p>https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>elec_num</td><td>num</td><td>充电电池数量</td><td>必要</td><td>必须在2-9999之间</td></tr><tr><td>up_mid</td><td>num</td><td>充电对象用户mid</td><td>必要</td><td></td></tr><tr><td>otype</td><td>str</td><td>充电来源</td><td>必要</td><td>up空间充电<br>archive视频充电</td></tr><tr><td>oid</td><td>num</td><td>充电来源代码</td><td>必要</td><td>空间充电充电对象用户mid<br>视频充电稿件avid</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功并不代表充电成功 <br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>mid</td><td>num</td><td>本用户mid</td><td></td></tr><tr><td>up_mid</td><td>num</td><td>目标用户mid</td><td></td></tr><tr><td>order_no</td><td>str</td><td>留言token</td><td>用于添加充电留言</td></tr><tr><td>elec_num</td><td>num</td><td>充电电池数</td><td></td></tr><tr><td>exp</td><td>num</td><td>获得经验数</td><td></td></tr><tr><td>status</td><td>num</td><td>返回结果</td><td>4成功<br>-2低于20电池下限<br>-4B币不足</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为空</td></tr></tbody></table><p><strong>示例:</strong></p><p>以空间的方式向用户<code>mid=293793435</code>充了20电池得到2经验留言token为<code>BPRG5CEC3VUPOOANA540</code></p><p>此时<code>data</code>.<code>status</code>=<code>4</code></p><p><s>再次自己冲自己QAQ</s></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;elec_num=20&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;up_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;BPRG5CEC3VUPOOANA540&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;elec_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>当所充电池数小于2时充电不会成功</p><p>此时<code>data</code>.<code>status</code>=<code>-2</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;elec_num=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;up_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;elec_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">-2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;elec raw order create failed: 88201&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>当所充电池数折合的B币数不足时充电也不会成功</p><p>此时<code>data</code>.<code>status</code>=<code>-4</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;elec_num=999&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=293793435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;up_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;elec_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">-4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;bp.to.battery http failed, invalid args, errNo=800409904: B 币余额不足&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details></details>`,32)]))}const i=a(o,[["render",p]]),D=JSON.parse('{"path":"/docs/electric/Bcoin.html","title":"B币方式充电","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1740498696000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":1,"url":"https://github.com/wuziqian211"}],"changelog":[{"hash":"6c1f03e75334aaba6f3b6f3bf346b0326073b779","time":1740498696000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"晨叶梦春","message":"update"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/electric/Bcoin.md"}');export{i as comp,D as data};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,88 @@
import{_ as n,c as a,a as l,o as t}from"./app-Dgsdh8A6.js";const o={};function e(p,s){return t(),a("div",null,s[0]||(s[0]=[l(`<h1 id="签到" tabindex="-1"><a class="header-anchor" href="#签到"><span>签到</span></a></h1><blockquote><p>https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA/ APP</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>platform</td><td>str</td><td>平台</td><td>必要</td><td>android</td></tr><tr><td>device</td><td>str</td><td>平台</td><td>非必要</td><td>h5</td></tr></tbody></table><p><strong>正文参数( application/json </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td></td><td>非必要</td><td>补签时使用</td></tr><tr><td>date</td><td>str</td><td>补签日期</td><td>必要</td><td>补签时使用</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num / str</td><td>返回值</td><td>0成功<br>invalid_argument今日已签到</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>成功:空<br>已签到clockin clockin is duplicate</td></tr><tr><td>meta</td><td>obj</td><td>错误信息</td><td>今日已签到时存在</td></tr><tr><td>data</td><td>obj</td><td></td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>普通签到:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Content-Type: application/x-www-form-urlencoded&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=android&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>签到成功:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><details><summary>今日已签到:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;invalid_argument&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;clockin clockin is duplicate&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;meta&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;argument&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;clockin&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>补签:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#CE9178;"> &#39;https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn?platform=android&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;content-type: application/json;charset=UTF-8&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-d </span><span style="color:#CE9178;">&#39;{&quot;type&quot;:0,&quot;date&quot;:&quot;2023-02-15&quot;}&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>补签成功:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h1 id="查询签到状态" tabindex="-1"><a class="header-anchor" href="#查询签到状态"><span>查询签到状态</span></a></h1><blockquote><p>https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA/ APP</p><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>空</td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>day_count</td><td>num</td><td>连续签到天数</td><td></td></tr><tr><td>status</td><td>num</td><td>今日是否已签到</td><td>0未签到<br>1已签到</td></tr><tr><td>credit_icon</td><td>str</td><td></td><td></td></tr><tr><td>sign_before_icon</td><td>str</td><td></td><td></td></tr><tr><td>sign_today_icon</td><td>str</td><td></td><td></td></tr><tr><td>breathe_icon</td><td>str</td><td></td><td></td></tr><tr><td>new_credit_x_icon</td><td>str</td><td></td><td></td></tr><tr><td>coupon_pic</td><td>str</td><td></td><td></td></tr><tr><td>points</td><td>array</td><td>一次签到周期中每次签到可获得点数</td><td></td></tr><tr><td>point_infos</td><td>array</td><td></td><td></td></tr></tbody></table><p><code>point_infos</code>数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>point</td><td>num</td><td>签到可获取积分</td><td></td></tr><tr><td>origin_point</td><td>num</td><td></td><td></td></tr><tr><td>is_activity</td><td>bool</td><td></td><td></td></tr><tr><td>title</td><td>str</td><td>签到奖励描述</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>成功:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;day_count&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">58</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;points&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#B5CEA8;"> 10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#B5CEA8;"> 20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#B5CEA8;"> 20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#B5CEA8;"> 10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#B5CEA8;"> 10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#B5CEA8;"> 10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#B5CEA8;"> 30</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;credit_icon&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/9da6QImiK_w192_h192.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sign_before_icon&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/BuA6z3lhN_w192_h192.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sign_today_icon&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/TWSLUHbbg_w192_h192.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;breathe_icon&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/anime.breathe.svga&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point_infos&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;10积分&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;20积分&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;20积分&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;10积分&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;10积分&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;10积分&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">30</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;origin_point&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">30</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_activity&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;30积分+福利券&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;new_credit_x_icon&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/QP5DsW2S_w192_h192.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coupon_pic&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/Yalqqoiz_w402_h162.png&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,33)]))}const c=n(o,[["render",e]]),r=JSON.parse('{"path":"/docs/manga/ClockIn.html","title":"签到","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1676998806000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":1,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/manga/ClockIn.md"}');export{c as comp,r as data};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,75 @@
import{_ as s,c as a,a as n,o as d}from"./app-Dgsdh8A6.js";const l={};function e(o,t){return d(),a("div",null,t[0]||(t[0]=[n(`<h1 id="获取当前话全部图片地址" tabindex="-1"><a class="header-anchor" href="#获取当前话全部图片地址"><span>获取当前话全部图片地址</span></a></h1><blockquote><p>https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA/ APP</p><p><strong>URL参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP登录凭证</td><td>必要</td><td>使用APP鉴权方式时必填</td></tr><tr><td>appkey</td><td>str</td><td>cc8617fd6961e070</td><td>非必要</td><td></td></tr><tr><td>mobi_app</td><td>str</td><td>android_comic</td><td>非必要</td><td></td></tr><tr><td>version</td><td>str</td><td>4.21.0</td><td>非必要</td><td></td></tr><tr><td>build</td><td>str</td><td>36421000</td><td>非必要</td><td></td></tr><tr><td>channel</td><td>str</td><td>bilicomic</td><td>非必要</td><td></td></tr><tr><td>platform</td><td>str</td><td>android</td><td>非必要</td><td></td></tr><tr><td>device</td><td>str</td><td>android</td><td>非必要</td><td></td></tr><tr><td>buvid</td><td>str</td><td>XY118701XXXXXXXXX104911DXXXXXCAEXXXXE</td><td>非必要</td><td>长度为37</td></tr><tr><td>machine</td><td>str</td><td></td><td>非必要</td><td>手机品牌+型号</td></tr><tr><td>is_teenager</td><td>num</td><td>0</td><td>非必要</td><td></td></tr><tr><td>no_recommend</td><td>num</td><td>0</td><td>非必要</td><td></td></tr><tr><td>ts</td><td>num</td><td>秒级时间戳</td><td>非必要</td><td></td></tr></tbody></table><p><strong>正文参数( application/json </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>epIdep_id</td><td>num</td><td>当前话的id</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td></td></tr><tr><td>data</td><td>obj</td><td></td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>path</td><td>str</td><td>.index 文件路径</td><td></td></tr><tr><td>images</td><td>array</td><td>本话图片信息</td><td></td></tr><tr><td>last_modified</td><td>str</td><td>本话信息最后修改时间</td><td></td></tr><tr><td>host</td><td>str</td><td><code>https://manga.hdslb.com</code></td><td></td></tr><tr><td>video</td><td>obj</td><td></td><td></td></tr></tbody></table><p><code>images</code> 数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>path</td><td>str</td><td>图片的路径</td><td>不包含host</td></tr><tr><td>x</td><td>num</td><td>图片宽度</td><td>单位像素px</td></tr><tr><td>y</td><td>num</td><td>图片高度</td><td>单位像素px</td></tr><tr><td>video_path</td><td>str</td><td></td><td></td></tr><tr><td>video_size</td><td>str</td><td></td><td></td></tr></tbody></table><p><code>video</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>svid</td><td>str</td><td></td><td></td></tr><tr><td>filename</td><td>str</td><td></td><td></td></tr><tr><td>route</td><td>str</td><td></td><td></td></tr><tr><td>resource</td><td>array</td><td></td><td></td></tr><tr><td>raw_width</td><td>str</td><td></td><td></td></tr><tr><td>raw_height</td><td>str</td><td></td><td></td></tr><tr><td>raw_rotate</td><td>str</td><td></td><td></td></tr><tr><td>img_urls</td><td>array</td><td></td><td></td></tr><tr><td>bin_url</td><td>str</td><td></td><td></td></tr><tr><td>img_x_len</td><td>num</td><td></td><td></td></tr><tr><td>img_x_size</td><td>num</td><td></td><td></td></tr><tr><td>img_y_len</td><td>num</td><td></td><td></td></tr><tr><td>img_y_size</td><td>num</td><td></td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx;&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Content-Type: application/json&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-raw </span><span style="color:#CE9178;">&#39;{</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;ep_id&quot;: 321912</span></span>
<span class="line"><span style="color:#CE9178;">}&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;/bfs/manga/26564/321912/data.index?token=80eab62fef85c1c134a6399f817a938f&amp;ts=63404145&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;images&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;x&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2268</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video_path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video_size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;/bfs/manga/bf1c48540b68f473b429317d8f6fa8cdb6eed3a5.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;x&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2268</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video_path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video_size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;/bfs/manga/a46cfe90cfb49c67a4dbfc0002e5bc3d87d02963.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;x&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2268</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video_path&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video_size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;last_modified&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;2019-05-13 21:15:53&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;host&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://manga.hdslb.com&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;video&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;svid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;filename&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;route&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;resource&quot;</span><span style="color:#D4D4D4;">: [],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;raw_width&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;raw_height&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;raw_rotate&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_urls&quot;</span><span style="color:#D4D4D4;">: [],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bin_url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_x_len&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_x_size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">160</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_y_len&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_y_size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">90</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h1 id="获取某一图片的token" tabindex="-1"><a class="header-anchor" href="#获取某一图片的token"><span>获取某一图片的token</span></a></h1><blockquote><p>https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA/ APP</p><p><strong>URL参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP登录凭证</td><td>必要</td><td>使用APP鉴权方式时必填</td></tr><tr><td>appkey</td><td>str</td><td>cc8617fd6961e070</td><td>非必要</td><td></td></tr><tr><td>mobi_app</td><td>str</td><td>android_comic</td><td>非必要</td><td></td></tr><tr><td>version</td><td>str</td><td>4.21.0</td><td>非必要</td><td></td></tr><tr><td>build</td><td>str</td><td>36421000</td><td>非必要</td><td></td></tr><tr><td>channel</td><td>str</td><td>bilicomic</td><td>非必要</td><td></td></tr><tr><td>platform</td><td>str</td><td>android</td><td>非必要</td><td></td></tr><tr><td>device</td><td>str</td><td>android</td><td>非必要</td><td></td></tr><tr><td>buvid</td><td>str</td><td>XY118701XXXXXXXXX104911DXXXXXCAEXXXXE</td><td>非必要</td><td>长度为37</td></tr><tr><td>machine</td><td>str</td><td>samsung+SM-G9730</td><td>非必要</td><td>手机品牌+型号</td></tr><tr><td>is_teenager</td><td>num</td><td>0</td><td>非必要</td><td></td></tr><tr><td>no_recommend</td><td>num</td><td>0</td><td>非必要</td><td></td></tr><tr><td>ts</td><td>num</td><td>秒级时间戳</td><td>非必要</td><td></td></tr></tbody></table><p><strong>正文参数( application/json </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>urls</td><td>str</td><td>请求token的图片地址</td><td>必要</td><td><code>[\\&quot;https://i0.hdslb.com{path}\\&quot;]</code> <br>{path}代表图片的相对网站路径支持jpg和webp</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td></td></tr><tr><td>data</td><td>array</td><td></td><td></td></tr></tbody></table><p><code>data</code> 数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>url</td><td>str</td><td>图片下载的地址</td><td>此时网址开头 https://manga.hdslb.com</td></tr><tr><td>token</td><td>str</td><td>图片下载需要的token</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx;&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Content-Type: application/json&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-raw </span><span style="color:#CE9178;">&#39;{</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;urls&quot;: &quot;[\\&quot;https://i0.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg\\&quot;]&quot;</span></span>
<span class="line"><span style="color:#CE9178;">}&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;36931815abb35857627a22c347dc1c86&amp;ts=634045c2&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h1 id="下载图片" tabindex="-1"><a class="header-anchor" href="#下载图片"><span>下载图片</span></a></h1><p><em>请求方式GET</em></p><p>在上一步获取token的基础上构建如下的url</p><p>例如获取到此token</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>{</span></span>
<span class="line"><span> &quot;code&quot;: 0,</span></span>
<span class="line"><span> &quot;msg&quot;: &quot;&quot;,</span></span>
<span class="line"><span> &quot;data&quot;: [</span></span>
<span class="line"><span> {</span></span>
<span class="line"><span> &quot;url&quot;: &quot;https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg&quot;,</span></span>
<span class="line"><span> &quot;token&quot;: &quot;36931815abb35857627a22c347dc1c86&amp;ts=634045c2&quot;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> ]</span></span>
<span class="line"><span>}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>则访问以下网址即可,注意需要添加<code>?token=</code>。此网址有效期较短</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg?token=36931815abb35857627a22c347dc1c86&amp;ts=634045c2</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p><strong>注</strong>:若不加取图 Token 直接访问 <code>https://(i0|i1).hdslb.com/bfs/(manga|new_dyn|archive)/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg</code>均无法获取</p>`,44)]))}const r=s(l,[["render",e]]),i=JSON.parse('{"path":"/docs/manga/Download.html","title":"获取当前话全部图片地址","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1693842068000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"}],"changelog":[{"hash":"92b30f354ab21b97fe52357161fd04e2ca687c97","time":1693842068000,"email":"catlair@qq.com","author":"LaMerChiang","message":"fix: 修正文档中存在的错误路径,标签和目录 (#806)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/manga/Download.md"}');export{r as comp,i as data};

208
assets/QR.html-BHJa37nz.js Normal file

File diff suppressed because one or more lines are too long

129
assets/SMS.html-In_XL6PP.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,51 @@
import{_ as a}from"./battery-100-VBikFKl4.js";import{_ as n,c as t,a as l,o as e}from"./app-Dgsdh8A6.js";const o={};function d(p,s){return e(),t("div",null,s[0]||(s[0]=[l('<h1 id="微信-支付宝方式充电" tabindex="-1"><a class="header-anchor" href="#微信-支付宝方式充电"><span>微信&amp;支付宝方式充电</span></a></h1><img src="'+a+`" width="100" height="100"><p>操作流程:</p><ol><li>申请充电二维码及扫码秘钥,秘钥临时保存备用</li><li>使用<code>qr_code_url</code>中的值生成二维码</li><li>用支付宝或微信扫描</li><li>以扫码秘钥作为参数轮询检查扫码支付结果</li></ol><h2 id="申请充电二维码及扫码秘钥" tabindex="-1"><a class="header-anchor" href="#申请充电二维码及扫码秘钥"><span>申请充电二维码及扫码秘钥</span></a></h2><blockquote><p>https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/qr_code/create</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p>秘钥有效时间为10分钟</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>bp_num</td><td>num</td><td>充电B币数量</td><td>必要</td><td>必须在2-9999之间</td></tr><tr><td>is_bp_remains_prior</td><td>bool</td><td>是否优先扣除B币</td><td>必要</td><td>true是<br>false否<br>在B币不足时剩余的部分利用支付平台支付</td></tr><tr><td>up_mid</td><td>num</td><td>充电对象用户mid</td><td>必要</td><td></td></tr><tr><td>otype</td><td>str</td><td>充电来源</td><td>必要</td><td>up空间充电<br>archive视频充电</td></tr><tr><td>oid</td><td>num</td><td>充电来源代码</td><td>必要</td><td>空间充电充电对象用户mid<br>视频充电稿件avid</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-500服务器错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>qr_code_url</td><td>str</td><td>支付二维码生成内容</td><td>存在转义</td></tr><tr><td>qr_token</td><td>str</td><td>扫码秘钥</td><td></td></tr><tr><td>exp</td><td>num</td><td>获得经验数</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;elec_num=10&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=23215368&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;is_bp_remains_prior=false&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;otype=up&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=23215368&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;qr_code_url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435&amp;token=c1cb1d95d2194ba58df6bb0f24ae1aaa&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;qr_token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;c1cb1d95d2194ba58df6bb0f24ae1aaa&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;exp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="检查扫码支付结果" tabindex="-1"><a class="header-anchor" href="#检查扫码支付结果"><span>检查扫码支付结果</span></a></h2><blockquote><p>https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>qr_token</td><td>str</td><td>扫码秘钥</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>qr_token</td><td>str</td><td>扫码秘钥</td><td></td></tr><tr><td>order_no</td><td>str</td><td>留言token</td><td>未成功则无此项<br>用于添加充电留言</td></tr><tr><td>mid</td><td>num</td><td>当前用户mid</td><td></td></tr><tr><td>status</td><td>num</td><td>状态值</td><td>若秘钥错误则无此项<br>1已支付<br>2未扫描<br>3未确认</td></tr></tbody></table><p><strong>示例:</strong></p><p>当申请到的支付二维码未被扫描时,<code>data</code>.<code>status</code>的值为<code>2</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;qr_token=c7cbdc47fc424cd18f2146db653597b8&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;qr_token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;c7cbdc47fc424cd18f2146db653597b8&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>当申请到的支付二维码已扫描但未确认时,<code>data</code>.<code>status</code>的值为<code>3</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;qr_token=c7cbdc47fc424cd18f2146db653597b8&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;qr_token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;c7cbdc47fc424cd18f2146db653597b8&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>成功支付后,<code>data</code>.<code>status</code>的值为<code>1</code>,且<code>data</code>.<code>order_no</code>存在留言token</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;qr_token=c7cbdc47fc424cd18f2146db653597b8&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;qr_token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;bd649c836c524550bfe22a369334fc05&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;order_no&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;BPTD36U3KP82I31RSSLG&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,41)]))}const i=n(o,[["render",d]]),D=JSON.parse('{"path":"/docs/electric/WeChat_Alipay.html","title":"微信&支付宝方式充电","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1740498696000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":1,"url":"https://github.com/wuziqian211"}],"changelog":[{"hash":"6c1f03e75334aaba6f3b6f3bf346b0326073b779","time":1740498696000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"晨叶梦春","message":"update"},{"hash":"b1a06806f09ed3ea130eefc94e33df2bc0335424","time":1691494779000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"将 http 改为 https (#776)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/electric/WeChat&Alipay.md"}');export{i as comp,D as data};

View File

@@ -0,0 +1,26 @@
import{_ as a,c as t,a as e,o as n}from"./app-Dgsdh8A6.js";const l={};function o(r,s){return n(),t("div",null,s[0]||(s[0]=[e(`<h1 id="大会员操作" tabindex="-1"><a class="header-anchor" href="#大会员操作"><span>大会员操作</span></a></h1><h2 id="兑换卡券" tabindex="-1"><a class="header-anchor" href="#兑换卡券"><span>兑换卡券</span></a></h2><blockquote><p><a href="https://api.bilibili.com/x/vip/privilege/receive" target="_blank" rel="noopener noreferrer">https://api.bilibili.com/x/vip/privilege/receive</a></p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie (SESSDATA)</p><p><strong>正文参数 (application/x-www-form-urlencoded)</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>兑换类型</td><td>必要</td><td>1B币券<br>2会员购优惠券<br>3漫画福利券<br>4会员购包邮券<br>5漫画商城优惠券<br>6装扮体验卡<br>7课堂优惠券</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token (位于cookie)</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>-400请求错误<br>69800网络繁忙 请稍后再试<br>69801你已领取过该权益</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>成功时为<code>0</code></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/vip/privilege/receive&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;type=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="大会员每日经验" tabindex="-1"><a class="header-anchor" href="#大会员每日经验"><span>大会员每日经验</span></a></h2><blockquote><p><a href="https://api.bilibili.com/x/vip/experience/add" target="_blank" rel="noopener noreferrer">https://api.bilibili.com/x/vip/experience/add</a></p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie (SESSDATA)</p><p><strong>正文参数 (application/x-www-form-urlencoded)</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>CSRF Token (位于cookie)</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>69198用户经验已经领取<br>6034007请求频繁,请稍后再试</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>成功时为<code>0</code></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>0</td><td><strong>作用尚不明确</strong></td></tr><tr><td>is_grant</td><td>bool</td><td>是否领取成功</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/vip/experience/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><p>当经验领取成功时:</p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_grant&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>当经验已经领取过时:</p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">69198</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;用户经验已经领取&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;is_grant&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,27)]))}const p=a(l,[["render",o]]),d=JSON.parse('{"path":"/docs/vip/action.html","title":"大会员操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1745140161000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"7rikka","username":"7rikka","email":"takanashirikkax@gmail.com","commits":1,"url":"https://github.com/7rikka"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":1,"url":"https://github.com/wuziqian211"}],"changelog":[{"hash":"f52ac24e26fd311fa61f0ac2645982a0cae758ff","time":1745140161000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"晨叶梦春","message":"fix #1177"},{"hash":"b8a124109ddb9e2c54fd840e7952e171647bce70","time":1701182583000,"email":"catlair@qq.com","author":"LaMerChiang","message":"Update action.md 大会员每日经验 (#877)"},{"hash":"57c1817fbafe5ef102a0a84080f2cf040ce1c446","time":1687240232000,"email":"takanashirikkax@gmail.com","author":"7rikka","message":"添加大会员新的兑换项 (#710)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/vip/action.md"}');export{p as comp,d as data};

View File

@@ -0,0 +1,59 @@
import{_ as d,c as r,a as o,b as s,d as n,e as a,w as e,r as p,o as i}from"./app-Dgsdh8A6.js";const u={};function c(D,l){const t=p("RouteLink");return i(),r("div",null,[l[50]||(l[50]=o(`<h1 id="仲裁操作" tabindex="-1"><a class="header-anchor" href="#仲裁操作"><span>仲裁操作</span></a></h1><h2 id="申请加入风纪委员会" tabindex="-1"><a class="header-anchor" href="#申请加入风纪委员会"><span>申请加入风纪委员会</span></a></h2><blockquote><p>https://api.bilibili.com/x/credit/v2/jury/apply</p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie</p><p>只有用户会员90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会</p><p>申请成功后可获得30天资格</p><p><strong>正文参数( application/x-www-form-urlencoded</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>cookie中<code>bili_jct</code>的值</td><td>必要</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>25001申请等级限制(会员等级&lt;3)<br>25002没有实名认证<br>2500390天内有封禁记录<br>25013不能重复申请风纪委资格<br>25016当日风纪委员名额已发完</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h4 id="旧api" tabindex="-1"><a class="header-anchor" href="#旧api"><span>旧API</span></a></h4><details><summary>查看旧版API</summary><blockquote><p>https://api.bilibili.com/x/credit/jury/apply</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA或APP</p><p>只有用户会员等级≥Lv4、90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会</p><p>每日10:00开放新名额</p><p>申请成功后可获得30天资格</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP登录Token</td><td>APP方式必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>25001申请等级限制(会员等级&lt;3)<br>25002没有实名认证<br>2500390天内有封禁记录<br>25013不能重复申请风纪委资格<br>25016当日风纪委员名额已发完</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>Cookie方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/jury/apply&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>APP方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/jury/apply&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details></details><h2 id="拉取新案件" tabindex="-1"><a class="header-anchor" href="#拉取新案件"><span>拉取新案件</span></a></h2><blockquote><p>https://api.bilibili.com/x/credit/v2/jury/case/next</p></blockquote><p><em>请求方式GET</em></p><p>认证方式Cookie</p><p><strong>标头参数Headers</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>Cookie</td><td>str</td><td>Cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>25006风纪委员资格已过期<br>25008没有案件<br>25014已审满</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>默认为0当code不为0时显示错误信息</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td>作用尚不明确</td></tr><tr><td>data</td><td>object</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>case_id</td><td>str</td><td>仲裁案件id</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>Cookie方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/v2/jury/case/next&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--header </span><span style="color:#CE9178;">&#39;cookie: XXXXX&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;case_id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;AC2m4HlrIrHv&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h4 id="旧api-1" tabindex="-1"><a class="header-anchor" href="#旧api-1"><span>旧API</span></a></h4><details><summary>查看旧版API</summary><blockquote><p>https://api.bilibili.com/x/credit/jury/caseObtain</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA或APP</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP登录Token</td><td>APP方式必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>25005不是风纪委员<br>25008没有案件<br>25014已审满</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td>作用尚不明确</td></tr><tr><td>data</td><td>object</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>id</td><td>num</td><td>仲裁案件id</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>Cookie方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/jury/caseObtain&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>APP方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/jury/caseObtain&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1239790</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details></details><h2 id="进行仲裁投票" tabindex="-1"><a class="header-anchor" href="#进行仲裁投票"><span>进行仲裁投票</span></a></h2><blockquote><p>https://api.bilibili.com/x/credit/v2/jury/vote</p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p>`,37)),s("table",null,[l[20]||(l[20]=s("thead",null,[s("tr",null,[s("th",null,"参数名"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"必要性"),s("th",null,"备注")])],-1)),s("tbody",null,[l[16]||(l[16]=s("tr",null,[s("td",null,"case_id"),s("td",null,"str"),s("td",null,"案件id"),s("td",null,"必要"),s("td")],-1)),s("tr",null,[l[3]||(l[3]=s("td",null,"vote",-1)),l[4]||(l[4]=s("td",null,"num",-1)),l[5]||(l[5]=s("td",null,"投票类型",-1)),l[6]||(l[6]=s("td",null,"必要",-1)),s("td",null,[l[1]||(l[1]=n("见「")),a(t,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>l[0]||(l[0]=[n("众裁信息")])),_:1,__:[0]}),l[2]||(l[2]=n("」中表"))])]),s("tr",null,[l[12]||(l[12]=s("td",null,"insiders",-1)),l[13]||(l[13]=s("td",null,"num",-1)),l[14]||(l[14]=s("td",null,"是否观看此类视频",-1)),l[15]||(l[15]=s("td",null,"非必要",-1)),s("td",null,[l[8]||(l[8]=n("默认值为0")),l[9]||(l[9]=s("br",null,null,-1)),l[10]||(l[10]=n("见「")),a(t,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>l[7]||(l[7]=[n("众裁信息")])),_:1,__:[7]}),l[11]||(l[11]=n("」中表"))])]),l[17]||(l[17]=s("tr",null,[s("td",null,"content"),s("td",null,"str"),s("td",null,"理由"),s("td",null,"非必要"),s("td")],-1)),l[18]||(l[18]=s("tr",null,[s("td",null,"anonymous"),s("td",null,"num"),s("td",null,"是否匿名"),s("td",null,"非必要"),s("td",null,[n("默认值为0"),s("br"),n("0不匿名"),s("br"),n("1匿名")])],-1)),l[19]||(l[19]=s("tr",null,[s("td",null,"csrf"),s("td",null,"str"),s("td",null,[n("cookie中"),s("code",null,"bili_jct"),n("的值")]),s("td",null,"必要"),s("td")],-1))])]),l[51]||(l[51]=o(`<p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101未登录<br>-111csrf 错误<br>-400请求错误投票类型错误<br>25005不是风纪委员<br>25011投票类型错误<br>25018不能进行此操作<br><br><em>注:新版本对于一个不存在的<code>case_id</code>,不会报错。</em></td></tr><tr><td>message</td><td>str</td><td>信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td>作用尚不明确</td></tr></tbody></table><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h4 id="旧api-2" tabindex="-1"><a class="header-anchor" href="#旧api-2"><span>旧API</span></a></h4>`,5)),s("details",null,[l[44]||(l[44]=s("summary",null,"查看旧版API",-1)),l[45]||(l[45]=n(" > https://api.bilibili.com/x/credit/jury/vote ")),l[46]||(l[46]=s("p",null,[s("em",null,"请求方式POST")],-1)),l[47]||(l[47]=s("p",null,"认证方式CookieSESSDATA或APP",-1)),l[48]||(l[48]=s("p",null,[s("strong",null,"正文参数( application/x-www-form-urlencoded ")],-1)),s("table",null,[l[43]||(l[43]=s("thead",null,[s("tr",null,[s("th",null,"参数名"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"必要性"),s("th",null,"备注")])],-1)),s("tbody",null,[l[35]||(l[35]=s("tr",null,[s("td",null,"cid"),s("td",null,"num"),s("td",null,"案件id"),s("td",null,"必要"),s("td")],-1)),s("tr",null,[l[24]||(l[24]=s("td",null,"vote",-1)),l[25]||(l[25]=s("td",null,"num",-1)),l[26]||(l[26]=s("td",null,"投票类型",-1)),l[27]||(l[27]=s("td",null,"必要",-1)),s("td",null,[l[22]||(l[22]=n("见「")),a(t,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>l[21]||(l[21]=[n("众裁信息")])),_:1,__:[21]}),l[23]||(l[23]=n("」中表"))])]),s("tr",null,[l[31]||(l[31]=s("td",null,"content",-1)),l[32]||(l[32]=s("td",null,"str",-1)),l[33]||(l[33]=s("td",null,"理由",-1)),l[34]||(l[34]=s("td",null,"非必要",-1)),s("td",null,[l[29]||(l[29]=n("见「")),a(t,{to:"/docs/blackroom/jury/judgement_info.html"},{default:e(()=>l[28]||(l[28]=[n("众裁信息")])),_:1,__:[28]}),l[30]||(l[30]=n("」中表"))])]),l[36]||(l[36]=s("tr",null,[s("td",null,"likes"),s("td",null,"nums"),s("td",null,"支持的观点"),s("td",null,"非必要"),s("td")],-1)),l[37]||(l[37]=s("tr",null,[s("td",null,"hates"),s("td",null,"nums"),s("td",null,"反对的观点"),s("td",null,"非必要"),s("td")],-1)),l[38]||(l[38]=s("tr",null,[s("td",null,"attr"),s("td",null,"num"),s("td",null,"是否匿名"),s("td",null,"非必要"),s("td",null,[n("0匿名"),s("br"),n("1不匿名")])],-1)),l[39]||(l[39]=s("tr",null,[s("td",null,"apply_type"),s("td",null,"num"),s("td",null,"是否更改原因"),s("td",null,"非必要"),s("td",null,[n("0保持原来原因"),s("br"),n("1投票给新原因")])],-1)),l[40]||(l[40]=s("tr",null,[s("td",null,"origin_reason"),s("td",null,"num"),s("td",null,"原始原因"),s("td",null,"非必要"),s("td",null,"见「封禁公示」中表")],-1)),l[41]||(l[41]=s("tr",null,[s("td",null,"apply_reason"),s("td",null,"num"),s("td",null,"新原因"),s("td",null,"非必要"),s("td",null,"见「封禁公示」中表")],-1)),l[42]||(l[42]=s("tr",null,[s("td",null,"csrf"),s("td",null,"str"),s("td",null,"CSRF Token位于cookie"),s("td",null,"Cookie方式必要"),s("td")],-1))])]),l[49]||(l[49]=o(`<p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101未登录<br>-111csrf 错误<br>-400请求错误投票类型错误<br>25005不是风纪委员<br>25009 案件不存在<br>25011投票类型错误<br>25012重复投票</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td>作用尚不明确</td></tr></tbody></table><p><strong>示例:</strong></p><p>为案件<code>2333</code>投票,建议封禁,无理由,不匿名,无支持/反对观点,不修改投票原因</p><p>Cookie方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/jury/vote&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;cid=2333&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;vote=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;content=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;likes=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;hates=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;attr=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;apply_type=0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;origin_reason=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;apply_reason=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>APP方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/credit/jury/vote&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;cid=2333&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;vote=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;content=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;likes=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;hates=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;attr=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;apply_type=0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;origin_reason=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;apply_reason=&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,10))])])}const b=d(u,[["render",c]]),m=JSON.parse('{"path":"/docs/blackroom/jury/action.html","title":"仲裁操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/blackroom/jury/action.md"}');export{b as comp,m as data};

View File

@@ -0,0 +1,19 @@
import{_ as t,c as a,a as e,o as n}from"./app-Dgsdh8A6.js";const l={};function o(d,s){return n(),a("div",null,s[0]||(s[0]=[e(`<h1 id="音频投币-收藏" tabindex="-1"><a class="header-anchor" href="#音频投币-收藏"><span>音频投币&amp;收藏</span></a></h1><h2 id="查询音频收藏状态" tabindex="-1"><a class="header-anchor" href="#查询音频收藏状态"><span>查询音频收藏状态</span></a></h2><blockquote><p>https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p>鉴权方式Cookie中<code>DedeUserID</code>存在且不为0</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>sid</td><td>num</td><td>音频auid</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>72000000参数错误<br>72010002账号未登陆<br>7201006该音频不存在或已被下架</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为success</td></tr><tr><td>data</td><td>bool</td><td>是否收藏</td><td>false未收藏<br>true已收藏</td></tr></tbody></table><p><strong>示例:</strong></p><p>查询音频<code>au13598</code>的收藏状态</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;sid=13598&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx;DedeUserID=1;&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="查询音频投币数" tabindex="-1"><a class="header-anchor" href="#查询音频投币数"><span>查询音频投币数</span></a></h2><blockquote><p>https://www.bilibili.com/audio/music-service-c/web/coin/audio</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p>鉴权方式Cookie中<code>DedeUserID</code>存在且不为0</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>sid</td><td>num</td><td>音频auid</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>72000000参数错误<br>72010002账号未登陆<br>7201006该音频不存在或已被下架</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为success</td></tr><tr><td>data</td><td>num</td><td>投币数量</td><td>0为未投币上限为2</td></tr></tbody></table><p><strong>示例:</strong></p><p>查询音频<code>au13598</code>的投币数</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://www.bilibili.com/audio/music-service-c/web/coin/audio&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;sid=15664&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx;DedeUserID=1;&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="投币音频" tabindex="-1"><a class="header-anchor" href="#投币音频"><span>投币音频</span></a></h2><blockquote><p>https://www.bilibili.com/audio/music-service-c/web/coin/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>sid</td><td>num</td><td>音频 auid</td><td>必要</td><td></td></tr><tr><td>multiply</td><td>num</td><td>投币数量(最大为 2</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于 cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>72000000参数错误<br>72010002账号未登陆<br>7201006该音频不存在或已被下架</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为 0</td></tr><tr><td>data</td><td>str</td><td>当前投币数量</td><td>0 为未投币,上限为 2</td></tr></tbody></table><p><strong>示例:</strong></p><p>为音频<code>au13598</code>投币</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://www.bilibili.com/audio/music-service-c/web/coin/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;sid=15664&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx;DedeUserID=1;&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;1&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,42)]))}const i=t(l,[["render",o]]),c=JSON.parse('{"path":"/docs/audio/action.html","title":"音频投币&收藏","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/audio/action.md"}');export{i as comp,c as data};

View File

@@ -0,0 +1,29 @@
import{_ as t,a,b as e}from"./fav-DItVJQlV.js";import{_ as n,c as l,a as d,o}from"./app-Dgsdh8A6.js";const r={};function i(p,s){return o(),l("div",null,s[0]||(s[0]=[d('<h1 id="专栏点赞-投币-收藏" tabindex="-1"><a class="header-anchor" href="#专栏点赞-投币-收藏"><span>专栏点赞&amp;投币&amp;收藏</span></a></h1><h2 id="点赞文章" tabindex="-1"><a class="header-anchor" href="#点赞文章"><span>点赞文章</span></a></h2><img src="'+t+`" width="100" height="100"><blockquote><p>https://api.bilibili.com/x/article/like</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>id</td><td>num</td><td>文章cvid</td><td>必要</td><td></td></tr><tr><td>type</td><td>num</td><td>操作方式</td><td>必要</td><td>1点赞<br>2取消赞</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功 <br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>10003不存在该稿件<br>65006已赞过<br>65004取消点赞失败</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>为文章<code>cv5806746</code>点赞</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/article/like&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;id=5806746&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="投币文章" tabindex="-1"><a class="header-anchor" href="#投币文章"><span>投币文章</span></a></h2><img src="`+a+`" width="100" height="100"><blockquote><p>https://api.bilibili.com/x/web-interface/coin/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td>文章cvid</td><td>必要</td><td></td></tr><tr><td>upid</td><td>num</td><td>文章作者mid</td><td>必要</td><td></td></tr><tr><td>multiply</td><td>num</td><td>投币数量</td><td>必要</td><td>上限为2</td></tr><tr><td>avtype</td><td>num</td><td>2</td><td>必要</td><td>必须为2</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-102账号被封停<br>-104硬币不足<br>-111csrf校验失败<br>-400请求错误<br>10003不存在该稿件<br>34002不能给自己投币<br>34003非法的投币数量<br>34005超过投币上限</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p>data 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>like</td><td>bool</td><td>是否点赞成功</td><td>true成功<br>false失败<br>已赞过则附加点赞失败</td></tr></tbody></table><p><strong>示例:</strong></p><p>为文章<code>cv5806746</code>投币1枚</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/coin/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=5806746&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;upid=486980924&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;multiply=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;avtype=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="收藏文章" tabindex="-1"><a class="header-anchor" href="#收藏文章"><span>收藏文章</span></a></h2><img src="`+e+`" width="100" height="100"><blockquote><p>https://api.bilibili.com/x/article/favorites/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>id</td><td>num</td><td>文章cvid</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-404无此项</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>正确为success</td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>收藏文章<code>cv5806746</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/article/favorites/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;id=5806746&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,45)]))}const h=n(r,[["render",i]]),D=JSON.parse('{"path":"/docs/article/action.html","title":"专栏点赞&投币&收藏","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1745141309000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":1,"url":"https://github.com/wuziqian211"},{"name":"btjawa","username":"btjawa","email":"125720787+btjawa@users.noreply.github.com","commits":1,"url":"https://github.com/btjawa"}],"changelog":[{"hash":"c4dc2268a9c5d61487399cbcde9a89dd125ff881","time":1745141309000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"晨叶梦春","message":"add #1163","coAuthors":[{"name":"btjawa","email":"125720787+btjawa@users.noreply.github.com"}]},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/article/action.md"}');export{h as comp,D as data};

View File

@@ -0,0 +1,30 @@
import{_ as t,c as a,a as e,o as n}from"./app-Dgsdh8A6.js";const l={};function d(o,s){return n(),a("div",null,s[0]||(s[0]=[e(`<h1 id="相簿操作" tabindex="-1"><a class="header-anchor" href="#相簿操作"><span>相簿操作</span></a></h1><details><summary>功能已下线</summary><h2 id="点赞相簿" tabindex="-1"><a class="header-anchor" href="#点赞相簿"><span><s>点赞相簿</s></span></a></h2><blockquote><p>https://api.vc.bilibili.com/link_draw/v2/Vote/operate</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>doc_id</td><td>num</td><td>相簿id</td><td>必要</td><td></td></tr><tr><td>type</td><td>num</td><td>操作方式</td><td>必要</td><td>1点赞<br>2取消赞</td></tr><tr><td>csrf_token</td><td>str</td><td>CSRF Token位于cookie</td><td>非必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>1参数错误<br>3未登录<br>110022已经操作过了</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为success</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为success</td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>操作方式</td><td>1点赞<br>2取消赞</td></tr></tbody></table><p><strong>示例:</strong></p><p>点赞相簿<code>id=99184721</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/link_draw/v2/Vote/operate&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;doc_id=99184721&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf_token=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="收藏相簿" tabindex="-1"><a class="header-anchor" href="#收藏相簿"><span><s>收藏相簿</s></span></a></h2><blockquote><p>https://api.vc.bilibili.com/user_plus/v1/Fav/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>fav_id</td><td>num</td><td>相簿id</td><td>必要</td><td></td></tr><tr><td>biz_type</td><td>num</td><td>2</td><td>必要</td><td>作用尚不明确</td></tr><tr><td>csrf_token</td><td>str</td><td>CSRF Token位于cookie</td><td>非必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400参数错误<br>-500未登录<br>-507已收藏</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为OK</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为OK</td></tr><tr><td>data</td><td>array</td><td>空</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>收藏相簿<code>id=99184721</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/user_plus/v1/Fav/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;fav_id=99184721&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;biz_type=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf_token=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;OK&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;OK&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: []</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="取消收藏相簿" tabindex="-1"><a class="header-anchor" href="#取消收藏相簿"><span>取消收藏相簿</span></a></h2><blockquote><p>https://api.vc.bilibili.com/user_plus/v1/Fav/delete</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>fav_id</td><td>num</td><td>相簿id</td><td>必要</td><td></td></tr><tr><td>biz_type</td><td>num</td><td>2</td><td>必要</td><td>作用尚不明确</td></tr><tr><td>csrf_token</td><td>str</td><td>CSRF Token位于cookie</td><td>非必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400参数错误<br>-500未登录</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为OK</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为OK</td></tr><tr><td>data</td><td>array</td><td>空</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>取消收藏相簿<code>id=99184721</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/user_plus/v1/Fav/delete&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;fav_id=99184721&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;biz_type=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf_token=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;OK&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;OK&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: []</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details></details>`,2)]))}const p=t(l,[["render",d]]),i=JSON.parse('{"path":"/docs/album/action.html","title":"相簿操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1745165052000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":2,"url":"https://github.com/wuziqian211"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"ab2762aeaa0aad65603478ca704cd4cbc3b9c425","time":1745165052000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: mark all album doc as down"},{"hash":"2382b768aaafef33247bf09510649e2501341b26","time":1720284320000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"feat: 更新部分接口文档的表述 (#1049)"},{"hash":"b16381e0ed1d6337d80801b719de1f56b917a0e1","time":1720278007000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"更新 action.md"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/album/action.md"}');export{p as comp,i as data};

View File

@@ -0,0 +1,55 @@
import{_ as e,c as l,a as t,b as d,d as a,e as o,w as r,r as i,o as p}from"./app-Dgsdh8A6.js";const c={};function u(h,s){const n=i("RouteLink");return p(),l("div",null,[s[2]||(s[2]=t(`<h1 id="动态操作" tabindex="-1"><a class="header-anchor" href="#动态操作"><span>动态操作</span></a></h1><h2 id="点赞动态" tabindex="-1"><a class="header-anchor" href="#点赞动态"><span>点赞动态</span></a></h2><blockquote><p>https://api.bilibili.com/x/dynamic/feed/dyn/thumb</p></blockquote><p><em>请求方法: POST</em></p><p>认证方式: Cookie (SESSDATA)</p><p><strong>URL 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>string</td><td>CSRF Token (即 Cookie 中 bili_jct)</td><td>必要</td><td></td></tr></tbody></table><p><strong>正文参数 (application/json):</strong></p><p>根对象:</p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>dyn_id_str</td><td>string</td><td>动态 id</td><td>必要</td><td></td></tr><tr><td>up</td><td>number</td><td>点赞状态</td><td>必要</td><td>0: 切换<br>1: 点赞<br>2: 取消点赞</td></tr><tr><td>spmid</td><td>string</td><td><code>333.1369.0.0</code></td><td>不必要</td><td></td></tr><tr><td>from_spmid</td><td>string</td><td><code>333.999.0.0</code></td><td>不必要</td><td></td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>number</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-111: csrf 校验失败<br>4100001: 参数错误</td></tr><tr><td>message</td><td>string</td><td>错误消息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>number</td><td><code>1</code></td><td></td></tr><tr><td>data</td><td>object</td><td>空对象</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>点赞动态 <code>1057955152016703512</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/dynamic/feed/dyn/thumb&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --url-query</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -H</span><span style="color:#CE9178;"> &#39;content-type: application/json&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-raw</span><span style="color:#CE9178;"> &#39;{&quot;dyn_id_str&quot;:&quot;1057955152016703512&quot;,&quot;up&quot;:1}&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="点赞动态-旧版" tabindex="-1"><a class="header-anchor" href="#点赞动态-旧版"><span>点赞动态 (旧版)</span></a></h2><blockquote><p>https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/thumb</p></blockquote><p><em>请求方法: POST</em></p><p>认证方式: Cookie (SESSDATA)</p><p><strong>正文参数 (application/x-www-form-urlencoded):</strong></p><p>根对象:</p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>dynamic_id</td><td>string</td><td>动态 id</td><td>必要</td><td></td></tr><tr><td>up</td><td>number</td><td>点赞状态</td><td>必要</td><td>0: 切换<br>1: 点赞<br>2: 取消点赞</td></tr><tr><td>csrf</td><td>string</td><td>CSRF Token (即 Cookie 中 bili_jct)</td><td>必要</td><td></td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>number</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-111: csrf 校验失败<br>4100001: 参数错误</td></tr><tr><td>message</td><td>string</td><td>错误消息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>number</td><td><code>1</code></td><td></td></tr><tr><td>data</td><td>object</td><td>空对象</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>点赞动态 <code>1060771233257226247</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/thumb&#39;</span><span style="color:#D7BA7D;"> \\ </span><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxxxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;dynamic_id=1060771233257226247&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;up=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="删除动态" tabindex="-1"><a class="header-anchor" href="#删除动态"><span>删除动态</span></a></h2>`,32)),d("p",null,[s[1]||(s[1]=a("参见 ")),o(n,{to:"/docs/creativecenter/opus.html#%E5%88%A0%E9%99%A4%E5%8A%A8%E6%80%81"},{default:r(()=>s[0]||(s[0]=[a("创作中心 -> 图文操作 -> 删除动态")])),_:1,__:[0]})]),s[3]||(s[3]=t(`<h2 id="删除动态-旧版" tabindex="-1"><a class="header-anchor" href="#删除动态-旧版"><span>删除动态 (旧版)</span></a></h2><blockquote><p><a href="https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic" target="_blank" rel="noopener noreferrer">https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic</a></p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数multipart/form-data</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>dynamic_id</td><td>num</td><td>动态id</td><td>必要</td><td></td></tr><tr><td>csrf_token</td><td>str</td><td>csrf</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>csrf</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>500404已经删除过该动态<br>500406动态不是自己的</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>成功时为空文本</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>同<code>msg</code></td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>_gt_</td><td>num</td><td>0</td><td><strong>作用尚不明确</strong></td></tr></tbody></table><p><strong>示例:</strong></p><p>删除动态<code>dynamic_id=588320531406678918</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;dynamic_id=588320531406678918&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf_token=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;_gt_&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="删除定时发布动态" tabindex="-1"><a class="header-anchor" href="#删除定时发布动态"><span>删除定时发布动态</span></a></h2><blockquote><p><a href="https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft" target="_blank" rel="noopener noreferrer">https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft</a></p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数application/x-www-form-urlencoded</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>draft_id</td><td>num</td><td>定时发布动态id</td><td>必要</td><td></td></tr><tr><td>csrf_token</td><td>str</td><td>csrf</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>4120015系统异常</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td>空对象,即<code>{}</code></td></tr></tbody></table><p><strong>示例:</strong></p><p>删除定时发布动态<code>draft_id=755409289278914611</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;draft_id=755409289278914611&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxxx&#39;</span></span>
<span class="line"><span style="color:#DCDCAA;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">, </span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">, </span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">, </span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="设置置顶动态" tabindex="-1"><a class="header-anchor" href="#设置置顶动态"><span>设置置顶动态</span></a></h2><blockquote><p>https://api.bilibili.com/x/dynamic/feed/space/set_top</p></blockquote><p><strong>请求方法: POST</strong></p><p>认证方式: Cookie (SESSDATA)</p><p>鉴权方式: Cookie 中 <code>buvid3</code> 不为空</p><p><strong>URL 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>string</td><td>CSRF Token (即 Cookie 中 bili_jct)</td><td>必要</td><td></td></tr></tbody></table><p><strong>正文参数 (application/json):</strong></p><p>根对象:</p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>dyn_str</td><td>string</td><td>动态 id</td><td>必要</td><td></td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>number</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-111: csrf 校验失败<br>4100001: 参数错误</td></tr><tr><td>message</td><td>string</td><td>错误消息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>number</td><td><code>1</code></td><td></td></tr><tr><td>data</td><td>object</td><td>空对象</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>置顶动态 <code>1063487284684259332</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/dynamic/feed/space/set_top&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --url-query</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxxxx; buvid3=aaa&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -H</span><span style="color:#CE9178;"> &#39;content-type: application/json&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-raw</span><span style="color:#CE9178;"> &#39;{&quot;dyn_str&quot;:&quot;1063487284684259332&quot;}&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="取消置顶动态" tabindex="-1"><a class="header-anchor" href="#取消置顶动态"><span>取消置顶动态</span></a></h2><blockquote><p>https://api.bilibili.com/x/dynamic/feed/space/rm_top</p></blockquote><p><strong>请求方法: POST</strong></p><p>认证方式: Cookie (SESSDATA)</p><p><strong>URL 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>string</td><td>CSRF Token (即 Cookie 中 bili_jct)</td><td>必要</td><td></td></tr></tbody></table><p><strong>正文参数 (application/json):</strong></p><p>根对象:</p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>dyn_str</td><td>string</td><td>动态 id</td><td>必要</td><td></td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>number</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-111: csrf 校验失败<br>4100001: 参数错误</td></tr><tr><td>message</td><td>string</td><td>错误消息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>number</td><td><code>1</code></td><td></td></tr><tr><td>data</td><td>object</td><td>空对象</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>取消置顶动态 <code>1063487284684259332</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/dynamic/feed/space/rm_top&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --url-query</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -H</span><span style="color:#CE9178;"> &#39;content-type: application/json&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-raw</span><span style="color:#CE9178;"> &#39;{&quot;dyn_str&quot;:&quot;1063487284684259332&quot;}&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {}</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,61))])}const b=e(c,[["render",u]]),D=JSON.parse('{"path":"/docs/dynamic/action.html","title":"动态操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1746964165000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":4,"url":"https://github.com/wuziqian211"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":7,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"4144fc9fcc65988e5f0d368796d5962f0aa0f609","time":1746964165000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"fix(dynamic/action.md): typo","coAuthors":[{"name":"晨叶梦春","email":"65224318+wuziqian211@users.noreply.github.com"}]},{"hash":"11dee979766e979fc9a52842abb4c915af3bf1ab","time":1746619234000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: 取消置顶动态"},{"hash":"105dfe311a2ca438da2a129fe14f61c196096934","time":1746612363000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"fix(dynamic/action.md): set_top needs buvid3"},{"hash":"4d20caed1eb9151b8f51dbeadbc9a403121873d2","time":1746597381000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: 置顶动态"},{"hash":"53e79c6f6df3bdb1018d0492608f0dc246f52167","time":1745855930000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat(dynamic/action.md): link to new remove dynamic"},{"hash":"e70777654991bb482cdbdc9cd4893e7319325d71","time":1745853050000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat(dynamic/action.md): old thumb"},{"hash":"be33ec2ea1b78e3faa606e327bb02007f411e43d","time":1745772724000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat(dynamic/action.md): thumb"},{"hash":"fb1d970a9becd5741684ceb0e2a7b16530065aa5","time":1745154419000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"晨叶梦春","message":"添加回被 #1049 误删除的部分"},{"hash":"2382b768aaafef33247bf09510649e2501341b26","time":1720284320000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"feat: 更新部分接口文档的表述 (#1049)"},{"hash":"478feea1b24b4ac252c8f7cb4ac335c15e4504eb","time":1720280017000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"feat: 规范化文档"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/dynamic/action.md"}');export{b as comp,D as data};

View File

@@ -0,0 +1,159 @@
import{_ as t,a,b as n}from"./fav-DItVJQlV.js";import{_ as e,c as l,a as d,o}from"./app-Dgsdh8A6.js";const r={};function p(i,s){return o(),l("div",null,s[0]||(s[0]=[d('<h1 id="稿件观众操作" tabindex="-1"><a class="header-anchor" href="#稿件观众操作"><span>稿件观众操作</span></a></h1><h2 id="点赞" tabindex="-1"><a class="header-anchor" href="#点赞"><span>点赞</span></a></h2><img src="'+t+`" width="100" height="100"><h3 id="点赞视频-web端" tabindex="-1"><a class="header-anchor" href="#点赞视频-web端"><span>点赞视频web端</span></a></h3><blockquote><p>https://api.bilibili.com/x/web-interface/archive/like</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可CookieSESSDATA</p><p>需验证 Cookie 中<code>buvid3</code>字段存在且正常, 否则将导致触发风控</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>like</td><td>num</td><td>操作方式</td><td>必要</td><td>1点赞<br>2取消赞</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于 Cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功 <br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-403: 账号异常<br> 10003不存在该稿件<br>65004取消点赞失败<br>65006重复点赞</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>点赞视频<code>av79677524</code>/<code>BV1uJ411r7hL</code></p><p>avid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/like&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=79677524&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;like=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>bvid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/like&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bvid=BV1uJ411r7hL&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;like=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="点赞视频-app端" tabindex="-1"><a class="header-anchor" href="#点赞视频-app端"><span>点赞视频APP端</span></a></h3><blockquote><p>https://app.bilibili.com/x/v2/view/like</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可APP</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP 方式必要</td><td></td></tr><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要</td><td></td></tr><tr><td>like</td><td>num</td><td>操作方式</td><td>必要</td><td>0点赞<br>1取消赞</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功 <br>-101账号未登录<br>-400请求错误<br>-403: 账号异常<br>10003不存在该稿件</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>toast</td><td>str</td><td>提示信息内容</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>点赞视频<code>av79677524</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://app.bilibili.com/x/v2/view/like&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=79677524&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;like=0&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;toast&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;点赞收到!视频可能推荐哦&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="判断视频近期是否被点赞-双端" tabindex="-1"><a class="header-anchor" href="#判断视频近期是否被点赞-双端"><span>判断视频近期是否被点赞(双端)</span></a></h3><blockquote><p>https://api.bilibili.com/x/web-interface/archive/has/like</p></blockquote><p><em>请求方式GET</em></p><p>认证方式APP或CookieSESSDATA</p><p>注: 这一 API 实际上只能判断出视频<strong>在近期内</strong>是否被点赞, 并不能判断出视频是否被点赞. 「近期」的定义不明, 但至少半年前点赞过的视频, 用这一接口获取到的结果就已经是 <code>0</code> 了. 参见 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/380" target="_blank" rel="noopener noreferrer">#380</a>.</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP 方式必要</td><td></td></tr><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400请求错误<br>-101账号未登录</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>num</td><td>被点赞标志</td><td>0未点赞<br>1已点赞</td></tr></tbody></table><p><strong>示例:</strong></p><p>视频<code>av39330059</code>/<code>BV1Bt411z799</code>的状态为已点赞</p><p>avid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/has/like&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=39330059&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>bvid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/has/like&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bvid=BV1Bt411z799&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="点踩" tabindex="-1"><a class="header-anchor" href="#点踩"><span>点踩</span></a></h2><h3 id="点踩视频-app端" tabindex="-1"><a class="header-anchor" href="#点踩视频-app端"><span>点踩视频App端</span></a></h3><blockquote><p>https://app.biliapi.net/x/v2/view/dislike</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可App</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>必要</td><td></td></tr><tr><td>aid</td><td>num</td><td>视频 aid</td><td>必要</td><td></td></tr><tr><td>dislike</td><td>num</td><td>操作类型</td><td>必要</td><td>0点踩<br>1取消点踩</td></tr></tbody></table><p><strong>json回复</strong></p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功 <br>-101账号未登录<br>-400请求错误<br>-404啥都木有<br> 65005取消踩失败 未点踩过<br>65007已踩过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>点踩视频</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://app.biliapi.net/x/v2/view/dislike&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Content-Type: application/x-www-form-urlencoded&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;dislike=0&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>取消点踩</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://app.biliapi.net/x/v2/view/dislike&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Content-Type: application/x-www-form-urlencoded&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;dislike=1&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="投币" tabindex="-1"><a class="header-anchor" href="#投币"><span>投币</span></a></h2><img src="`+a+`" width="100" height="100"><h3 id="投币视频-web端" tabindex="-1"><a class="header-anchor" href="#投币视频-web端"><span>投币视频web端</span></a></h3><blockquote><p>https://api.bilibili.com/x/web-interface/coin/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可CookieSESSDATA</p><p>需验证 Cookie 中<code>buvid3</code>字段存在且正常, 否则将导致触发风控</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>multiply</td><td>num</td><td>投币数量</td><td>必要</td><td>上限为2</td></tr><tr><td>select_like</td><td>num</td><td>是否附加点赞</td><td>非必要</td><td>0不点赞<br>1同时点赞<br>默认为0</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于 Cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-102账号被封停<br>-104硬币不足<br>-111csrf校验失败<br>-400请求错误<br>-403: 账号异常<br>10003不存在该稿件<br>34002不能给自己投币<br>34003非法的投币数量<br>34004投币间隔太短<br>34005超过投币上限</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p>data 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>like</td><td>bool</td><td>是否点赞成功</td><td>true成功<br>false失败<br>已赞过则附加点赞失败</td></tr></tbody></table><p><strong>示例:</strong></p><p>为视频<code>av90671873</code>/<code>BV1N7411A7wC</code>投币2枚</p><p>avid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/coin/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=90671873&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;select_like=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;multiply=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>bvid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/coin/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bvid=BV1N7411A7wC&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;select_like=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;multiply=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="投币视频-app端" tabindex="-1"><a class="header-anchor" href="#投币视频-app端"><span>投币视频APP端</span></a></h3><blockquote><p>https://app.bilibili.com/x/v2/view/coin/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可APP</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP 方式必要</td><td></td></tr><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要</td><td></td></tr><tr><td>multiply</td><td>num</td><td>投币数量</td><td>必要</td><td>上限为2</td></tr><tr><td>select_like</td><td>num</td><td>附加点赞</td><td>非必要</td><td>0不点赞<br>1同时点赞<br>默认为0</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-102账号被封停<br>-104硬币不足<br>-400请求错误<br>10003不存在该稿件<br>34002不能给自己投币<br>34003非法的投币数量<br>34004投币间隔太短<br>34005超过投币上限</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p>data 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>like</td><td>bool</td><td>是否点赞成功</td><td>true成功<br>false失败<br>已赞过则附加点赞失败</td></tr></tbody></table><p>为视频<code>av90671873</code>投币2枚</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://app.bilibili.com/x/v2/view/coin/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=90671873&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;select_like=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;multiply=2&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="判断视频是否被投币-双端" tabindex="-1"><a class="header-anchor" href="#判断视频是否被投币-双端"><span>判断视频是否被投币(双端)</span></a></h3><blockquote><p>https://api.bilibili.com/x/web-interface/archive/coins</p></blockquote><p><em>请求方式GET</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP方式必要</td><td></td></tr><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400请求错误<br>-101账号未登录</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>multiply</td><td>num</td><td>投币枚数</td><td>未投币为0</td></tr></tbody></table><p><strong>示例:</strong></p><p>视频<code>av37896701</code>/<code>BV18t411q7zz</code>的投币数为2枚</p><p>avid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/coins&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=37896701&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>bvid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/coins&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bvid=BV18t411q7zz&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;multiply&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="收藏" tabindex="-1"><a class="header-anchor" href="#收藏"><span>收藏</span></a></h2><img src="`+n+`" width="100" height="100"><h3 id="收藏视频-双端" tabindex="-1"><a class="header-anchor" href="#收藏视频-双端"><span>收藏视频(双端)</span></a></h3><blockquote><p>https://api.bilibili.com/medialist/gateway/coll/resource/deal</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p>鉴权方式Cookie方式时需要验证referer为 <code>.bilibili.com</code>域名下</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP 方式必要</td><td></td></tr><tr><td>rid</td><td>num</td><td>稿件 avid</td><td>必要</td><td></td></tr><tr><td>type</td><td>num</td><td>必须为2</td><td>必要</td><td></td></tr><tr><td>add_media_ids</td><td>nums</td><td>需要加入的收藏夹 mlid</td><td>必要(可选)</td><td>同时添加多个,用<code>,</code>%2C分隔</td></tr><tr><td>del_media_ids</td><td>nums</td><td>需要取消的收藏夹 mlid</td><td>必要(可选)</td><td>同时取消多个,用<code>,</code>%2C分隔</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于 Cookie</td><td>Cookie 方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-403访问权限不足<br>10003不存在该稿件<br>11010: 您访问的内容不存在<br>11201已经收藏过了<br>11202已经取消收藏了<br>11203达到收藏上限<br>72010017参数错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>正确为success</td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>prompt</td><td>bool</td><td>是否为未关注用户收藏</td><td>false否<br>true是</td></tr></tbody></table><p><strong>示例:</strong></p><p>将视频<code>av49166435</code>添加到收藏夹<code>49166435</code>中</p><p>Cookie方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/medialist/gateway/coll/resource/deal&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;rid=90671873&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;add_media_ids=49166435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;del_media_ids=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-e </span><span style="color:#CE9178;">&#39;https://www.bilibili.com&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>APP方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/medialist/gateway/coll/resource/deal&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;rid=90671873&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;add_media_ids=49166435&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;del_media_ids=&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;prompt&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="收藏视频-web端" tabindex="-1"><a class="header-anchor" href="#收藏视频-web端"><span>收藏视频Web端</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/resource/deal</p></blockquote><p><em>请求方式: POST</em></p><p>认证方式: CookieSESSDATA</p><p><strong>正文参数(application/x-www-form-urlencoded):</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>rid</td><td>num</td><td>稿件 avid</td><td>必要</td><td></td></tr><tr><td>type</td><td>num</td><td>必须为2</td><td>必要</td><td></td></tr><tr><td>add_media_ids</td><td>nums</td><td>需要加入的收藏夹 mlid</td><td>必要(可选)</td><td>同时添加多个,用<code>,</code>%2C分隔</td></tr><tr><td>del_media_ids</td><td>nums</td><td>需要取消的收藏夹 mlid</td><td>必要(可选)</td><td>同时取消多个,用<code>,</code>%2C分隔</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token (即 Cookie 中 bili_jct)</td><td>必要</td><td></td></tr><tr><td>platform</td><td>str</td><td>平台标识?</td><td>非必要</td><td>web端: web</td></tr><tr><td>eab_x</td><td>num</td><td>1</td><td>非必要</td><td>作用尚不明确</td></tr><tr><td>ramval</td><td>num</td><td>正整数</td><td>非必要</td><td>可能与在该页面的停留时间相关?</td></tr><tr><td>ga</td><td>num</td><td>1</td><td>非必要</td><td>作用尚不明确</td></tr><tr><td>gaia_source</td><td>str</td><td>???</td><td>非必要</td><td>web端: web_normal</td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-111: csrf 校验失败<br>2001000: 参数错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td>错误时为 null 或不存在</td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>prompt</td><td>bool</td><td>是否为未关注用户收藏?</td><td>false否<br>true是</td></tr><tr><td>ga_data</td><td>null</td><td></td><td>作用尚不明确</td></tr><tr><td>toast_msg</td><td>str</td><td>空</td><td>作用尚不明确</td></tr><tr><td>success_num</td><td>num</td><td>0</td><td>作用尚不明确</td></tr></tbody></table><p><strong>示例:</strong></p><p>将视频 <code>av2</code> 添加到收藏夹 <code>645769214</code> 中</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &quot;https://api.bilibili.com/x/v3/fav/resource/deal&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&quot;rid=2&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&quot;type=2&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&quot;csrf=xxx&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&quot;add_media_ids=1428261914&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&quot;SESSDATA=xxx&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;prompt&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ga_data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;toast_msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;success_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="判断视频是否被收藏-双端" tabindex="-1"><a class="header-anchor" href="#判断视频是否被收藏-双端"><span>判断视频是否被收藏(双端)</span></a></h3><blockquote><p>https://api.bilibili.com/x/v2/fav/video/favoured</p></blockquote><p><em>请求方式GET</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP 方式必要</td><td></td></tr><tr><td>aid</td><td>num 或 str</td><td>稿件 avid 或稿件 bvid</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400请求错误<br>-101账号未登录</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p>data 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>count</td><td>num</td><td>1</td><td>作用尚不明确</td></tr><tr><td>favoured</td><td>bool</td><td>是否收藏</td><td>true已收藏<br>false未收藏</td></tr></tbody></table><p><strong>示例:</strong></p><p>视频<code>av46281123</code>/<code>BV1Bb411H7Dv</code>的状态为已收藏</p><p>avid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v2/fav/video/favoured&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=46281123&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>bvid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v2/fav/video/favoured&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=BV1Bb411H7Dv&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;count&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;favoured&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="一键三连" tabindex="-1"><a class="header-anchor" href="#一键三连"><span>一键三连</span></a></h2><p><img src="`+t+'" align="left" width="50" height="50"><img src="'+a+'" align="left" width="50" height="50"><img src="'+n+`" width="50" height="50"></p><h3 id="一键三连视频-web端" tabindex="-1"><a class="header-anchor" href="#一键三连视频-web端"><span>一键三连视频web端</span></a></h3><blockquote><p>https://api.bilibili.com/x/web-interface/archive/like/triple</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可CookieSESSDATA</p><p>同时点赞投币收藏视频,收藏于默认收藏夹中</p><p>需验证 Cookie 中<code>buvid3</code>字段存在且正常, 否则将导致触发风控</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>必要(可选)</td><td>avid 与 bvid 任选一个</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于 Cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>10003不存在该稿件<br>-403: 账号异常</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>like</td><td>bool</td><td>是否点赞成功</td><td>true成功<br>false失败</td></tr><tr><td>coin</td><td>bool</td><td>是否投币成功</td><td>true成功<br>false失败</td></tr><tr><td>fav</td><td>bool</td><td>是否收藏成功</td><td>true成功<br>false失败</td></tr><tr><td>multiply</td><td>num</td><td>投币枚数</td><td>默认为2</td></tr></tbody></table><p><strong>示例:</strong></p><p>将视频<code>av91003840</code>/<code>BV1Wj411f79U</code>一键三连</p><p>avid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/like/triple&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=91003840&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>bvid方式</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/archive/like/triple&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bvid=BV1Wj411f79U&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coin&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fav&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;multiply&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="一键三连视频-app端" tabindex="-1"><a class="header-anchor" href="#一键三连视频-app端"><span>一键三连视频APP端</span></a></h3><blockquote><p>https://app.bilibili.com/x/v2/view/like/triple</p></blockquote><p><em>请求方式POST</em></p><p>认证方式仅可APP</p><p>同时点赞投币收藏视频,收藏于默认收藏夹中</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP 登录 Token</td><td>APP 方式必要</td><td></td></tr><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>10003不存在该稿件</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>like</td><td>bool</td><td>是否点赞成功</td><td>true成功<br>false失败</td></tr><tr><td>coin</td><td>bool</td><td>是否投币成功</td><td>true成功<br>false失败</td></tr><tr><td>fav</td><td>bool</td><td>是否收藏成功</td><td>true成功<br>false失败</td></tr><tr><td>multiply</td><td>num</td><td>投币枚数</td><td>默认为2</td></tr></tbody></table><p><strong>示例:</strong></p><p>将视频<code>av91003840</code>一键三连</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://app.bilibili.com/x/v2/view/like/triple&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;access_key=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;aid=91003840&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coin&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fav&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;multiply&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="分享" tabindex="-1"><a class="header-anchor" href="#分享"><span>分享</span></a></h2><h3 id="分享视频-web端" tabindex="-1"><a class="header-anchor" href="#分享视频-web端"><span>分享视频 Web端</span></a></h3><blockquote><p>https://api.bilibili.com/x/web-interface/share/add</p></blockquote><p><em>请求方式POST</em></p><p>鉴权方式: Cookie (buvid3)</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td>稿件 aid</td><td>必要 (可选)</td><td>aid 与 bvid 任选一个</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>必要 (可选)</td><td>aid 与 bvid 任选一个</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token (即 Cookie 中 bili_jct)</td><td>不必要</td><td></td></tr><tr><td>eab_x</td><td>num</td><td>2</td><td>不必要</td><td>作用尚不明确</td></tr><tr><td>ramval</td><td>num</td><td>0</td><td>不必要</td><td>作用尚不明确</td></tr><tr><td>source</td><td>str</td><td>web_normal</td><td>不必要</td><td></td></tr><tr><td>ga</td><td>num</td><td>1</td><td>不必要</td><td>可能与风控有关?</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-111: csrf校验失败<br>-400: 请求错误<br>403: 账号异常,操作失败<br>71000: 重复分享</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>num</td><td>当前分享数</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>分享视频<code>BV1oA411776z</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/share/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bvid=BV1oA411776z&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">19</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,225)]))}const u=e(r,[["render",p]]),h=JSON.parse('{"path":"/docs/video/action.html","title":"稿件观众操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1741620310000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":4,"url":"https://github.com/SocialSisterYi"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":5,"url":"https://github.com/SessionHu"},{"name":"zdjniubi","username":"zdjniubi","email":"39577077+zdjniubi@users.noreply.github.com","commits":1,"url":"https://github.com/zdjniubi"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"},{"name":"djeozhang","username":"djeozhang","email":"djeozhang@tencent.com","commits":1,"url":"https://github.com/djeozhang"}],"changelog":[{"hash":"1d4c2d9e63de341aeb5cb7ee0622e9f7c8568c96","time":1741620310000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"fix(video/action.md): fav required add_media_ids"},{"hash":"1e24c6b1889160c4c35c01416aa4239501accf5f","time":1726759053000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"调整部分接口描述与错误修复 (#1088)","coAuthors":[{"name":"社会易姐QwQ","email":"45892418+SocialSisterYi@users.noreply.github.com"}]},{"hash":"2465990ccc5aea35ad6d0b17dc7c2f36bc5e45c0","time":1722059352000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: 更新web端视频操作播放合集相关接口 (#1064)"},{"hash":"18c1efbc102ae6b44c8f5314c90e5e64f0d926cd","time":1721909032000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: bili_ticket 算法 Java 实现 及 信息补充 及 错误修正 (#1061)"},{"hash":"e82b450f7302d6a9796ba56511e0f7e0e32cff7d","time":1703232457000,"email":"39577077+zdjniubi@users.noreply.github.com","author":"Gospel","message":"稿件观众操作接口增加鉴权说明 (#840)","coAuthors":[{"name":"LaMerChiang","email":"catlair@qq.com"},{"name":"djeozhang","email":"djeozhang@tencent.com"},{"name":"SocialSisterYi","email":"1440239038@qq.com"}]},{"hash":"b1a06806f09ed3ea130eefc94e33df2bc0335424","time":1691494779000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"将 http 改为 https (#776)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/video/action.md"}');export{u as comp,h as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,134 @@
import{_ as p,c as d,a as t,b as a,d as n,e,w as o,r,o as c}from"./app-Dgsdh8A6.js";const i={};function D(u,s){const l=r("RouteLink");return c(),d("div",null,[s[10]||(s[10]=t('<h1 id="收藏夹操作" tabindex="-1"><a class="header-anchor" href="#收藏夹操作"><span>收藏夹操作</span></a></h1><h2 id="管理收藏夹" tabindex="-1"><a class="header-anchor" href="#管理收藏夹"><span>管理收藏夹</span></a></h2><h3 id="新建收藏夹" tabindex="-1"><a class="header-anchor" href="#新建收藏夹"><span>新建收藏夹</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/folder/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>title</td><td>str</td><td>收藏夹标题</td><td>必要</td><td></td></tr><tr><td>intro</td><td>str</td><td>收藏夹简介</td><td>非必要</td><td>默认为空</td></tr><tr><td>privacy</td><td>num</td><td>是否公开</td><td>非必要</td><td>默认为公开<br>0公开<br>1私密</td></tr><tr><td>cover</td><td>str</td><td>封面图url</td><td>非必要</td><td>封面会被审核</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-102账号被封停</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><p>略....</p>',13)),a("p",null,[s[1]||(s[1]=n("详见")),e(l,{to:"/docs/fav/info.html#%E8%8E%B7%E5%8F%96%E6%94%B6%E8%97%8F%E5%A4%B9%E5%85%83%E6%95%B0%E6%8D%AE"},{default:o(()=>s[0]||(s[0]=[n("获取收藏夹元数据")])),_:1,__:[0]}),s[2]||(s[2]=n("中的")),s[3]||(s[3]=a("code",null,"data",-1)),s[4]||(s[4]=n("对象"))]),s[11]||(s[11]=t(`<p><strong>示例:</strong></p><p>创建一个叫<code>test</code>,简介是<code>2333</code>,封面<code>https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png</code>,的公开收藏夹:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/folder/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;title=test&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;intro=2333&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;privacy=0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;cover=https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1182306172</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">11823061</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">470310172</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attr&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">6</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;test&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;upper&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;face&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;followed&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;vip_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;vip_statue&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cnt_info&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;collect&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;play&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;thumb_up&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;share&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;intro&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;2333&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ctime&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mtime&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fav_state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like_state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;media_count&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="修改收藏夹" tabindex="-1"><a class="header-anchor" href="#修改收藏夹"><span>修改收藏夹</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/folder/edit</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>media_id</td><td>num</td><td>目标收藏夹mdid</td><td>必要</td><td></td></tr><tr><td>title</td><td>str</td><td>修改收藏夹标题</td><td>必要</td><td></td></tr><tr><td>intro</td><td>str</td><td>修改收藏夹简介</td><td>非必要</td><td></td></tr><tr><td>privacy</td><td>num</td><td>是否公开</td><td>非必要</td><td>默认为公开<br><br>0公开<br>1私密</td></tr><tr><td>cover</td><td>str</td><td>封面图url</td><td>非必要</td><td>封面会被审核</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-102账号被封停</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><p>略....</p>`,15)),a("p",null,[s[6]||(s[6]=n("详见")),e(l,{to:"/docs/fav/info.html#%E8%8E%B7%E5%8F%96%E6%94%B6%E8%97%8F%E5%A4%B9%E5%85%83%E6%95%B0%E6%8D%AE"},{default:o(()=>s[5]||(s[5]=[n("获取收藏夹元数据")])),_:1,__:[5]}),s[7]||(s[7]=n("中的")),s[8]||(s[8]=a("code",null,"data",-1)),s[9]||(s[9]=n("对象"))]),s[12]||(s[12]=t(`<p><strong>示例:</strong></p><p>修改id为<code>1182306172</code>的名字为<code>test</code>,简介为<code>2333</code>,封面为<code>https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png</code>,公开收藏夹:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/folder/edit&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;media_id=1182306172&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;title=test&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;intro=2333&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;privacy=0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;cover=https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1182306172</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">11823061</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">470310172</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attr&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">6</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;test&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;upper&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;face&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;followed&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;vip_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;vip_statue&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cnt_info&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;collect&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;play&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;thumb_up&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;share&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;intro&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;2333&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ctime&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mtime&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fav_state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;like_state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;media_count&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="删除收藏夹" tabindex="-1"><a class="header-anchor" href="#删除收藏夹"><span>删除收藏夹</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/folder/del</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>media_ids</td><td>nums</td><td>目标收藏夹mdid列表</td><td>必要</td><td>每个成员间用<code>,</code>分隔</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>成功为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>num</td><td>信息本体</td><td>成功为0</td></tr></tbody></table><p><strong>示例:</strong></p><p>删除id为<code>1182306172</code>的收藏夹:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/folder/del&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;media_ids=1182306172&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="管理收藏内容" tabindex="-1"><a class="header-anchor" href="#管理收藏内容"><span>管理收藏内容</span></a></h2><h3 id="批量复制内容" tabindex="-1"><a class="header-anchor" href="#批量复制内容"><span>批量复制内容</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/resource/copy</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>src_media_id</td><td>num</td><td>源收藏夹id</td><td>必要</td><td></td></tr><tr><td>tar_media_id</td><td>num</td><td>目标收藏夹id</td><td>必要</td><td></td></tr><tr><td>mid</td><td>num</td><td>当前用户mid</td><td>必要</td><td></td></tr><tr><td>resources</td><td>strs</td><td>目标内容id列表</td><td>必要</td><td>格式:{内容id}:{内容类型}<br>每个成员间用<code>,</code>分隔<br>类型:<br>2视频稿件<br>12音频<br>21视频合集<br>内容id<br>视频稿件视频稿件avid<br>音频音频auid<br>视频合集视频合集id</td></tr><tr><td>platform</td><td>str</td><td>平台标识</td><td>非必要</td><td>可为web</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>11010您访问的内容不存在</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td>成功为0</td></tr></tbody></table><p><strong>示例:</strong></p><p>将id为<code>1288061499</code>的收藏夹中视频稿件<code>av21822819</code> <code>av21918689</code> <code>av22288065</code>复制到id为<code>1178751999</code>的收藏夹中</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/resource/copy&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;src_media_id=1288061499&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;tar_media_id=1178751999&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;mid=233333&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;resources=21822819:2,21918689:2,22288065:2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=web&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="批量移动内容" tabindex="-1"><a class="header-anchor" href="#批量移动内容"><span>批量移动内容</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/resource/move</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>src_media_id</td><td>num</td><td>源收藏夹id</td><td>必要</td><td></td></tr><tr><td>tar_media_id</td><td>num</td><td>目标收藏夹id</td><td>必要</td><td></td></tr><tr><td>mid</td><td>num</td><td>当前用户mid</td><td>必要</td><td></td></tr><tr><td>resources</td><td>strs</td><td>目标内容id列表</td><td>必要</td><td>格式:{内容id}:{内容类型}<br>每个成员间用<code>,</code>分隔<br>类型:<br>2视频稿件<br>12音频<br>21视频合集<br>内容id<br>视频稿件视频稿件avid<br>音频音频auid<br>视频合集视频合集id</td></tr><tr><td>platform</td><td>str</td><td>平台标识</td><td>非必要</td><td>可为web</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>11010您访问的内容不存在</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td>成功为0</td></tr></tbody></table><p><strong>示例:</strong></p><p>将id为<code>1288061499</code>的收藏夹中视频稿件<code>av21822819</code> <code>av21918689</code> <code>av22288065</code>移动到id为<code>1178751999</code>的收藏夹中</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/resource/move&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;src_media_id=1288061499&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;tar_media_id=1178751999&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;mid=233333&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;resources=21822819:2,21918689:2,22288065:2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=web&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="批量删除内容" tabindex="-1"><a class="header-anchor" href="#批量删除内容"><span>批量删除内容</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/resource/batch-del</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>resources</td><td>目标内容id列表</td><td>必要</td><td>格式:{内容id}:{内容类型}<br>每个成员间用<code>,</code>分隔<br>类型:<br>2视频稿件<br>12音频<br>21视频合集<br>内容id<br>视频稿件视频稿件avid<br>音频音频auid<br>视频合集视频合集id</td><td></td></tr><tr><td>media_id</td><td>num</td><td>目标收藏夹id</td><td>必要</td><td></td></tr><tr><td>platform</td><td>str</td><td>平台标识</td><td>非必要</td><td>可为web</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>11010您访问的内容不存在</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td>成功为0</td></tr></tbody></table><p><strong>示例:</strong></p><p>将id为<code>1178751999</code>的收藏夹中视频稿件<code>av21822819</code> <code>av21918689</code> <code>av22288065</code>取消收藏</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/resource/batch-del&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;resources=21822819:2,21918689:2,22288065:2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;media_id=1178751999&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=web&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="清空所有失效内容" tabindex="-1"><a class="header-anchor" href="#清空所有失效内容"><span>清空所有失效内容</span></a></h3><blockquote><p>https://api.bilibili.com/x/v3/fav/resource/clean</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>media_id</td><td>num</td><td>目标收藏夹id</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td>成功为0</td></tr></tbody></table><p><strong>示例:</strong></p><p>清理id为<code>1161340172</code>的收藏夹</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v3/fav/resource/clean&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;media_id=1161340172&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,70))])}const v=p(i,[["render",D]]),b=JSON.parse('{"path":"/docs/fav/action.html","title":"收藏夹操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/fav/action.md"}');export{v as comp,b as data};

View File

@@ -0,0 +1,17 @@
import{_ as t,c as a,a as e,o as n}from"./app-Dgsdh8A6.js";const l={};function d(o,s){return n(),a("div",null,s[0]||(s[0]=[e(`<h1 id="表情操作" tabindex="-1"><a class="header-anchor" href="#表情操作"><span>表情操作</span></a></h1><h2 id="添加表情包" tabindex="-1"><a class="header-anchor" href="#添加表情包"><span>添加表情包</span></a></h2><blockquote><p>https://api.bilibili.com/x/emote/package/add</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p>只能添加有会员权限或已购买的表情包</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>package_id</td><td>num</td><td>表情包id</td><td>必要</td><td></td></tr><tr><td>business</td><td>str</td><td>使用场景</td><td>必要</td><td>reply评论区<br>dynamic动态</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-403访问权限不足</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>添加id为<code>25</code>的表情包,使用场景为评论区</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/emote/package/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;package_id=25&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;business=reply&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="移除表情包" tabindex="-1"><a class="header-anchor" href="#移除表情包"><span>移除表情包</span></a></h2><blockquote><p>https://api.bilibili.com/x/emote/package/remove</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>package_id</td><td>num</td><td>表情包id</td><td>必要</td><td></td></tr><tr><td>business</td><td>str</td><td>使用场景</td><td>必要</td><td>reply评论区<br>dynamic动态</td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>-403访问权限不足</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>移除id为<code>25</code>的表情包,使用场景为评论区</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/emote/package/remove&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;package_id=25&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;business=reply&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,28)]))}const p=t(l,[["render",d]]),i=JSON.parse('{"path":"/docs/emoji/action.html","title":"表情操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/emoji/action.md"}');export{p as comp,i as data};

View File

@@ -0,0 +1,91 @@
import{_ as o,c as p,a as d,b as t,d as n,e as a,w as e,r,o as i}from"./app-Dgsdh8A6.js";const c={};function D(u,s){const l=r("RouteLink");return i(),p("div",null,[s[48]||(s[48]=d('<h1 id="操作" tabindex="-1"><a class="header-anchor" href="#操作"><span>操作</span></a></h1><h2 id="提交答题" tabindex="-1"><a class="header-anchor" href="#提交答题"><span>提交答题</span></a></h2><h3 id="提交基础题" tabindex="-1"><a class="header-anchor" href="#提交基础题"><span>提交基础题</span></a></h3><blockquote><p>https://api.bilibili.com/x/answer/v4/base/check</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p>',7)),t("table",null,[s[15]||(s[15]=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1)),t("tbody",null,[t("tr",null,[s[3]||(s[3]=t("td",null,"question_id",-1)),s[4]||(s[4]=t("td",null,"num",-1)),s[5]||(s[5]=t("td",null,"题目id",-1)),s[6]||(s[6]=t("td",null,"必要",-1)),t("td",null,[s[1]||(s[1]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[0]||(s[0]=[n("拉取基础题api")])),_:1,__:[0]}),s[2]||(s[2]=n("获得"))])]),t("tr",null,[s[10]||(s[10]=t("td",null,"ans_hash",-1)),s[11]||(s[11]=t("td",null,"str",-1)),s[12]||(s[12]=t("td",null,"选项hash",-1)),s[13]||(s[13]=t("td",null,"必要",-1)),t("td",null,[s[8]||(s[8]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[7]||(s[7]=[n("拉取基础题api")])),_:1,__:[7]}),s[9]||(s[9]=n("获得"))])]),s[14]||(s[14]=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token位于cookie"),t("td",null,"Cookie方式必要"),t("td")],-1))])]),s[49]||(s[49]=d(`<p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>41014答题过快或错误太多<br>41012用户答题提交题目id不合法<br>41020用户基础题已通过<br>41023用户答题记录不存在</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>passed</td><td>bool</td><td>选项是否正确</td><td>true选项正确<br>false选项错误</td></tr></tbody></table><p><strong>示例:</strong></p><p>提交题目id为<code>104</code>的题选项hash为<code>cb4c8cc9424fc771f7c1598e74de498f</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/base/check&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;question_id=104&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;ans_hash=cb4c8cc9424fc771f7c1598e74de498f&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;passed&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="提交附加题" tabindex="-1"><a class="header-anchor" href="#提交附加题"><span>提交附加题</span></a></h3><blockquote><p>https://api.bilibili.com/x/answer/v4/base/check</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p>`,14)),t("table",null,[s[31]||(s[31]=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1)),t("tbody",null,[t("tr",null,[s[19]||(s[19]=t("td",null,"question_id",-1)),s[20]||(s[20]=t("td",null,"num",-1)),s[21]||(s[21]=t("td",null,"题目id",-1)),s[22]||(s[22]=t("td",null,"必要",-1)),t("td",null,[s[17]||(s[17]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[16]||(s[16]=[n("拉取基础题api")])),_:1,__:[16]}),s[18]||(s[18]=n("获得"))])]),t("tr",null,[s[26]||(s[26]=t("td",null,"ans_hash",-1)),s[27]||(s[27]=t("td",null,"str",-1)),s[28]||(s[28]=t("td",null,"选项hash",-1)),s[29]||(s[29]=t("td",null,"必要",-1)),t("td",null,[s[24]||(s[24]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[23]||(s[23]=[n("拉取基础题api")])),_:1,__:[23]}),s[25]||(s[25]=n("获得"))])]),s[30]||(s[30]=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token位于cookie"),t("td",null,"Cookie方式必要"),t("td")],-1))])]),s[50]||(s[50]=d(`<p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>41014答题过快或错误太多<br>41012用户答题提交题目id不合法<br>41023用户答题记录不存在</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>passed</td><td>bool</td><td>选项是否正确</td><td>true选项正确<br>false选项错误</td></tr></tbody></table><p><strong>示例:</strong></p><p>提交题目id为<code>104</code>的题选项hash为<code>cb4c8cc9424fc771f7c1598e74de498f</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/base/check&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;question_id=104&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;ans_hash=cb4c8cc9424fc771f7c1598e74de498f&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;passed&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="提交自选题" tabindex="-1"><a class="header-anchor" href="#提交自选题"><span>提交自选题</span></a></h3><blockquote><p>https://api.bilibili.com/x/answer/v4/pro/check</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p>`,14)),t("table",null,[s[47]||(s[47]=t("thead",null,[t("tr",null,[t("th",null,"参数名"),t("th",null,"类型"),t("th",null,"内容"),t("th",null,"必要性"),t("th",null,"备注")])],-1)),t("tbody",null,[t("tr",null,[s[35]||(s[35]=t("td",null,"question_id",-1)),s[36]||(s[36]=t("td",null,"num",-1)),s[37]||(s[37]=t("td",null,"题目id",-1)),s[38]||(s[38]=t("td",null,"必要",-1)),t("td",null,[s[33]||(s[33]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[32]||(s[32]=[n("拉取基础题api")])),_:1,__:[32]}),s[34]||(s[34]=n("获得"))])]),t("tr",null,[s[42]||(s[42]=t("td",null,"ans_hash",-1)),s[43]||(s[43]=t("td",null,"str",-1)),s[44]||(s[44]=t("td",null,"选项hash",-1)),s[45]||(s[45]=t("td",null,"必要",-1)),t("td",null,[s[40]||(s[40]=n("从")),a(l,{to:"/docs/newbie_exam/fetch.html#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98"},{default:e(()=>s[39]||(s[39]=[n("拉取基础题api")])),_:1,__:[39]}),s[41]||(s[41]=n("获得"))])]),s[46]||(s[46]=t("tr",null,[t("td",null,"csrf"),t("td",null,"str"),t("td",null,"CSRF Token位于cookie"),t("td",null,"Cookie方式必要"),t("td")],-1))])]),s[51]||(s[51]=d(`<p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>41014答题过快或错误太多<br>41012用户答题提交题目id不合法<br>41023用户答题记录不存在<br>41026获取用户DB题目信息异常</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>passed</td><td>bool</td><td>true</td><td>恒为<code>true</code></td></tr></tbody></table><p><strong>示例:</strong></p><p>提交题目id为<code>2935</code>的题选项hash为<code>ffd55cbe0624f466bee2ea3eb576a4d0</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/pro/check&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;question_id=2935&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;ans_hash=ffd55cbe0624f466bee2ea3eb576a4d0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;passed&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="获取验证码" tabindex="-1"><a class="header-anchor" href="#获取验证码"><span>获取验证码</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/captcha</p></blockquote><p><em>请求方式GET</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>41010用户答题非法访问<br>41014答题过快或错误太多<br>41020用户基础题已通过<br>41021用户基础题未通过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>str</td><td>验证码类型?</td><td>geetest极验</td></tr><tr><td>gt</td><td>str</td><td>极验id</td><td></td></tr><tr><td>challenge</td><td>str</td><td>极验key</td><td></td></tr><tr><td>token</td><td>str</td><td>(?)</td><td></td></tr><tr><td>url</td><td>str</td><td>(?)</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/captcha&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;geetest&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;gt&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;abc55d1fb914cb110cfb4c232a4b4c35&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;challenge&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;90a6e03e626e13ee186ddae0107c3ae2&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="提交验证码" tabindex="-1"><a class="header-anchor" href="#提交验证码"><span>提交验证码</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/captcha/check</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>注:</strong></p><p>旧版<code>edition=0</code>同时提交自选题分类以及验证码</p><p>新版<code>edition=2</code>仅仅提交验证码</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>types</td><td>nums</td><td>自选题分类(旧版)</td><td>非必要</td><td>新版不需要此字段</td></tr><tr><td>type</td><td>str</td><td>验证码类型</td><td>非必要</td><td></td></tr><tr><td>bilibili_token</td><td>str</td><td></td><td>非必要</td><td></td></tr><tr><td>bilibili_code</td><td>str</td><td></td><td>非必要</td><td></td></tr><tr><td>geetest_challenge</td><td>str</td><td>极验key</td><td>非必要</td><td></td></tr><tr><td>geetest_seccode</td><td>str</td><td>极验结果+|jordan</td><td>非必要</td><td></td></tr><tr><td>geetest_validate</td><td>str</td><td>极验结果</td><td>非必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token(位于cookie)</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-105验证码错误<br>-400请求错误<br>41010用户答题非法访问<br>41014答题过快或错误太多<br>41021用户基础题未通过<br>41031自选题未通过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/captcha/check&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;types=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=geetest&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bilibili_token=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;bilibili_code=&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;geetest_challenge=3f809a7a9c51edca751fd26c032c182d&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;geetest_seccode=513ec576a275a3eb250829202d4dce46|jordan&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;geetest_validate=513ec576a275a3eb250829202d4dce46&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="提交自选题分类" tabindex="-1"><a class="header-anchor" href="#提交自选题分类"><span>提交自选题分类</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/pro/type/check</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>types</td><td>nums</td><td>自选题分类(新版)</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token(位于cookie)</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>41010用户答题非法访问<br>41014答题过快或错误太多<br>41021用户基础题未通过<br>41031自选题未通过<br>41052用户题目类型不合法<br>41055基础附加题未通过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>选择<code>游戏</code> <code>影视</code> <code>科教/知识</code> <code>动画/动漫</code>分类</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/pro/type/check&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;types=1,2,3,4&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="提前交卷" tabindex="-1"><a class="header-anchor" href="#提前交卷"><span>提前交卷</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/submit</p></blockquote><p><em>请求方式POST</em></p><p>认证方式APP或CookieSESSDATA</p><p>当当前得分&gt;=60时可请求本接口提前完成答题</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>CSRF Token(位于cookie)</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误<br>41014答题过快或错误太多<br>41023用户答题记录不存在<br>41031自选题未通过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>hid</td><td>num</td><td>答题会话id</td><td></td></tr><tr><td>mid</td><td>num</td><td>答题用户mid</td><td></td></tr><tr><td>score</td><td>num</td><td>得分</td><td></td></tr><tr><td>status</td><td>num</td><td>0</td><td></td></tr><tr><td>number</td><td>num</td><td>0</td><td></td></tr><tr><td>result</td><td>str</td><td>succeed</td><td></td></tr><tr><td>stage</td><td>str</td><td>result</td><td></td></tr><tr><td>version</td><td>str</td><td>版本</td><td>目前为<code>v4</code></td></tr><tr><td>start_time</td><td>num</td><td>本次答题开始时间</td><td>时间戳</td></tr><tr><td>first_answer</td><td>num</td><td>0</td><td></td></tr><tr><td>progress</td><td>str</td><td></td><td></td></tr><tr><td>text</td><td>str</td><td></td><td></td></tr><tr><td>url</td><td>str</td><td></td><td></td></tr><tr><td>in_reg_audit</td><td>bool</td><td></td><td></td></tr><tr><td>edition</td><td>num</td><td>答题版本</td><td>0旧版40+10+50<br>2新版40+30+30</td></tr><tr><td>rewards</td><td>null</td><td></td><td></td></tr><tr><td>captcha</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/submit&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1623207905520705</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">293793435</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;score&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">63</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;result&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;succeed&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;stage&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;result&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;version&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;v4&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1636889218</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;first_answer&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;progress&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;text&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;in_reg_audit&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;edition&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rewards&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">null</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;captcha&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,64))])}const b=o(c,[["render",D]]),m=JSON.parse('{"path":"/docs/newbie_exam/action.html","title":"操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/newbie_exam/action.md"}');export{b as comp,m as data};

View File

@@ -0,0 +1,74 @@
import{_ as n,c as a,a as t,o as l}from"./app-Dgsdh8A6.js";const o={};function e(p,s){return l(),a("div",null,s[0]||(s[0]=[t(`<h1 id="相簿活动列表" tabindex="-1"><a class="header-anchor" href="#相簿活动列表"><span>相簿活动列表</span></a></h1><details><summary>功能已下线</summary><h2 id="获取相簿热门活动列表" tabindex="-1"><a class="header-anchor" href="#获取相簿热门活动列表"><span>获取相簿热门活动列表</span></a></h2><blockquote><p>https://api.vc.bilibili.com/photo_activity/v2/Activity/list</p></blockquote><p><em>请求方式GET</em></p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>活动类型</td><td>非必要</td><td>0全部<br>1展示类<br>2比赛类</td></tr><tr><td>biz</td><td>num</td><td>分区</td><td>非必要</td><td>0全部<br>1画友<br>2摄影<br>默认为0</td></tr><tr><td>page_num</td><td>num</td><td>页码</td><td>非必要</td><td>默认为4</td></tr><tr><td>page_size</td><td>num</td><td>每页项数</td><td>非必要</td><td>默认为0</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>1参数错误</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>默认为success</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为success</td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>total_count</td><td>str</td><td>总计活动数</td><td></td></tr><tr><td>items</td><td>array</td><td>活动列表</td><td></td></tr></tbody></table><p><code>data</code>中的<code>items</code>数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>obj</td><td>活动 1</td><td></td></tr><tr><td>n</td><td>obj</td><td>活动 (n+1)</td><td></td></tr><tr><td>……</td><td>obj</td><td>……</td><td>……</td></tr></tbody></table><p><code>data</code>中的<code>items</code>数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>cover</td><td>str</td><td>活动图片url</td><td></td></tr><tr><td>title</td><td>str</td><td>活动标题</td><td></td></tr><tr><td>link</td><td>str</td><td>活动页面url</td><td></td></tr><tr><td>type</td><td>num</td><td>活动类型</td><td>1展示类<br>2比赛类</td></tr><tr><td>biz</td><td>num</td><td>所属分区</td><td>1画友<br>2摄影</td></tr><tr><td>tag</td><td>str</td><td>活动关联的TAG</td><td></td></tr><tr><td>start_time</td><td>num</td><td>开始时间</td><td>时间戳</td></tr><tr><td>end_time</td><td>num</td><td>结束时间</td><td>时间戳</td></tr><tr><td>desc</td><td>str</td><td>备注</td><td></td></tr><tr><td>desc_type</td><td>num</td><td>活动状态</td><td>1已结束<br>2进行中</td></tr></tbody></table><p><strong>示例:</strong></p><p>获取<code>画友</code>分区全部类型的5条活动</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/photo_activity/v2/Activity/list&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;biz=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;page_num=0&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;page_size=5&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;total_count&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">21</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;items&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/vc/344d175cf88f217ce8bd0f004a2c5e770eff2e03.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;#月饼拟人#创作大赛!丰厚奖励等你来拿!&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/read/cv1102416&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;biz&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tag&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1535817600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1540915200</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;已结束&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/vc/63d48fbc37f0142a9c72e06ebc950d4089f881d6.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;「ISLAND」同人绘画大赛&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/activity-rkOlNomMQ.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;biz&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tag&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;ISLAND同人绘画&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1530720000</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1534435200</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;已结束&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/vc/08d20bc6c10e1e310946ebaaf56c2c90c921644d.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;我家大师兄脑子有坑同人绘画大赛&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/activity-S1lV0Ot6M.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;biz&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tag&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;兄坑同人绘画大赛&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1525449600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1528473600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;已结束&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/vc/4eb48398ec0824e96fc878235536f2e0b4a8aef5.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;国宝复“活”计划&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/activity-SJ4hL_UFz.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;biz&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tag&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;国宝复“活”计划&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1521388800</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1525017600</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;已结束&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;cover&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/vc/9068f91f62ea5a36cbafff263d7e47af99cc9836.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;画师专访——管郁生&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/interview-guanyusheng.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;biz&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tag&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1517414400</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;进行中&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;desc_type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details></details>`,2)]))}const r=n(o,[["render",e]]),i=JSON.parse('{"path":"/docs/album/activity_list.html","title":"相簿活动列表","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1745165052000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"ab2762aeaa0aad65603478ca704cd4cbc3b9c425","time":1745165052000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: mark all album doc as down"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/album/activity_list.md"}');export{r as comp,i as data};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 27 KiB

BIN
assets/akari-DnOfNqsJ.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

7095
assets/all.html-MgLtiraJ.js Normal file

File diff suppressed because one or more lines are too long

28
assets/app-Dgsdh8A6.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,53 @@
import{_ as p,c as i,a as e,b as n,d as l,e as a,w as o,r,o as d}from"./app-Dgsdh8A6.js";const u={};function D(c,s){const t=r("RouteLink");return d(),i("div",null,[s[32]||(s[32]=e('<h1 id="横幅轮播图" tabindex="-1"><a class="header-anchor" href="#横幅轮播图"><span>横幅轮播图</span></a></h1><h2 id="获取各分区的轮播图-web端" tabindex="-1"><a class="header-anchor" href="#获取各分区的轮播图-web端"><span>获取各分区的轮播图_web端</span></a></h2><blockquote><p>https://api.bilibili.com/x/web-show/region/banner</p></blockquote><p><em>请求方式: GET</em></p><p>需要请求头参数 User-Agent</p><p>鉴权方式Wbi 签名 (可选)</p><p><strong>URL参数:</strong></p>',7)),n("table",null,[s[18]||(s[18]=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"必要性"),n("th",null,"备注")])],-1)),n("tbody",null,[n("tr",null,[s[2]||(s[2]=n("td",null,"region_id",-1)),s[3]||(s[3]=n("td",null,"num",-1)),s[4]||(s[4]=n("td",null,"目标分区id",-1)),s[5]||(s[5]=n("td",null,"必要",-1)),n("td",null,[s[1]||(s[1]=l("参见")),a(t,{to:"/docs/video/video_zone_v2.html"},{default:o(()=>s[0]||(s[0]=[l("视频分区一览v2")])),_:1,__:[0]})])]),n("tr",null,[s[8]||(s[8]=n("td",null,"w_rid",-1)),s[9]||(s[9]=n("td",null,"str",-1)),s[10]||(s[10]=n("td",null,"Wbi 签名",-1)),s[11]||(s[11]=n("td",null,"非必要",-1)),n("td",null,[s[7]||(s[7]=l("详见 ")),a(t,{to:"/docs/misc/sign/wbi.html"},{default:o(()=>s[6]||(s[6]=[l("Wbi 签名")])),_:1,__:[6]})])]),n("tr",null,[s[14]||(s[14]=n("td",null,"wts",-1)),s[15]||(s[15]=n("td",null,"num",-1)),s[16]||(s[16]=n("td",null,"当前时间戳",-1)),s[17]||(s[17]=n("td",null,"非必要",-1)),n("td",null,[s[13]||(s[13]=l("详见 ")),a(t,{to:"/docs/misc/sign/wbi.html"},{default:o(()=>s[12]||(s[12]=[l("Wbi 签名")])),_:1,__:[12]})])])])]),s[33]||(s[33]=e("<p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: 成功</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为 0</td></tr><tr><td>ttl</td><td>str</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>region_banner_list</td><td>array</td><td>存储轮播图的对象</td><td></td></tr></tbody></table><p><code>data</code> 对象里的 <code>region_banner_list</code> 数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>obj</td><td>第一个轮播图对象</td><td></td></tr><tr><td>n</td><td>obj</td><td>第 (n+1) 轮播图对象</td><td></td></tr><tr><td>……</td><td>obj</td><td>……</td><td></td></tr></tbody></table><p><code>region_banner_list</code> 数组里的对象:</p>",8)),n("table",null,[s[28]||(s[28]=n("thead",null,[n("tr",null,[n("th",null,"字段"),n("th",null,"类型"),n("th",null,"内容"),n("th",null,"备注")])],-1)),n("tbody",null,[s[24]||(s[24]=n("tr",null,[n("td",null,"image"),n("td",null,"str"),n("td",null,"封面资源路径"),n("td")],-1)),s[25]||(s[25]=n("tr",null,[n("td",null,"title"),n("td",null,"str"),n("td",null,"封面标题"),n("td")],-1)),s[26]||(s[26]=n("tr",null,[n("td",null,"sub_title"),n("td",null,"str"),n("td",null,"封面子标题"),n("td",null,"空")],-1)),s[27]||(s[27]=n("tr",null,[n("td",null,"url"),n("td",null,"str"),n("td",null,"点击封面后指向的链接"),n("td",null,"可能为视频地址,也有可能是活动地址")],-1)),n("tr",null,[s[21]||(s[21]=n("td",null,"rid",-1)),s[22]||(s[22]=n("td",null,"num",-1)),n("td",null,[s[20]||(s[20]=l("分区参见")),a(t,{to:"/docs/video/video_zone_v2.html"},{default:o(()=>s[19]||(s[19]=[l("视频分区一览v2")])),_:1,__:[19]})]),s[23]||(s[23]=n("td",null,null,-1))])])]),s[34]||(s[34]=e(`<p><strong>示例:</strong></p><p>获取 <code>音乐区</code> 时刻为 <code>Wed, 06 Aug 2025 01:41:35 GMT</code> 的 B 站轮播图 <a href="https://www.bilibili.com/c/music/" target="_blank" rel="noopener noreferrer">音乐区地址</a></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &quot;https://api.bilibili.com/x/web-show/region/banner&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &quot;region_id=1003&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -H</span><span style="color:#CE9178;"> &quot;User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko Chrome/58.0.3029.110 Safari/537.36&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;region_banner_list&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/app/61e4bf3bba74f7d975342ae9d6ec7b0a2ea7c83f.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;舞力全开派对首测共创活动上线啦!&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/era/wzjckpevcdCgf4Rv.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1003</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/app/a7d63dc78d10f769bd80c6c27ba6cc337b00d9d9.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;玛莎拉达带着他的一系列爆款术曲来了!&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/video/BV1Tbtjz1Ehv&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1003</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/app/01beb60c493f98eea6844cc2efcbde7315ce6224.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;陶喆Alin合作曲MV首播&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/video/BV1w1tnznEMw/?spm_id_from=333.337.search-card.all.click&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1003</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/app/64060527172b03292b860e43532ff56faabdbe2d.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;四种语言版《AMANI》愿世界和平&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/video/BV1WTgVzHE2S/&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1003</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/app/cbc4469b10c041702c49e847552301afeea323cd.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;孙亦航来B站啦&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/video/BV1RHtFzLEUA&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1003</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i0.hdslb.com/bfs/app/134cede692acbbe3080dc2a2ecc920db1f4f7498.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;潘玮柏狂爱《Yes I Do》&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/video/BV1RAtcz7EJX/?spm_id_from=333.337.search-card.all.click&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;rid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1003</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,4)),n("ul",null,[n("li",null,[s[30]||(s[30]=l("Tip: 可以使用 ")),a(t,{to:"/docs/misc/picture.html"},{default:o(()=>s[29]||(s[29]=[l("图片格式化")])),_:1,__:[29]}),s[31]||(s[31]=l("中 获取主色调的方式获取轮播图封面的主色调"))])])])}const y=p(u,[["render",D]]),v=JSON.parse('{"path":"/docs/web_widget/banner.html","title":"横幅轮播图","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1754482183000,"contributors":[{"name":"TeAnli","username":"TeAnli","email":"159260777+TeAnli@users.noreply.github.com","commits":1,"url":"https://github.com/TeAnli"}],"changelog":[{"hash":"268b4cfe10fa51a9857a6d2f6cc772a6927306e3","time":1754482183000,"email":"159260777+TeAnli@users.noreply.github.com","author":"TeAnli","message":"feat: 添加各分区轮播图 (#1372)"}]},"filePathRelative":"docs/web_widget/banner.md"}');export{y as comp,v as data};

View File

@@ -0,0 +1,38 @@
import{_ as t,c as n,a,o as l}from"./app-Dgsdh8A6.js";const e={};function o(p,s){return l(),n("div",null,s[0]||(s[0]=[a(`<h1 id="首页公告栏" tabindex="-1"><a class="header-anchor" href="#首页公告栏"><span>首页公告栏</span></a></h1><h2 id="动态首页公告栏-新版" tabindex="-1"><a class="header-anchor" href="#动态首页公告栏-新版"><span>动态首页公告栏 (新版)</span></a></h2><blockquote><p>https://api.bilibili.com/x/dynamic/feed/dyn/banner</p></blockquote><p><em>请求方法: GET</em></p><p><strong>URL 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>platform</td><td>number</td><td>平台?</td><td>不必要</td><td>默认为 <code>1</code>, 留空无</td></tr><tr><td>position</td><td>string</td><td>位置?</td><td>不必要</td><td>默认为 <code>web动态</code>, 留空无</td></tr><tr><td>web_location</td><td>string</td><td><code>333.1365</code></td><td>不必要</td><td></td></tr></tbody></table><p><strong>JSON 回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>number</td><td>返回值</td><td>0: 成功</td></tr><tr><td>data</td><td>object</td><td>数据本体</td><td></td></tr><tr><td>message</td><td>string</td><td>错误信息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>number</td><td><code>1</code></td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>banners</td><td>object[]</td><td>横幅们</td><td>套了个娃</td></tr></tbody></table><p><code>data.banners[]</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>banner_id</td><td>number</td><td>横幅 id</td><td>旧版接口无</td></tr><tr><td>end_time</td><td>number</td><td>结束时间</td><td>UNIX 秒级时间戳</td></tr><tr><td>img_url</td><td>string</td><td>图片 URL</td><td></td></tr><tr><td>link</td><td>string</td><td>跳转链接</td><td></td></tr><tr><td>platform</td><td>number</td><td>平台</td><td>与请求参数对应</td></tr><tr><td>position</td><td>string</td><td>位置</td><td>与请求参数对应</td></tr><tr><td>start_time</td><td>number</td><td>开始时间</td><td>UNIX 秒级时间戳</td></tr><tr><td>title</td><td>string</td><td>标题</td><td></td></tr><tr><td>weight</td><td>number</td><td>权重</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/dynamic/feed/dyn/banner?platform=1&amp;position=web动态&amp;web_location=333.1365&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;banners&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;banner_id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2056204800</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/vc/9c699f2acbcad00197e92c401b835d2c6aba8a55.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/activity-5zJxM3spoS.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;platform&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;position&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;web动态&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1582862523</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;点击进入&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;weight&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="动态首页公告栏-旧版" tabindex="-1"><a class="header-anchor" href="#动态首页公告栏-旧版"><span>动态首页公告栏 (旧版)</span></a></h2><blockquote><p>https://api.vc.bilibili.com/banner_svr/v1/banner_svr/show</p></blockquote><p><em>请求方法: GET</em></p><p><strong>URL 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>platform</td><td>number</td><td>平台?</td><td>不必要</td><td>默认为 <code>1</code></td></tr><tr><td>position</td><td>string</td><td>位置?</td><td>不必要</td><td>默认为 <code>web动态</code></td></tr></tbody></table><p><strong>JSON 回复:</strong></p><p>与 <a href="#%E5%8A%A8%E6%80%81%E9%A6%96%E9%A1%B5%E5%85%AC%E5%91%8A%E6%A0%8F-%E6%96%B0%E7%89%88">动态首页公告栏 (新版)</a> 相同, 除了少了个 <code>data.banners[].banner_id</code></p><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.vc.bilibili.com/banner_svr/v1/banner_svr/show&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;banners&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img_url&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/vc/9c699f2acbcad00197e92c401b835d2c6aba8a55.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;点击进入&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;link&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/blackboard/activity-5zJxM3spoS.html&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;platform&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;weight&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;position&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;web动态&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;start_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1582862523</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;end_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2056204800</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,26)]))}const r=t(e,[["render",o]]),i=JSON.parse('{"path":"/docs/dynamic/banner.html","title":"首页公告栏","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1746060344000,"contributors":[{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":2,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"8c6bb6be92e88f285b73f0d0b3f4f5831196c062","time":1746060344000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: 动态首页公告栏 (旧版)"},{"hash":"f9d238b0be29ff95f7584e58967afa007f8d6d6f","time":1746059860000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: 动态首页公告栏 (新版)"}]},"filePathRelative":"docs/dynamic/banner.md"}');export{r as comp,i as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
import{_ as n,c as a,a as t,o as l}from"./app-Dgsdh8A6.js";const e={};function o(p,s){return l(),a("div",null,s[0]||(s[0]=[t(`<h1 id="批量查询" tabindex="-1"><a class="header-anchor" href="#批量查询"><span>批量查询</span></a></h1><h2 id="用户名查-mid" tabindex="-1"><a class="header-anchor" href="#用户名查-mid"><span>用户名查 mid</span></a></h2><h3 id="动态" tabindex="-1"><a class="header-anchor" href="#动态"><span>动态</span></a></h3><blockquote><p>https://api.bilibili.com/x/polymer/web-dynamic/v1/name-to-uid</p></blockquote><p><em>请求方法: GET</em></p><p>认证方式: Cookie (SESSDATA)</p><p><strong>URL 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>names</td><td>string</td><td>用户名</td><td>必要</td><td>多个用户名以 <code>,</code> 分隔</td></tr></tbody></table><p><strong>JSON 回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>number</td><td>返回值</td><td>0: 成功<br>-101: 账号未登录<br>-400: 请求错误</td></tr><tr><td>data</td><td>object</td><td>数据本体</td><td></td></tr><tr><td>message</td><td>string</td><td>错误信息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>number</td><td><code>1</code></td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>uid_list</td><td>object[]</td><td>UID 列表</td><td>套了个娃</td></tr></tbody></table><p><code>data.uid_list[]</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>name</td><td>string</td><td>用户名</td><td></td></tr><tr><td>uid</td><td>string</td><td>mid (UID)</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/polymer/web-dynamic/v1/name-to-uid&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--url-query </span><span style="color:#CE9178;">&#39;names=社会易姐qwq,session小胡,陈睿,洛天依&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uid_list&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;社会易姐QwQ&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;293793435&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;陈睿&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;208259&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;Session小胡&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;645769214&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;洛天依&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;36081646&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,18)]))}const i=n(e,[["render",o]]),r=JSON.parse('{"path":"/docs/user/batch.html","title":"批量查询","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1752997711000,"contributors":[{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"69afaf047d317824f00b99aa770e49daada79851","time":1752997711000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat: add username to mid"}]},"filePathRelative":"docs/user/batch.md"}');export{i as comp,r as data};

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1 @@
const t="/bilibili-API-collect/assets/battery-100-CiBN5pdd.png";export{t as _};

View File

@@ -0,0 +1,202 @@
import{_ as t,c,a as o,b as s,d as a,e,w as p,r,o as i}from"./app-Dgsdh8A6.js";const D={};function y(d,n){const l=r("RouteLink");return i(),c("div",null,[n[21]||(n[21]=o(`<h1 id="biliticket" tabindex="-1"><a class="header-anchor" href="#biliticket"><span>BiliTicket</span></a></h1><h2 id="简述" tabindex="-1"><a class="header-anchor" href="#简述"><span>简述</span></a></h2><p><code>bili_ticket</code> 位于请求头 Cookie 中, 非必需, 但存在可降低风控概率</p><p>由 <a href="https://github.com/aynuarance" target="_blank" rel="noopener noreferrer">@aynuarance</a> 于 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/903" target="_blank" rel="noopener noreferrer">#903</a> 提供的思路,根据时间戳使用 <code>hmac_sha256</code> 算法计算 <code>hexsign</code>。</p><p>是 <a href="https://jwt.io/" target="_blank" rel="noopener noreferrer">JWT 令牌</a>,有效时长为 259260 秒,即 3 天。 例如 <code>eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDI3NDI3NDYsImlhdCI6MTcwMjQ4MzQ4NiwicGx0IjotMX0.xQgtTAc41NA1gzvd9yKUPgucUy_DKcQj6OG1vj8V7ZA</code></p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;alg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;HS256&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;kid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;s03&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;typ&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;JWT&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="算法" tabindex="-1"><a class="header-anchor" href="#算法"><span>算法</span></a></h2><ol><li>获取 UNIX 秒级时间戳存入变量如 <code>timestamp</code></li><li>计算变量 <code>hexsign</code> 值,使用 <code>hmac_sha256</code> 算法,密钥为 <code>XgwSnGZ1p</code>,消息为字符串 <code>&quot;ts&quot;</code> 与变量 <code>timestamp</code> 值拼接</li><li>构造请求参数,<code>key_id</code> 为 <code>ec02</code><code>hexsign</code> 为变量 <code>hexsign</code> 值,<code>context[ts]</code> 为变量 <code>timestamp</code> 值,<code>csrf</code> 为 cookie 中的 <code>bili_jct</code> 值也可为空</li><li>发送 <code>POST</code> 请求,获取 <code>data</code> 字段中的 <code>ticket</code> 字段的值即为所求</li></ol><h2 id="接口" tabindex="-1"><a class="header-anchor" href="#接口"><span>接口</span></a></h2><blockquote><p>https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket</p></blockquote><p><em>请求方式: POST</em></p><p>鉴权方式: 请求头 <code>Referer</code> 为空或 <code>.bilibili.com</code> 子域下任意页</p><p><strong>URL参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>key_id</td><td>str</td><td>ec02</td><td>必要</td><td></td></tr><tr><td>hexsign</td><td>str</td><td>由 <code>hmac_sha256</code> 算法计算的 <code>hexsign</code> 值</td><td>必要</td><td></td></tr><tr><td>context[ts]</td><td>num</td><td>UNIX 秒级时间戳</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>cookie 中的 <code>bili_jct</code> 值</td><td>非必要</td><td></td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: 成功<br>400: 参数错误</td></tr><tr><td>message</td><td>str</td><td>返回消息</td><td>OK: 成功</td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p>`,18)),s("table",null,[n[9]||(n[9]=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1)),s("tbody",null,[n[5]||(n[5]=s("tr",null,[s("td",null,"ticket"),s("td",null,"str"),s("td",null,"bili_ticket"),s("td")],-1)),n[6]||(n[6]=s("tr",null,[s("td",null,"created_at"),s("td",null,"num"),s("td",null,"创建时间"),s("td",null,"UNIX 秒级时间戳")],-1)),n[7]||(n[7]=s("tr",null,[s("td",null,"ttl"),s("td",null,"num"),s("td",null,"有效时长"),s("td",null,"259200 秒 (3 天)")],-1)),n[8]||(n[8]=s("tr",null,[s("td",null,"context"),s("td",null,"obj"),s("td",null,"空"),s("td")],-1)),s("tr",null,[n[2]||(n[2]=s("td",null,"nav",-1)),n[3]||(n[3]=s("td",null,"obj",-1)),n[4]||(n[4]=s("td",null,"wbi_img 相关",-1)),s("td",null,[n[1]||(n[1]=a("参见 ")),e(l,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>n[0]||(n[0]=[a("WBI 签名")])),_:1,__:[0]})])])])]),n[22]||(n[22]=s("p",null,[s("code",null,"nav"),a(" 对象:")],-1)),s("table",null,[n[20]||(n[20]=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1)),s("tbody",null,[s("tr",null,[n[12]||(n[12]=s("td",null,"img",-1)),n[13]||(n[13]=s("td",null,"str",-1)),n[14]||(n[14]=s("td",null,"img_key 值",-1)),s("td",null,[n[11]||(n[11]=a("参见 ")),e(l,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>n[10]||(n[10]=[a("WBI 签名")])),_:1,__:[10]})])]),s("tr",null,[n[17]||(n[17]=s("td",null,"sub",-1)),n[18]||(n[18]=s("td",null,"str",-1)),n[19]||(n[19]=s("td",null,"sub_key 值",-1)),s("td",null,[n[16]||(n[16]=a("参见 ")),e(l,{to:"/docs/misc/sign/wbi.html"},{default:p(()=>n[15]||(n[15]=[a("WBI 签名")])),_:1,__:[15]})])])])]),n[23]||(n[23]=o(`<p><strong>示例:</strong></p><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;OK&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ticket&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjM2OTMwODAsImlhdCI6MTcyMzQzMzgyMCwicGx0IjotMX0.efOwv7i4m0ykABrXEDHGAechU2AByMcP_-3EYpQrNKs&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;created_at&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1723433820</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">259200</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;context&quot;</span><span style="color:#D4D4D4;">: {},</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;nav&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;img&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;sub&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="demo" tabindex="-1"><a class="header-anchor" href="#demo"><span>Demo</span></a></h2><p>此处提供 <a href="#python">Python</a>, <a href="#java">Java</a>, <a href="#javascript-nodejs">JavaScript (Node.js)</a> 的示例代码</p><h3 id="python" tabindex="-1"><a class="header-anchor" href="#python"><span>Python</span></a></h3><p>需要 <code>requests</code> 依赖</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> hmac</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> hashlib</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> requests</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> time</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">def</span><span style="color:#DCDCAA;"> hmac_sha256</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">message</span><span style="color:#D4D4D4;">):</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;&quot;&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> 使用HMAC-SHA256算法对给定的消息进行加密</span></span>
<span class="line"><span style="color:#CE9178;"> :param key: 密钥</span></span>
<span class="line"><span style="color:#CE9178;"> :param message: 要加密的消息</span></span>
<span class="line"><span style="color:#CE9178;"> :return: 加密后的哈希值</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;&quot;&quot;</span></span>
<span class="line"><span style="color:#6A9955;"> # 将密钥和消息转换为字节串</span></span>
<span class="line"><span style="color:#D4D4D4;"> key = key.encode(</span><span style="color:#CE9178;">&#39;utf-8&#39;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> message = message.encode(</span><span style="color:#CE9178;">&#39;utf-8&#39;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> # 创建HMAC对象使用SHA256哈希算法</span></span>
<span class="line"><span style="color:#D4D4D4;"> hmac_obj = hmac.new(key, message, hashlib.sha256)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> # 计算哈希值</span></span>
<span class="line"><span style="color:#D4D4D4;"> hash_value = hmac_obj.digest()</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> # 将哈希值转换为十六进制字符串</span></span>
<span class="line"><span style="color:#D4D4D4;"> hash_hex = hash_value.hex()</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> hash_hex</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;">if</span><span style="color:#9CDCFE;"> __name__</span><span style="color:#D4D4D4;"> == </span><span style="color:#CE9178;">&#39;__main__&#39;</span><span style="color:#D4D4D4;">:</span></span>
<span class="line"><span style="color:#D4D4D4;"> o = hmac_sha256(</span><span style="color:#CE9178;">&quot;XgwSnGZ1p&quot;</span><span style="color:#D4D4D4;">,</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">&quot;ts</span><span style="color:#569CD6;">{</span><span style="color:#4EC9B0;">int</span><span style="color:#D4D4D4;">(time.time())</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> url = </span><span style="color:#CE9178;">&quot;https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> params = {</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;key_id&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;ec02&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;hexsign&quot;</span><span style="color:#D4D4D4;">:o,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;context[ts]&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">&quot;</span><span style="color:#569CD6;">{</span><span style="color:#4EC9B0;">int</span><span style="color:#D4D4D4;">(time.time())</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;csrf&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&#39;&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;"> headers = {</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;user-agent&#39;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> resp = requests.post(url, </span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">=params,</span><span style="color:#9CDCFE;">headers</span><span style="color:#D4D4D4;">=headers).json()</span></span>
<span class="line"><span style="color:#DCDCAA;"> print</span><span style="color:#D4D4D4;">(resp)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="java" tabindex="-1"><a class="header-anchor" href="#java"><span>Java</span></a></h3><p>无需第三方依赖</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-java"><span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.io.ByteArrayOutputStream;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.io.InputStream;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.net.HttpURLConnection;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.net.URI;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.nio.charset.StandardCharsets;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.Mac;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.spec.SecretKeySpec;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> BiliTicketDemo</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> /**</span></span>
<span class="line"><span style="color:#6A9955;"> * Convert a byte array to a hex string.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#9CDCFE;"> bytes</span><span style="color:#6A9955;"> The byte array to convert.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@return</span><span style="color:#6A9955;"> The hex string representation of the given byte array.</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> String</span><span style="color:#DCDCAA;"> bytesToHex</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">bytes</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#4EC9B0;"> StringBuilder</span><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> StringBuilder</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#C586C0;"> for</span><span style="color:#D4D4D4;"> (</span><span style="color:#4EC9B0;">byte</span><span style="color:#9CDCFE;"> b</span><span style="color:#C586C0;"> :</span><span style="color:#D4D4D4;"> bytes) {</span></span>
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> hex</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Integer</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toHexString</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">0xff</span><span style="color:#D4D4D4;"> &amp; b);</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">hex</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">length</span><span style="color:#D4D4D4;">() == </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;0&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(hex);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> sb</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> /**</span></span>
<span class="line"><span style="color:#6A9955;"> * Generate a HMAC-SHA256 hash of the given message string using the given key</span></span>
<span class="line"><span style="color:#6A9955;"> * string.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#9CDCFE;"> key</span><span style="color:#6A9955;"> The key string to use for the HMAC-SHA256 hash.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#9CDCFE;"> message</span><span style="color:#6A9955;"> The message string to hash.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@throws</span><span style="color:#4EC9B0;"> Exception</span><span style="color:#6A9955;"> If an error occurs during the HMAC-SHA256 hash generation.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@return</span><span style="color:#6A9955;"> The HMAC-SHA256 hash of the given message string using the given key</span></span>
<span class="line"><span style="color:#6A9955;"> * string.</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> String</span><span style="color:#DCDCAA;"> hmacSha256</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#9CDCFE;"> key</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">String</span><span style="color:#9CDCFE;"> message</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">throws</span><span style="color:#4EC9B0;"> Exception</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#4EC9B0;"> Mac</span><span style="color:#9CDCFE;"> mac</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Mac</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;HmacSHA256&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#4EC9B0;"> SecretKeySpec</span><span style="color:#9CDCFE;"> secretKeySpec</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> SecretKeySpec</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getBytes</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">StandardCharsets</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UTF_8</span><span style="color:#D4D4D4;">), </span><span style="color:#CE9178;">&quot;HmacSHA256&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> mac</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">init</span><span style="color:#D4D4D4;">(secretKeySpec);</span></span>
<span class="line"><span style="color:#4EC9B0;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">hash</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">mac</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">doFinal</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">message</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getBytes</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">StandardCharsets</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UTF_8</span><span style="color:#D4D4D4;">));</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#DCDCAA;"> bytesToHex</span><span style="color:#D4D4D4;">(hash);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> /**</span></span>
<span class="line"><span style="color:#6A9955;"> * Get a Bilibili web ticket for the given CSRF token.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#9CDCFE;"> csrf</span><span style="color:#6A9955;"> The CSRF token to use for the web ticket, can be {@code null} or</span></span>
<span class="line"><span style="color:#6A9955;"> * empty.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@return</span><span style="color:#6A9955;"> The Bilibili web ticket raw response for the given CSRF token.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@throws</span><span style="color:#4EC9B0;"> Exception</span><span style="color:#6A9955;"> If an error occurs during the web ticket generation.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@see</span><span style="color:#6A9955;"> https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/misc/sign/bili_ticket.md</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> String</span><span style="color:#DCDCAA;"> getBiliTicket</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#9CDCFE;"> csrf</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">throws</span><span style="color:#4EC9B0;"> Exception</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#6A9955;"> // params</span></span>
<span class="line"><span style="color:#4EC9B0;"> long</span><span style="color:#9CDCFE;"> ts</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">System</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">currentTimeMillis</span><span style="color:#D4D4D4;">() / </span><span style="color:#B5CEA8;">1000</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> hexSign</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">hmacSha256</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;XgwSnGZ1p&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;ts&quot;</span><span style="color:#D4D4D4;"> + ts);</span></span>
<span class="line"><span style="color:#4EC9B0;"> StringBuilder</span><span style="color:#9CDCFE;"> url</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> StringBuilder</span><span style="color:#D4D4D4;">(</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> url</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;?&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> url</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;key_id=ec02&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;&amp;&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> url</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;hexsign=&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(hexSign).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;&amp;&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> url</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;context[ts]=&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(ts).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;&amp;&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> url</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;csrf=&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">append</span><span style="color:#D4D4D4;">(csrf == </span><span style="color:#569CD6;">null</span><span style="color:#C586C0;"> ?</span><span style="color:#CE9178;"> &quot;&quot;</span><span style="color:#C586C0;"> :</span><span style="color:#D4D4D4;"> csrf);</span></span>
<span class="line"><span style="color:#6A9955;"> // request</span></span>
<span class="line"><span style="color:#4EC9B0;"> HttpURLConnection</span><span style="color:#9CDCFE;"> conn</span><span style="color:#D4D4D4;"> = (HttpURLConnection) </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> URI</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">url</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">()).</span><span style="color:#DCDCAA;">toURL</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">openConnection</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#9CDCFE;"> conn</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">setRequestMethod</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;POST&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> conn</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">addRequestProperty</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;User-Agent&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#4EC9B0;"> InputStream</span><span style="color:#9CDCFE;"> in</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">conn</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInputStream</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#4EC9B0;"> ByteArrayOutputStream</span><span style="color:#9CDCFE;"> out</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> ByteArrayOutputStream</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#4EC9B0;"> int</span><span style="color:#9CDCFE;"> b</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#C586C0;"> while</span><span style="color:#D4D4D4;"> ((b = </span><span style="color:#9CDCFE;">in</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">read</span><span style="color:#D4D4D4;">()) != -</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> out</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">write</span><span style="color:#D4D4D4;">(b);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#C586C0;"> new</span><span style="color:#DCDCAA;"> String</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">out</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toByteArray</span><span style="color:#D4D4D4;">(), </span><span style="color:#9CDCFE;">StandardCharsets</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">UTF_8</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> /**</span></span>
<span class="line"><span style="color:#6A9955;"> * Main method to test the BiliTicketDemo class.</span></span>
<span class="line"><span style="color:#6A9955;"> * </span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#9CDCFE;"> args</span><span style="color:#6A9955;"> The command line arguments (not used).</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> void</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#C586C0;"> try</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> System</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">out</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">println</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">getBiliTicket</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)); </span><span style="color:#6A9955;">// use empty CSRF here</span></span>
<span class="line"><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">catch</span><span style="color:#D4D4D4;"> (</span><span style="color:#4EC9B0;">Exception</span><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">printStackTrace</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="javascript-node-js" tabindex="-1"><a class="header-anchor" href="#javascript-node-js"><span>JavaScript (Node.js)</span></a></h3><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-javascript"><span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> crypto</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">require</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;crypto&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/**</span></span>
<span class="line"><span style="color:#6A9955;"> * Generate HMAC-SHA256 signature</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#4EC9B0;"> {string}</span><span style="color:#9CDCFE;"> key</span><span style="color:#6A9955;"> The key string to use for the HMAC-SHA256 hash</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#4EC9B0;"> {string}</span><span style="color:#9CDCFE;"> message</span><span style="color:#6A9955;"> The message string to hash</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@returns</span><span style="color:#4EC9B0;"> {string}</span><span style="color:#6A9955;"> The HMAC-SHA256 signature as a hex string</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;">function</span><span style="color:#DCDCAA;"> hmacSha256</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">message</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> hmac</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">crypto</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">createHmac</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;sha256&#39;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> hmac</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">update</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">message</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> hmac</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">digest</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;hex&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">/**</span></span>
<span class="line"><span style="color:#6A9955;"> * Get Bilibili web ticket</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@param</span><span style="color:#4EC9B0;"> {string}</span><span style="color:#9CDCFE;"> csrf</span><span style="color:#6A9955;"> CSRF token, can be empty or null</span></span>
<span class="line"><span style="color:#6A9955;"> * </span><span style="color:#569CD6;">@returns</span><span style="color:#4EC9B0;"> {Promise&lt;any&gt;}</span><span style="color:#6A9955;"> Promise of the ticket response in JSON format</span></span>
<span class="line"><span style="color:#6A9955;"> */</span></span>
<span class="line"><span style="color:#569CD6;">async</span><span style="color:#569CD6;"> function</span><span style="color:#DCDCAA;"> getBiliTicket</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">csrf</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> ts</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Math</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">floor</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Date</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">now</span><span style="color:#D4D4D4;">() / </span><span style="color:#B5CEA8;">1000</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> hexSign</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">hmacSha256</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;XgwSnGZ1p&#39;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">\`ts</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">ts</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> url</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">&#39;https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket&#39;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> params</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> URLSearchParams</span><span style="color:#D4D4D4;">({</span></span>
<span class="line"><span style="color:#9CDCFE;"> key_id:</span><span style="color:#CE9178;"> &#39;ec02&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> hexsign:</span><span style="color:#9CDCFE;"> hexSign</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;context[ts]&#39;</span><span style="color:#9CDCFE;">:</span><span style="color:#9CDCFE;"> ts</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> csrf:</span><span style="color:#9CDCFE;"> csrf</span><span style="color:#D4D4D4;"> || </span><span style="color:#CE9178;">&#39;&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;"> });</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> response</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">await</span><span style="color:#DCDCAA;"> fetch</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">\`</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">url</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">?</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">params</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">()</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">, {</span></span>
<span class="line"><span style="color:#9CDCFE;"> method:</span><span style="color:#CE9178;"> &#39;POST&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> headers:</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;User-Agent&#39;</span><span style="color:#9CDCFE;">:</span><span style="color:#CE9178;"> &#39;Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> });</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> (!</span><span style="color:#9CDCFE;">response</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ok</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#C586C0;"> throw</span><span style="color:#569CD6;"> new</span><span style="color:#DCDCAA;"> Error</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">\`HTTP error! status: </span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">response</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">status</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> response</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">json</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">async</span><span style="color:#D4D4D4;"> () </span><span style="color:#569CD6;">=&gt;</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#C586C0;"> try</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> ticketResponse</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">await</span><span style="color:#DCDCAA;"> getBiliTicket</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;&#39;</span><span style="color:#D4D4D4;">); </span><span style="color:#6A9955;">// use empty CSRF here</span></span>
<span class="line"><span style="color:#9CDCFE;"> console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ticketResponse</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">catch</span><span style="color:#D4D4D4;"> (</span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">error</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;Failed to get BiliTicket:&#39;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">e</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">})();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,12))])}const u=t(D,[["render",y]]),v=JSON.parse('{"path":"/docs/misc/sign/bili_ticket.html","title":"BiliTicket","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1738952932000,"contributors":[{"name":"z0z0r4","username":"z0z0r4","email":"z0z0r4@outlook.com","commits":1,"url":"https://github.com/z0z0r4"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":3,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"7282aa2e358977efb84063a3ef67ccb6ed3d705f","time":1738952932000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"fix(bili_ticket.md): referer desc &#x26; nodejs code"},{"hash":"60a0c5d1a2f44fe61335da04571305fa7727a968","time":1724238159000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: 各种接口补充与错误修正 (#1066)"},{"hash":"18c1efbc102ae6b44c8f5314c90e5e64f0d926cd","time":1721909032000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: bili_ticket 算法 Java 实现 及 信息补充 及 错误修正 (#1061)"},{"hash":"180b8ce908d1abe02816c0ea89ddd1cfe6b3d7e6","time":1704853641000,"email":"z0z0r4@outlook.com","author":"z0z0r4","message":"feat: bili_ticket (#932)"}]},"filePathRelative":"docs/misc/sign/bili_ticket.md"}');export{u as comp,v as data};

View File

@@ -0,0 +1,25 @@
import{_ as e,c as a,a as n,o as t}from"./app-Dgsdh8A6.js";const l={};function o(i,s){return t(),a("div",null,s[0]||(s[0]=[n(`<h1 id="获取-buvid3-buvid4-b-nut" tabindex="-1"><a class="header-anchor" href="#获取-buvid3-buvid4-b-nut"><span>获取 buvid3 / buvid4 / b_nut</span></a></h1><h2 id="仅获取-buvid3" tabindex="-1"><a class="header-anchor" href="#仅获取-buvid3"><span>仅获取 buvid3</span></a></h2><blockquote><p>https://api.bilibili.com/x/web-frontend/getbuvid</p></blockquote><p><em>请求方式: GET</em></p><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>buvid</td><td>str</td><td>buvid3</td><td>需手动存放至 cookie 中</td></tr></tbody></table><p><strong>示例:</strong></p><p>注: 不要复制</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-frontend/getbuvid&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;buvid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;54E5EFC1-3C8F-F690-2261-439E4F6A20A979439infoc&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="接口获取-buvid3-buvid4" tabindex="-1"><a class="header-anchor" href="#接口获取-buvid3-buvid4"><span>接口获取 buvid3 / buvid4</span></a></h2><blockquote><p>https://api.bilibili.com/x/frontend/finger/spi</p></blockquote><p><em>请求方式: GET</em></p><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>ok: 成功</td></tr><tr><td>data</td><td>obj</td><td>数据本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>b_3</td><td>str</td><td>buvid3</td><td>需手动存放至 cookie 中</td></tr><tr><td>b_4</td><td>str</td><td>buvid4</td><td>同上</td></tr></tbody></table><p><strong>示例:</strong></p><p>注: 建议自行生成, 不要复制本处示例的 buvid3 / buvid4.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/frontend/finger/spi&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;b_3&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;D9656DA8-9BEF-F464-5B72-C4849AFD336379044infoc&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;b_4&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;F6E0FD4B-520C-1902-4F7B-E461D8D1F5AB79044-024072309-666onEZSnlHVPjoRp4kDYg==&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;ok&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="从响应头获取-buvid3-b-nut" tabindex="-1"><a class="header-anchor" href="#从响应头获取-buvid3-b-nut"><span>从响应头获取 buvid3 / b_nut</span></a></h2><p>使用 <code>GET</code> 或 <code>HEAD</code> 方法请求 <code>https://www.bilibili.com/</code>, 且请求头中 <code>User-Agent</code> 字段不包含 <code>curl</code> <code>python</code> <code>awa</code> 等敏感子字符串, 且相同 <code>User-Agent</code> 字段不得短时多次请求. 在响应头中的 <code>Set-Cookie</code> 字段中, 即可找到 <code>buvid3</code> 和 <code>b_nut</code>.</p><p>若不带任何 Cookie 请求, 则 <code>b_nut</code> 为响应生成时刻的 UNIX 秒级时间戳. 若请求 Cookie 仅带有 <code>buvid3</code>, 则 <code>b_nut</code> 为 <code>100</code>. 若请求 Cookie 仅带有 <code>b_nut</code>, 则与不带任何 Cookie 的响应相同. 若请求 Cookie 仅带有 <code>buvid3</code> 和 <code>b_nut</code>, 则响应无 <code>Set-Cookie</code> 字段. 若请求 Cookie 带有其他字段, 无影响.</p><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -I</span><span style="color:#CE9178;"> &quot;https://www.bilibili.com/&quot;</span><span style="color:#569CD6;"> -A</span><span style="color:#CE9178;"> &quot;awa&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-http line-numbers-mode" data-highlighter="shiki" data-ext="http" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-http"><span class="line"><span style="color:#D4D4D4;">HTTP/2 </span><span style="color:#B5CEA8;">200</span><span style="color:#D4D4D4;"> </span></span>
<span class="line"><span style="color:#569CD6;">date:</span><span style="color:#CE9178;"> Fri, 26 Jul 2024 06:38:43 GMT</span></span>
<span class="line"><span style="color:#569CD6;">content-type:</span><span style="color:#CE9178;"> text/html; charset=utf-8</span></span>
<span class="line"><span style="color:#569CD6;">support:</span><span style="color:#CE9178;"> nantianmen</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> buvid3=805E4894-96A2-0684-6F00-C6EA1FFB911023315infoc; path=/; expires=Sat, 26 Jul 2025 06:38:43 GMT; domain=.bilibili.com</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> b_nut=1721975923; path=/; expires=Sat, 26 Jul 2025 06:38:43 GMT; domain=.bilibili.com</span></span>
<span class="line"><span style="color:#569CD6;">vary:</span><span style="color:#CE9178;"> Origin,Accept-Encoding</span></span>
<span class="line"><span style="color:#569CD6;">idc:</span><span style="color:#CE9178;"> shjd</span></span>
<span class="line"><span style="color:#569CD6;">expires:</span><span style="color:#CE9178;"> Fri, 26 Jul 2024 06:38:42 GMT</span></span>
<span class="line"><span style="color:#569CD6;">cache-control:</span><span style="color:#CE9178;"> no-cache</span></span>
<span class="line"><span style="color:#569CD6;">x-cache-webcdn:</span><span style="color:#CE9178;"> MISS from blzone01</span></span>
<span class="line"><span style="color:#569CD6;">x-cache-time:</span><span style="color:#CE9178;"> 0</span></span>
<span class="line"><span style="color:#569CD6;">x-save-date:</span><span style="color:#CE9178;"> Fri, 26 Jul 2024 06:38:43 GMT</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,31)]))}const c=e(l,[["render",o]]),r=JSON.parse('{"path":"/docs/misc/buvid3_4.html","title":"获取 buvid3 / buvid4 / b_nut","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1726759053000,"contributors":[{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":4,"url":"https://github.com/SessionHu"},{"name":"SocialSisterYi","username":"SocialSisterYi","email":"45892418+SocialSisterYi@users.noreply.github.com","commits":1,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"1e24c6b1889160c4c35c01416aa4239501accf5f","time":1726759053000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"调整部分接口描述与错误修复 (#1088)","coAuthors":[{"name":"社会易姐QwQ","email":"45892418+SocialSisterYi@users.noreply.github.com"}]},{"hash":"60a0c5d1a2f44fe61335da04571305fa7727a968","time":1724238159000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: 各种接口补充与错误修正 (#1066)"},{"hash":"2465990ccc5aea35ad6d0b17dc7c2f36bc5e45c0","time":1722059352000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: 更新web端视频操作播放合集相关接口 (#1064)"},{"hash":"18c1efbc102ae6b44c8f5314c90e5e64f0d926cd","time":1721909032000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: bili_ticket 算法 Java 实现 及 信息补充 及 错误修正 (#1061)"}]},"filePathRelative":"docs/misc/buvid3_4.md"}');export{c as comp,r as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

23
assets/car-BMiAt_7U.svg Normal file
View File

@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="100%" height="100%">
<path
d="M21.24202 9.24032C21.31075 9.46754 21.28675 9.71272 21.1753 9.92231C21.06374 10.13194 20.87386 10.2888 20.64701 10.35888L20.0521 10.53139C19.93997 10.56576 19.82218 10.57776 19.70544 10.56653C19.5887 10.55539 19.47533 10.52141 19.37174 10.4664C19.26816 10.41149 19.17638 10.33661 19.1017 10.24618C19.02701 10.15574 18.97094 10.05152 18.93658 9.9394C18.90221 9.82728 18.89021 9.70949 18.90134 9.59275C18.91248 9.47601 18.94656 9.36261 19.00147 9.25902C19.05648 9.15543 19.13126 9.06369 19.2217 8.98902C19.31213 8.91435 19.41638 8.85823 19.52851 8.82385L20.12352 8.65131C20.23555 8.61552 20.35363 8.6024 20.47085 8.61272C20.58806 8.62304 20.70211 8.65659 20.80618 8.71141C20.91034 8.76624 21.0025 8.84124 21.07728 8.93204C21.15206 9.02286 21.20813 9.12765 21.24202 9.24032zM5.17807 9.93642C5.10935 10.16285 4.95356 10.35264 4.74493 10.46419C4.53631 10.57574 4.29192 10.59994 4.06548 10.53139L3.47052 10.35888C3.2437 10.2888 3.0538 10.13194 2.94231 9.92231C2.83084 9.71272 2.80684 9.46754 2.87556 9.24032C2.9089 9.12779 2.96424 9.02298 3.03839 8.932C3.11254 8.84102 3.20402 8.76568 3.30752 8.71033C3.41101 8.65499 3.52448 8.62074 3.64131 8.60959C3.75815 8.59843 3.87604 8.6106 3.98814 8.64536L4.5831 8.8179C4.69586 8.85188 4.80079 8.90785 4.89181 8.98257C4.98284 9.05729 5.05818 9.1493 5.11349 9.25328C5.16879 9.35725 5.20298 9.47115 5.21406 9.58839C5.22515 9.70564 5.21291 9.82393 5.17807 9.93642z"
fill="#00B9E7ff"></path>
<path
d="M6.97476 4.78406C8.65316 4.44467 10.36118 4.27327 12.07354 4.27239C13.82131 4.27461 15.56477 4.44596 17.27952 4.78406C17.47834 4.82236 17.6641 4.91076 17.81923 5.04089C17.97437 5.17104 18.0937 5.33861 18.16598 5.52776L20.34038 11.24707C20.38176 11.35603 20.40307 11.47171 20.40307 11.58826L20.40307 16.76659C20.40307 16.92442 20.34038 17.07571 20.22874 17.18726C20.11718 17.29882 19.96589 17.3615 19.80806 17.3615L4.33908 17.3615C4.18129 17.3615 4.02996 17.29882 3.91837 17.18726C3.8068 17.07571 3.74412 16.92442 3.74412 16.76659L3.74412 11.59834C3.74412 11.47526 3.76781 11.35325 3.8139 11.23901L6.12396 5.51586C6.19464 5.33331 6.30926 5.17102 6.45767 5.04336C6.60609 4.91571 6.7837 4.82665 6.97476 4.78406z"
fill="#00B9E7ff"></path>
<path
d="M5.529 12.00691L7.90884 12.00691C8.30549 12.00691 8.5038 12.20515 8.5038 12.60182L8.5038 13.19683C8.5038 13.59341 8.30549 13.79174 7.90884 13.79174L5.529 13.79174C5.13236 13.79174 4.93404 13.59341 4.93404 13.19683L4.93404 12.60182C4.93404 12.20515 5.13236 12.00691 5.529 12.00691z"
fill="#FDDE80ff"></path>
<path
d="M16.2383 12.00691L18.61814 12.00691C19.01482 12.00691 19.21315 12.20515 19.21315 12.60182L19.21315 13.19683C19.21315 13.59341 19.01482 13.79174 18.61814 13.79174L16.2383 13.79174C15.84173 13.79174 15.64339 13.59341 15.64339 13.19683L15.64339 12.60182C15.64339 12.20515 15.84173 12.00691 16.2383 12.00691z"
fill="#FDDE80ff"></path>
<path
d="M7.79001 6.40233C9.11029 6.17235 10.44797 6.05689 11.78813 6.05724C13.31962 6.07062 14.84832 6.1899 16.36339 6.41422C16.47677 6.43024 16.58304 6.47862 16.66954 6.55355C16.75613 6.62846 16.8192 6.72677 16.85126 6.83665L17.77344 9.96614C17.79533 10.04115 17.80224 10.11974 17.7937 10.19741C17.78525 10.27507 17.76154 10.35034 17.724 10.41878C17.68637 10.48733 17.63568 10.54771 17.57482 10.59667C17.51386 10.64554 17.44387 10.68202 17.3689 10.7039C17.29622 10.7185 17.22144 10.7185 17.14877 10.7039C15.20918 10.51747 13.42426 10.42426 11.79408 10.42426C10.20394 10.4255 8.61508 10.51286 7.0344 10.68605C6.95666 10.6943 6.87804 10.6871 6.80307 10.66502C6.72808 10.64285 6.6582 10.60608 6.59743 10.55693C6.53665 10.50778 6.48615 10.4471 6.44884 10.37837C6.41152 10.30963 6.38811 10.23427 6.37995 10.15651C6.36471 10.07993 6.36471 10.00109 6.37995 9.9245L7.31404 6.81879C7.3462 6.71165 7.40791 6.61574 7.4921 6.54207C7.57629 6.46841 7.67954 6.41997 7.79001 6.40233z"
fill="#59E1F9ff"></path>
<path
d="M3.74414 15.65299C3.74414 14.85763 4.38885 14.21299 5.18414 14.21299L5.28938 14.21299C6.08466 14.21299 6.72938 14.85763 6.72938 15.65299L6.72938 17.70653C6.72938 18.50189 6.08466 19.14653 5.28938 19.14653L5.18414 19.14653C4.38885 19.14653 3.74414 18.50189 3.74414 17.70653L3.74414 15.65299z"
fill="#00B9E7ff"></path>
<path
d="M17.42822 15.65299C17.42822 14.85763 18.07296 14.21299 18.86822 14.21299L18.97344 14.21299C19.7688 14.21299 20.41344 14.85763 20.41344 15.65299L20.41344 17.70653C20.41344 18.50189 19.7688 19.14653 18.97344 19.14653L18.86822 19.14653C18.07296 19.14653 17.42822 18.50189 17.42822 17.70653L17.42822 15.65299z"
fill="#00B9E7ff"></path>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as d,c as r,a,o as e}from"./app-Dgsdh8A6.js";const h={};function n(i,t){return e(),r("div",null,t[0]||(t[0]=[a('<h1 id="专栏分类" tabindex="-1"><a class="header-anchor" href="#专栏分类"><span>专栏分类</span></a></h1><h2 id="游戏" tabindex="-1"><a class="header-anchor" href="#游戏"><span>游戏</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>1</td><td>0</td><td>游戏</td></tr><tr><td>6</td><td>1</td><td>单机游戏</td></tr><tr><td>7</td><td>1</td><td>电子竞技</td></tr><tr><td>8</td><td>1</td><td>手机游戏</td></tr><tr><td>9</td><td>1</td><td>网络游戏</td></tr><tr><td>10</td><td>1</td><td>桌游棋牌</td></tr></tbody></table><h2 id="动画" tabindex="-1"><a class="header-anchor" href="#动画"><span>动画</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>2</td><td>0</td><td>动画</td></tr><tr><td>4</td><td>2</td><td>动漫杂谈</td></tr><tr><td>5</td><td>2</td><td>动漫资讯</td></tr><tr><td>31</td><td>2</td><td>动画技术</td></tr></tbody></table><h2 id="生活" tabindex="-1"><a class="header-anchor" href="#生活"><span>生活</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>3</td><td>0</td><td>生活</td></tr><tr><td>13</td><td>3</td><td>美食</td></tr><tr><td>14</td><td>3</td><td>时尚</td></tr><tr><td>15</td><td>3</td><td>日常</td></tr><tr><td>21</td><td>3</td><td>萌宠</td></tr><tr><td>22</td><td>3</td><td>运动</td></tr></tbody></table><h2 id="轻小说" tabindex="-1"><a class="header-anchor" href="#轻小说"><span>轻小说</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>16</td><td>0</td><td>轻小说</td></tr><tr><td>18</td><td>16</td><td>原创连载</td></tr><tr><td>19</td><td>16</td><td>同人连载</td></tr><tr><td>20</td><td>16</td><td>小说杂谈</td></tr><tr><td>32</td><td>16</td><td>短篇小说</td></tr></tbody></table><h2 id="科技" tabindex="-1"><a class="header-anchor" href="#科技"><span>科技</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>17</td><td>0</td><td>科技</td></tr><tr><td>25</td><td>17</td><td>人文历史</td></tr><tr><td>26</td><td>17</td><td>数码</td></tr><tr><td>27</td><td>17</td><td>汽车</td></tr><tr><td>33</td><td>17</td><td>自然</td></tr><tr><td>34</td><td>17</td><td>学习</td></tr></tbody></table><h2 id="影视" tabindex="-1"><a class="header-anchor" href="#影视"><span>影视</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>28</td><td>0</td><td>影视</td></tr><tr><td>12</td><td>28</td><td>电影</td></tr><tr><td>35</td><td>28</td><td>电视剧</td></tr><tr><td>36</td><td>28</td><td>纪录片</td></tr><tr><td>37</td><td>28</td><td>综艺</td></tr></tbody></table><h2 id="兴趣" tabindex="-1"><a class="header-anchor" href="#兴趣"><span>兴趣</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>29</td><td>0</td><td>兴趣</td></tr><tr><td>11</td><td>29</td><td>模型手办</td></tr><tr><td>23</td><td>29</td><td>绘画</td></tr><tr><td>24</td><td>29</td><td>手工</td></tr><tr><td>38</td><td>29</td><td>摄影</td></tr><tr><td>39</td><td>29</td><td>音乐舞蹈</td></tr></tbody></table><h2 id="笔记" tabindex="-1"><a class="header-anchor" href="#笔记"><span>笔记</span></a></h2><table><thead><tr><th>id</th><th>parent_id</th><th>name</th></tr></thead><tbody><tr><td>41</td><td>0</td><td>笔记</td></tr><tr><td>42</td><td>41</td><td>全部笔记</td></tr></tbody></table>',17)]))}const o=d(h,[["render",n]]),c=JSON.parse('{"path":"/docs/article/category.html","title":"专栏分类","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1676998806000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":1,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/article/category.md"}');export{o as comp,c as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,73 @@
import{_ as t,c as a,a as n,o as l}from"./app-Dgsdh8A6.js";const e={};function d(o,s){return l(),a("div",null,s[0]||(s[0]=[n(`<h1 id="充电留言" tabindex="-1"><a class="header-anchor" href="#充电留言"><span>充电留言</span></a></h1><h2 id="发送充电留言" tabindex="-1"><a class="header-anchor" href="#发送充电留言"><span>发送充电留言</span></a></h2><blockquote><p>https://api.bilibili.com/x/ugcpay/trade/elec/message</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数application/x-www-form-urlencoded</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>order_id</td><td>str</td><td>留言token</td><td>必要</td><td></td></tr><tr><td>message</td><td>str</td><td>留言内容</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功 <br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>88203不能重复留言</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>为留言token为<code>BPRG5CEC3VUPOOANA540</code>的充电操作,添加了内容为<code>支持一下大佬</code>的留言</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/ugcpay/trade/elec/message&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;order_id=BPRG5CEC3VUPOOANA540&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;message=支持一下大佬&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="查询我收到的充电留言" tabindex="-1"><a class="header-anchor" href="#查询我收到的充电留言"><span>查询我收到的充电留言</span></a></h2><blockquote><p>https://member.bilibili.com/x/web/elec/remark/list</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>begin</td><td>str</td><td>起始日期</td><td>非必要</td><td>默认2016-01-01</td></tr><tr><td>end</td><td>str</td><td>结束日期</td><td>非必要</td><td>默认2050-01-01</td></tr><tr><td>pn</td><td>str</td><td>页数</td><td>非必要</td><td></td></tr><tr><td>ps</td><td>str</td><td>分页大小</td><td>非必要</td><td>取值范围[1,12]</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录</td></tr><tr><td>msg</td><td>str</td><td>错误信息</td><td>成功时为<code>0</code></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>list</td><td>array</td><td>信息本体</td><td></td></tr><tr><td>pager</td><td>obj</td><td>分页信息</td><td></td></tr></tbody></table><p><code>list</code>数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td></td><td></td></tr><tr><td>bvid</td><td>str</td><td></td><td></td></tr><tr><td>id</td><td>num</td><td>留言记录id</td><td></td></tr><tr><td>mid</td><td>num</td><td>0</td><td></td></tr><tr><td>reply_mid</td><td>num</td><td>0</td><td></td></tr><tr><td>elec_num</td><td>num</td><td>0</td><td></td></tr><tr><td>state</td><td>num</td><td>UP是否已经回复这条留言</td><td>0未回复<br>1已回复</td></tr><tr><td>msg</td><td>str</td><td>留言信息</td><td></td></tr><tr><td>aname</td><td>str</td><td>空</td><td></td></tr><tr><td>uname</td><td>str</td><td>空</td><td></td></tr><tr><td>avator</td><td>str</td><td>空</td><td></td></tr><tr><td>reply_name</td><td>str</td><td>空</td><td></td></tr><tr><td>reply_avator</td><td>str</td><td>空</td><td></td></tr><tr><td>reply_msg</td><td>str</td><td>空</td><td></td></tr><tr><td>ctime</td><td>num</td><td>留言时间</td><td>毫秒级时间戳</td></tr><tr><td>reply_time</td><td>num</td><td>0</td><td></td></tr></tbody></table><p><code>pager</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>current</td><td>num</td><td>当前页数</td><td></td></tr><tr><td>size</td><td>num</td><td>当前分页大小</td><td></td></tr><tr><td>total</td><td>num</td><td>记录总数</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://member.bilibili.com/x/web/elec/remark/list?begin=2016-01-01&amp;end=2050-01-01&amp;pn=1&amp;ps=10&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;list&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;aid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bvid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">6715018</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;elec_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;加油&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;aname&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uname&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;avator&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_avator&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ctime&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1650665119000</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;pager&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;current&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;total&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">448</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="查询充电留言详情" tabindex="-1"><a class="header-anchor" href="#查询充电留言详情"><span>查询充电留言详情</span></a></h2><blockquote><p>https://member.bilibili.com/x/web/elec/remark/detail</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>id</td><td>num</td><td>留言id</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-400请求错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>成功时为 <code>0</code></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td></td><td></td></tr><tr><td>bvid</td><td>str</td><td></td><td></td></tr><tr><td>id</td><td>num</td><td>留言id</td><td></td></tr><tr><td>mid</td><td>num</td><td>留言者mid充电用户</td><td></td></tr><tr><td>reply_mid</td><td>num</td><td>UP主mid</td><td></td></tr><tr><td>elec_num</td><td>num</td><td>0</td><td></td></tr><tr><td>state</td><td>num</td><td>UP是否已经回复这条留言</td><td>0未回复<br>1已回复</td></tr><tr><td>msg</td><td>str</td><td>留言内容</td><td></td></tr><tr><td>aname</td><td>str</td><td>空</td><td></td></tr><tr><td>uname</td><td>str</td><td>留言者用户名</td><td></td></tr><tr><td>avator</td><td>str</td><td>留言者头像</td><td></td></tr><tr><td>reply_name</td><td>str</td><td>UP主用户名</td><td></td></tr><tr><td>reply_avator</td><td>str</td><td>UP主头像</td><td></td></tr><tr><td>reply_msg</td><td>str</td><td>回复内容</td><td></td></tr><tr><td>ctime</td><td>num</td><td>留言时间</td><td>毫秒级时间戳</td></tr><tr><td>reply_time</td><td>num</td><td>回复时间</td><td>毫秒级时间戳</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://member.bilibili.com/x/web/elec/remark/detail?id=6507563&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;aid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bvid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">6507563</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">19978396</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_mid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2062760</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;elec_num&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;state&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;感谢搬运&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;aname&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;uname&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;HANSOOOOOL&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;avator&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i1.hdslb.com/bfs/face/5c22af0261b8b3f9a54b6e0038e35430e9ed9cfd.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;一把近战都不给六花&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_avator&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;http://i2.hdslb.com/bfs/face/1804b716084908d4992bdd35827d0c2d7222fe97.jpg&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_msg&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;( ̄3 ̄)&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ctime&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1646726966000</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;reply_time&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1646811946000</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="回复充电留言" tabindex="-1"><a class="header-anchor" href="#回复充电留言"><span>回复充电留言</span></a></h2><blockquote><p>https://member.bilibili.com/x/web/elec/remark/reply</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA</p><p><strong>正文参数application/x-www-form-urlencoded</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>csrf</td><td>必要</td><td></td></tr><tr><td>id</td><td>num</td><td>留言id</td><td>必要</td><td></td></tr><tr><td>msg</td><td>str</td><td>回复信息</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>-400请求错误<br>20004充电服务异常</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>num</td><td>数据本体</td><td>1成功<br>2失败</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://member.bilibili.com/x/web/elec/remark/reply&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;id=6258929&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;msg=( ̄3 ̄)&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,58)]))}const r=t(e,[["render",d]]),c=JSON.parse('{"path":"/docs/electric/charge_msg.html","title":"充电留言","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1740498696000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":3,"url":"https://github.com/wuziqian211"}],"changelog":[{"hash":"6c1f03e75334aaba6f3b6f3bf346b0326073b779","time":1740498696000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"晨叶梦春","message":"update"},{"hash":"490d4c5e1f4559e9fae0feb46e18364317a6112e","time":1677480998000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"新增包月充电功能相关API (#626)"},{"hash":"f599147a0ce8d39d655760f2ade23797af2381cd","time":1677408879000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"Update charge_msg.md"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/electric/charge_msg.md"}');export{r as comp,c as data};

View File

@@ -0,0 +1,23 @@
import{_ as e,c as a,a as n,o as l}from"./app-Dgsdh8A6.js";const t={};function o(i,s){return l(),a("div",null,s[0]||(s[0]=[n(`<h1 id="检查昵称是否可注册" tabindex="-1"><a class="header-anchor" href="#检查昵称是否可注册"><span>检查昵称是否可注册</span></a></h1><h2 id="检查昵称-已失效" tabindex="-1"><a class="header-anchor" href="#检查昵称-已失效"><span><s>检查昵称(已失效)</s></span></a></h2><details><summary>查看折叠内容</summary><blockquote><p>https://passport.bilibili.com/web/generic/check/nickname</p></blockquote><p><em>请求方式:GET</em></p><p>也可用于判断指定昵称的用户是否存在</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>nickName</td><td>str</td><td>目标昵称</td><td>必要</td><td>最长为16字符</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>状态码</td><td>-400请求错误<br>-500服务器端异常<br><strong>详细说明见下一表格</strong></td></tr><tr><td>message</td><td>str</td><td>错误详情</td><td>若昵称可用则不返回message</td></tr></tbody></table><p><code>code</code>状态码:</p><table><thead><tr><th>值</th><th>含义</th></tr></thead><tbody><tr><td>0</td><td>昵称未被注册</td></tr><tr><td>2001</td><td>该昵称已被他人使用</td></tr><tr><td>40002</td><td>昵称包含敏感信息</td></tr><tr><td>40004</td><td>昵称不可包含除-和_以外的特殊字符</td></tr><tr><td>40005</td><td>昵称过长超过16字符</td></tr><tr><td>40006</td><td>昵称过短少于2字符</td></tr><tr><td>40014</td><td>昵称已存在</td></tr></tbody></table><p><strong>示例:</strong></p><p>查询昵称 <code>xijinping</code> 是否被使用:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/web/generic/check/nickname&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;nickName=xijinping&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">40002</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;昵称包含敏感信息&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>查询昵称 <code>//</code> 是否被使用:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/web/generic/check/nickname&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;nickName=//&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">40004</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;昵称不可包含除-和_以外的特殊字符&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>查询昵称 <code>test0000000000000 </code> 是否被使用:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/web/generic/check/nickname&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;nickName=test0000000000000 &#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">40005</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;昵称过长&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>查询昵称 <code>0</code> 是否被使用:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/web/generic/check/nickname&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;nickName=0&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">40006</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;昵称过短&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>查询昵称 <code>test</code> 是否被使用:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/web/generic/check/nickname&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;nickName=test&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">40014</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;昵称已存在&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details></details><p>目前该接口无论参数,稳定返回:</p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,5)]))}const r=e(t,[["render",o]]),d=JSON.parse('{"path":"/docs/user/check_nickname.html","title":"检查昵称是否可注册","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1737288326000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"emptyBud","username":"emptyBud","email":"74719559+emptyBud@users.noreply.github.com","commits":1,"url":"https://github.com/emptyBud"}],"changelog":[{"hash":"5e16f1c41d8c6a6487d9e690f0b33a6d5f072c12","time":1737288326000,"email":"74719559+emptyBud@users.noreply.github.com","author":"空芽","message":"Update check_nickname.md"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/user/check_nickname.md"}');export{r as comp,d as data};

View File

@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="100%" height="100%">
<path
d="M5.16093 18.89558L18.83645 18.89558C19.63171 18.89558 20.27645 18.25085 20.27645 17.45558L20.27645 6.34031C20.27645 5.54503 19.63171 4.90031 18.83645 4.90031L5.16094 4.90031C4.36565 4.90031 3.72094 5.54503 3.72094 6.34031L3.72094 17.45558C3.72094 18.25085 4.36565 18.89558 5.16093 18.89558z"
fill="#9796EDff"></path>
<path
d="M5.49187 7.15125C5.49187 7.54889 5.81423 7.87125 6.21187 7.87125L7.53881 7.87125C7.93645 7.87125 8.25881 7.54889 8.25881 7.15125C8.25881 6.75361 7.93645 6.43125 7.53881 6.43125L6.21187 6.43125C5.81423 6.43125 5.49187 6.75361 5.49187 7.15125z"
fill="#6D69E4ff"></path>
<path
d="M10.6897 7.15125C10.6897 7.54889 11.01206 7.87125 11.4097 7.87125L12.73661 7.87125C13.13424 7.87125 13.45661 7.54889 13.45661 7.15125C13.45661 6.75361 13.13424 6.43125 12.73661 6.43125L11.4097 6.43125C11.01206 6.43125 10.6897 6.75361 10.6897 7.15125z"
fill="#6D69E4ff"></path>
<path
d="M15.88733 7.15125C15.88733 7.54889 16.2097 7.87125 16.60733 7.87125L17.93424 7.87125C18.33187 7.87125 18.65424 7.54889 18.65424 7.15125C18.65424 6.75361 18.33187 6.43125 17.93424 6.43125L16.60733 6.43125C16.2097 6.43125 15.88733 6.75361 15.88733 7.15125z"
fill="#6D69E4ff"></path>
<path
d="M5.49187 17.14742C5.49187 17.54515 5.81423 17.86742 6.21187 17.86742L7.53881 17.86742C7.93645 17.86742 8.25881 17.54515 8.25881 17.14742C8.25881 16.74979 7.93645 16.42742 7.53881 16.42742L6.21187 16.42742C5.81423 16.42742 5.49187 16.74979 5.49187 17.14742z"
fill="#6D69E4ff"></path>
<path
d="M10.6897 17.14742C10.6897 17.54515 11.01206 17.86742 11.4097 17.86742L12.73661 17.86742C13.13424 17.86742 13.45661 17.54515 13.45661 17.14742C13.45661 16.74979 13.13424 16.42742 12.73661 16.42742L11.4097 16.42742C11.01206 16.42742 10.6897 16.74979 10.6897 17.14742z"
fill="#6D69E4ff"></path>
<path
d="M15.88733 17.14742C15.88733 17.54515 16.2097 17.86742 16.60733 17.86742L17.93424 17.86742C18.33187 17.86742 18.65424 17.54515 18.65424 17.14742C18.65424 16.74979 18.33187 16.42742 17.93424 16.42742L16.60733 16.42742C16.2097 16.42742 15.88733 16.74979 15.88733 17.14742z"
fill="#6D69E4ff"></path>
<path
d="M3.72094 14.9591L20.27645 14.9591L20.27645 8.83594L3.72094 8.83594L3.72094 14.9591z"
fill="#6D69E4ff"></path>
<path
d="M9.8783 12.948C9.91536 12.84787 9.93389 12.79776 9.95213 12.77434C10.02883 12.67565 10.17802 12.67565 10.25482 12.77434C10.27296 12.79776 10.29149 12.84787 10.32854 12.948C10.53485 13.50557 10.97443 13.94515 11.532 14.15146C11.63222 14.18851 11.68224 14.20704 11.70566 14.22528C11.80435 14.30198 11.80435 14.45117 11.70566 14.52787C11.68224 14.54611 11.63222 14.56464 11.532 14.6017C10.97443 14.808 10.53485 15.24758 10.32854 15.80515C10.29149 15.90528 10.27296 15.95539 10.25482 15.97882C10.17802 16.0775 10.02883 16.0775 9.95213 15.97882C9.93389 15.95539 9.91536 15.90528 9.8783 15.80515C9.672 15.24758 9.23242 14.808 8.67487 14.6017C8.5747 14.56464 8.52462 14.54611 8.50123 14.52787C8.40254 14.45117 8.40254 14.30198 8.50123 14.22528C8.52462 14.20704 8.5747 14.18851 8.67487 14.15146C9.23242 13.94515 9.672 13.50557 9.8783 12.948z"
fill="#FDDE80ff"></path>
<path
d="M13.42128 6.99748C13.50605 6.76846 13.54838 6.65394 13.58995 6.60048C13.76544 6.37484 14.10653 6.37484 14.28202 6.60048C14.32358 6.65394 14.36592 6.76846 14.45069 6.99748C14.92234 8.27225 15.92746 9.27733 17.20224 9.74909C17.4313 9.83376 17.54573 9.87619 17.5992 9.91776C17.8249 10.09325 17.8249 10.43424 17.5992 10.60973C17.54573 10.6513 17.4313 10.69373 17.20224 10.7785C15.92746 11.25014 14.92234 12.25526 14.45069 13.53005C14.36592 13.75901 14.32358 13.87354 14.28202 13.92701C14.10653 14.1527 13.76544 14.1527 13.58995 13.92701C13.54838 13.87354 13.50605 13.75901 13.42128 13.53005C12.94954 12.25526 11.94451 11.25014 10.66973 10.7785C10.44067 10.69373 10.32614 10.6513 10.27267 10.60973C10.04707 10.43424 10.04707 10.09325 10.27267 9.91776C10.32614 9.87619 10.44067 9.83376 10.66973 9.74909C11.94451 9.27733 12.94954 8.27225 13.42128 6.99748z"
fill="#FDDE80ff"></path>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,8 @@
import{_ as e,c as a,a as t,o as l}from"./app-Dgsdh8A6.js";const n={};function o(i,s){return l(),a("div",null,s[0]||(s[0]=[t(`<h1 id="大会员签到" tabindex="-1"><a class="header-anchor" href="#大会员签到"><span>大会员签到</span></a></h1><h2 id="大积分签到" tabindex="-1"><a class="header-anchor" href="#大积分签到"><span>大积分签到</span></a></h2><blockquote><p>https://api.bilibili.com/pgc/activity/score/task/sign</p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie (SESSDATA) / access_key</p><p>Cookie 鉴权方式下需要满足以下条件:</p><ul><li><code>Referer</code>在<code>*.bilibili.com</code>域名下</li><li><code>SESSDATA</code> 需要进行 url 编码,即 <code>,</code> 替换为 <code>%2C</code></li></ul><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP登录Token</td><td>APP方式必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token (位于cookie)</td><td>非必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>响应码</td><td>0成功<br>-101账号未登录<br>-401非法访问<br>-403访问权限不足</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>web 方式:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/pgc/activity/score/task/sign&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --referer</span><span style="color:#CE9178;"> &#39;https://www.bilibili.com&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>APP 方式:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/pgc/activity/score/task/sign&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;access_key=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,18)]))}const r=e(n,[["render",o]]),d=JSON.parse('{"path":"/docs/vip/clockin.html","title":"大会员签到","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/vip/clockin.md"}');export{r as comp,d as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
import{_ as d,c as s,a as e,o as a}from"./app-Dgsdh8A6.js";const r={};function l(o,t){return a(),s("div",null,t[0]||(t[0]=[e(`<h1 id="弹幕个人配置修改" tabindex="-1"><a class="header-anchor" href="#弹幕个人配置修改"><span>弹幕个人配置修改</span></a></h1><h2 id="修改弹幕个人配置-web端" tabindex="-1"><a class="header-anchor" href="#修改弹幕个人配置-web端"><span>修改弹幕个人配置web端</span></a></h2><blockquote><p>https://api.bilibili.com/x/v2/dm/web/config</p></blockquote><p><em>请求方式POST</em></p><p>认证方式CookieSESSDATA或APP</p><p><strong>正文参数( application/x-www-form-urlencoded </strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>access_key</td><td>str</td><td>APP登录Token</td><td>APP方式必要</td><td></td></tr><tr><td>dm_switch</td><td>bool</td><td>弹幕开关</td><td>非必要</td><td>true开启<br>false关闭</td></tr><tr><td>blockscroll</td><td>bool</td><td>屏蔽类型-滚动</td><td>非必要</td><td>true不屏蔽<br>false屏蔽</td></tr><tr><td>blocktop</td><td>bool</td><td>屏蔽类型-顶部</td><td>非必要</td><td>同上</td></tr><tr><td>blockbottom</td><td>bool</td><td>屏蔽类型-底部</td><td>非必要</td><td>同上</td></tr><tr><td>blockcolor</td><td>bool</td><td>屏蔽类型-彩色</td><td>非必要</td><td>同上</td></tr><tr><td>blockspecial</td><td>bool</td><td>屏蔽类型-特殊</td><td>非必要</td><td>同上</td></tr><tr><td>ai_switch</td><td>bool</td><td>是否打开智能云屏蔽</td><td>非必要</td><td>true开启<br>false关闭</td></tr><tr><td>ai_level</td><td>num</td><td>智能云屏蔽等级</td><td>非必要</td><td>区间:[0-10]<br>0为默认等级3级</td></tr><tr><td>preventshade</td><td>bool</td><td>防挡弹幕底部15%</td><td>非必要</td><td>true开启<br>false关闭</td></tr><tr><td>dmask</td><td>bool</td><td>智能防挡弹幕(人像蒙版)</td><td>非必要</td><td>同上</td></tr><tr><td>opacity</td><td>num</td><td>弹幕不透明度</td><td>非必要</td><td>区间:[0-1]</td></tr><tr><td>dmarea</td><td>num</td><td>弹幕显示区域</td><td>非必要</td><td>100不重叠<br>753/4屏<br>50半瓶<br>251/4屏<br>0不限</td></tr><tr><td>speedplus</td><td>num</td><td>弹幕速度</td><td>非必要</td><td>区间:[0.4-1.6]</td></tr><tr><td>fontsize</td><td>num</td><td>字体大小</td><td>非必要</td><td>区间:[0.4-1.6]</td></tr><tr><td>screensync</td><td>bool</td><td>跟随屏幕缩放比例</td><td>非必要</td><td>true开启<br>false关闭</td></tr><tr><td>speedsync</td><td>bool</td><td>根据播放倍速调整速度</td><td>非必要</td><td>同上</td></tr><tr><td>fontfamily</td><td>str</td><td>字体类型</td><td>非必要</td><td>未启用</td></tr><tr><td>bold</td><td>bool</td><td>粗体</td><td>非必要</td><td>未启用</td></tr><tr><td>fontborder</td><td>num</td><td>描边类型</td><td>非必要</td><td>0重墨<br>1描边<br>245°投影</td></tr><tr><td>drawType</td><td>string</td><td>渲染类型</td><td>非必要</td><td>未启用</td></tr><tr><td>ts</td><td>num</td><td>当前时间戳</td><td>非必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>CSRF Token位于cookie</td><td>Cookie方式必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf校验失败<br>-400请求错误<br>23004数据没有修改</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>关闭弹幕</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v2/dm/web/config&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;dm_switch=false&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,14)]))}const c=d(r,[["render",l]]),i=JSON.parse('{"path":"/docs/danmaku/config.html","title":"弹幕个人配置修改","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/danmaku/config.md"}');export{c as comp,i as data};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,26 @@
import{_ as s,c as a,a as n,o as e}from"./app-Dgsdh8A6.js";const d={};function l(o,t){return e(),a("div",null,t[0]||(t[0]=[n(`<h1 id="加入老粉计划" tabindex="-1"><a class="header-anchor" href="#加入老粉计划"><span>加入老粉计划</span></a></h1><blockquote><p>https://api.bilibili.com/x/v1/contract/add_contract</p></blockquote><p><em>请求方式POST</em></p><p>是否需要登录:<code>是</code></p><p>认证方式Cookie(SESSDATA)</p><p><strong>正文参数 (application/x-www-form-urlencoded)</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>str</td><td><code>空串</code></td><td></td><td></td></tr><tr><td>up_mid</td><td>str</td><td>UP主UID</td><td>必要</td><td></td></tr><tr><td>source</td><td>str</td><td><code>4</code></td><td></td><td></td></tr><tr><td>scene</td><td>str</td><td><code>105</code></td><td></td><td></td></tr><tr><td>platform</td><td>str</td><td><code>web</code></td><td></td><td></td></tr><tr><td>mobi_app</td><td>str</td><td><code>pc</code></td><td></td><td></td></tr><tr><td>csrf</td><td>str</td><td>用户csrf</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>响应码</td><td>0成功<br>158001<code>不满足条件</code></td></tr><tr><td>message</td><td>str</td><td>0</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>allow_message</td><td>bool</td><td><code>true</code></td><td></td></tr><tr><td>input_text</td><td>str</td><td><code>UP主加油看好你噢~</code></td><td></td></tr><tr><td>input_title</td><td>str</td><td><code>感谢你对UP主的特别支持“老粉”可期私信留言鼓励下TA吧~ </code></td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> --location</span><span style="color:#569CD6;"> --request</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v1/contract/add_contract&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--header </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--header </span><span style="color:#CE9178;">&#39;Content-Type: application/x-www-form-urlencoded&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>点击查看</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;allow_message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;input_text&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;UP主加油看好你噢~&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;input_title&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;感谢你对UP主的特别支持“老粉”可期私信留言鼓励下TA吧~&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h1 id="老粉计划发送留言" tabindex="-1"><a class="header-anchor" href="#老粉计划发送留言"><span>老粉计划发送留言</span></a></h1><blockquote><p>https://api.bilibili.com/x/v1/contract/add_message</p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie (SESSDATA)</p><p><strong>正文参数 (application/x-www-form-urlencoded)</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>str</td><td><code>空串</code></td><td></td><td></td></tr><tr><td>up_mid</td><td>str</td><td>UP主UID</td><td>必要</td><td></td></tr><tr><td>source</td><td>str</td><td><code>4</code></td><td></td><td></td></tr><tr><td>scene</td><td>str</td><td><code>105</code></td><td></td><td></td></tr><tr><td>content</td><td>str</td><td>留言内容</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>用户csrf</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>响应码</td><td>0成功<br>158005您跟up主还不是契约关系</td></tr><tr><td>message</td><td>str</td><td>0</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>success_toast</td><td>str</td><td><code>提交成功UP主已收到留言~</code></td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> --location</span><span style="color:#569CD6;"> --request</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v1/contract/add_message&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--header </span><span style="color:#CE9178;">&#39;Cookie: SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--header </span><span style="color:#CE9178;">&#39;Content-Type: application/x-www-form-urlencoded&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;up_mid=2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;content=..&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>点击查看</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;success_toast&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;提交成功UP主已收到留言~&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,29)]))}const c=s(d,[["render",l]]),p=JSON.parse('{"path":"/docs/user/contract.html","title":"加入老粉计划","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1749972386000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":1,"url":"https://github.com/SocialSisterYi"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"ffba41758237c897b75e0c650c208b54469e6560","time":1749972386000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"fix(user/contract.md): missing <code>~</code>"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/user/contract.md"}');export{c as comp,p as data};

View File

@@ -0,0 +1,275 @@
import{_ as n,c as a,a as l,o as e}from"./app-Dgsdh8A6.js";const o={};function p(t,s){return e(),a("div",null,s[0]||(s[0]=[l(`<h1 id="web端cookie刷新" tabindex="-1"><a class="header-anchor" href="#web端cookie刷新"><span>Web端Cookie刷新</span></a></h1><p>自从 2023 以来,社区反馈似乎 Web 端的 Cookie 会随着一些敏感接口的访问逐渐失效,而在 Web 页面上会判断 Cookie 是否需要刷新,如需刷新则会以动态加载 iframe 方式实现,同时登录(二维码 / 密码 / 短信验证码等)接口也会返回<code>refresh_token</code>字段,需要持久化保存,是一种官方的风控机制实现</p><p>感谢 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/524" target="_blank" rel="noopener noreferrer">#524</a> 提供相关研究报告以及逆向工程结果</p><blockquote><p>cookie 不会主动刷新的,只要他没有调用下面的刷新接口就不会刷新。也就是说,你只要不再打开浏览器,或者直接把 localStorage 的 ac_time_value 字段删除了。那么 cookie 在真的失效前(登录过期、账号风控等强制下线)都是不变化的。</p></blockquote><h2 id="刷新步骤-伪代码" tabindex="-1"><a class="header-anchor" href="#刷新步骤-伪代码"><span>刷新步骤(伪代码)</span></a></h2><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#D4D4D4;">cookie, refresh_token = 进行登录操作() </span><span style="color:#6A9955;"># can be 二维码 / 密码 / 短信验证码</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;">while</span><span style="color:#569CD6;"> True</span><span style="color:#D4D4D4;">:</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> 每日第一次访问接口:</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#D4D4D4;"> 检查是否需要刷新(cookie):</span></span>
<span class="line"><span style="color:#D4D4D4;"> CorrespondPath = 生成CorrespondPath(当前毫秒时间戳)</span></span>
<span class="line"><span style="color:#D4D4D4;"> refresh_csrf = 获取refresh_csrf(CorrespondPath, cookie)</span></span>
<span class="line"><span style="color:#D4D4D4;"> refresh_token_old = refresh_token </span><span style="color:#6A9955;"># 这一步必须保存旧的 refresh_token 备用</span></span>
<span class="line"><span style="color:#D4D4D4;"> cookie, refresh_token = 刷新Cookie(refresh_token, refresh_csrf, cookie)</span></span>
<span class="line"><span style="color:#D4D4D4;"> 确认更新(refresh_token_old, cookie) </span><span style="color:#6A9955;"># 这一步需要新的 Cookie 以及旧的 refresh_token</span></span>
<span class="line"><span style="color:#D4D4D4;"> SSO站点跨域登录(cookie)</span></span>
<span class="line"><span style="color:#D4D4D4;"> do_somethings(cookie) </span><span style="color:#6A9955;"># 其他业务逻辑处理</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="检查是否需要刷新" tabindex="-1"><a class="header-anchor" href="#检查是否需要刷新"><span>检查是否需要刷新</span></a></h2><blockquote><p>https://passport.bilibili.com/x/passport-login/web/cookie/info</p></blockquote><p><em>请求方式GET</em></p><p>鉴权方式Cookie</p><p><strong>url 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>CSRF Token位于 Cookie</td><td>非必要</td><td>位于 Cookie 中的bili_jct字段</td></tr></tbody></table><p><strong>json 回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>refresh</td><td>bool</td><td>是否应该刷新 Cookie</td><td><code>true</code>:需要刷新 Cookie<br><code>false</code>:无需刷新 Cookie</td></tr><tr><td>timestamp</td><td>num</td><td>当前毫秒时间戳</td><td>用于获取 refresh_csrf</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/x/passport-login/web/cookie/info&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;refresh&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;timestamp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1684466082562</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="生成correspondpath算法" tabindex="-1"><a class="header-anchor" href="#生成correspondpath算法"><span>生成CorrespondPath算法</span></a></h2><p>该算法逆向于以下 wasm 以及 JavaScript bind 接口,抓取于官方 Web 首页中,感谢 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/524" target="_blank" rel="noopener noreferrer">#524</a> 提供</p><p>https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_rsa_encrypt_bg.wasm</p><p>https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_ras_umd.js</p><h3 id="算法细节" tabindex="-1"><a class="header-anchor" href="#算法细节"><span>算法细节</span></a></h3><p>将<code>refresh_\${timestamp}</code>作为消息体(参数<code>timestamp</code>为当前毫秒时间戳),用下方 PubKey 进行 <a href="https://datatracker.ietf.org/doc/html/rfc3447#section-7.1" target="_blank" rel="noopener noreferrer">RSA-OAEP</a> 算法加密,之后密文通过小写 Base16 编码为字符串</p><p>JWK 格式:</p><blockquote><p>{ &quot;kty&quot;: &quot;RSA&quot;, &quot;n&quot;: &quot;y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE&quot;, &quot;e&quot;: &quot;AQAB&quot; }</p></blockquote><p>PEM 格式:</p><blockquote><p>-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71 nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40 JNrRuoEUXpabUzGB8QIDAQAB -----END PUBLIC KEY-----</p></blockquote><h3 id="相关demo" tabindex="-1"><a class="header-anchor" href="#相关demo"><span>相关Demo</span></a></h3><p>该 Demo 提供 <a href="#javascript">JavaScript</a> <a href="#python">Python</a> <a href="#kotlin">Kotlin</a> <a href="#java">Java</a> <a href="#go">Go</a> 以及 <a href="#vercel%E4%BA%91%E5%87%BD%E6%95%B0">Vercel 云函数</a>,感谢 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/524" target="_blank" rel="noopener noreferrer">#524</a> 提供</p><h4 id="javascript" tabindex="-1"><a class="header-anchor" href="#javascript"><span>JavaScript</span></a></h4><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-javascript"><span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> publicKey</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">await</span><span style="color:#9CDCFE;"> crypto</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">subtle</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">importKey</span><span style="color:#D4D4D4;">(</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;jwk&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> kty:</span><span style="color:#CE9178;"> &quot;RSA&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> n:</span><span style="color:#CE9178;"> &quot;y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> e:</span><span style="color:#CE9178;"> &quot;AQAB&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> { </span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> &quot;RSA-OAEP&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">hash:</span><span style="color:#CE9178;"> &quot;SHA-256&quot;</span><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;"> [</span><span style="color:#CE9178;">&quot;encrypt&quot;</span><span style="color:#D4D4D4;">],</span></span>
<span class="line"><span style="color:#D4D4D4;">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">async</span><span style="color:#569CD6;"> function</span><span style="color:#DCDCAA;"> getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">timestamp</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> data</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> TextEncoder</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">encode</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">\`refresh_</span><span style="color:#569CD6;">\${</span><span style="color:#9CDCFE;">timestamp</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">\`</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> encrypted</span><span style="color:#D4D4D4;"> = </span><span style="color:#569CD6;">new</span><span style="color:#DCDCAA;"> Uint8Array</span><span style="color:#D4D4D4;">(</span><span style="color:#C586C0;">await</span><span style="color:#9CDCFE;"> crypto</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">subtle</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">encrypt</span><span style="color:#D4D4D4;">({ </span><span style="color:#9CDCFE;">name:</span><span style="color:#CE9178;"> &quot;RSA-OAEP&quot;</span><span style="color:#D4D4D4;"> }, </span><span style="color:#9CDCFE;">publicKey</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">data</span><span style="color:#D4D4D4;">))</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> encrypted</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">reduce</span><span style="color:#D4D4D4;">((</span><span style="color:#9CDCFE;">str</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">=&gt;</span><span style="color:#9CDCFE;"> str</span><span style="color:#D4D4D4;"> + </span><span style="color:#9CDCFE;">c</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">16</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">padStart</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">), </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">const</span><span style="color:#4FC1FF;"> ts</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Date</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">now</span><span style="color:#D4D4D4;">()</span></span>
<span class="line"><span style="color:#9CDCFE;">console</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">log</span><span style="color:#D4D4D4;">(</span><span style="color:#C586C0;">await</span><span style="color:#DCDCAA;"> getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ts</span><span style="color:#D4D4D4;">))</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-text line-numbers-mode" data-highlighter="shiki" data-ext="text" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-text"><span class="line"><span>b77f21ab5b7ce7879c410b2311dd6e7ea1a2cd1cd941073db067f4c3279fdabca3a06dfa744168ee14ad050b9f4889bd4edb8e76eb597fdd18c16804d82566b55c6dba8e225d838aa93d8e5b31cf7c56720db8244d92373f4944e0561f6ca5bf721a36ac079786060fc853605ccd1ddcb33f54617de6aedd44e3b9850d13b45f</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h4 id="python" tabindex="-1"><a class="header-anchor" href="#python"><span>Python</span></a></h4><p>需要<code>pycryptodome</code>依赖</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">from</span><span style="color:#D4D4D4;"> Crypto.Cipher </span><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> PKCS1_OAEP</span></span>
<span class="line"><span style="color:#C586C0;">from</span><span style="color:#D4D4D4;"> Crypto.PublicKey </span><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> RSA</span></span>
<span class="line"><span style="color:#C586C0;">from</span><span style="color:#D4D4D4;"> Crypto.Hash </span><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> SHA256</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> binascii</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> time</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">key = RSA.importKey(</span><span style="color:#CE9178;">&#39;&#39;&#39;</span><span style="color:#569CD6;">\\</span></span>
<span class="line"><span style="color:#CE9178;">-----BEGIN PUBLIC KEY-----</span></span>
<span class="line"><span style="color:#CE9178;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg</span></span>
<span class="line"><span style="color:#CE9178;">Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71</span></span>
<span class="line"><span style="color:#CE9178;">nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40</span></span>
<span class="line"><span style="color:#CE9178;">JNrRuoEUXpabUzGB8QIDAQAB</span></span>
<span class="line"><span style="color:#CE9178;">-----END PUBLIC KEY-----&#39;&#39;&#39;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">def</span><span style="color:#DCDCAA;"> getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ts</span><span style="color:#D4D4D4;">):</span></span>
<span class="line"><span style="color:#D4D4D4;"> cipher = PKCS1_OAEP.new(key, SHA256)</span></span>
<span class="line"><span style="color:#D4D4D4;"> encrypted = cipher.encrypt(</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">&#39;refresh_</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">ts</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">&#39;</span><span style="color:#D4D4D4;">.encode())</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> binascii.b2a_hex(encrypted).decode()</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">ts = </span><span style="color:#DCDCAA;">round</span><span style="color:#D4D4D4;">(time.time() * </span><span style="color:#B5CEA8;">1000</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(getCorrespondPath(ts))</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-text line-numbers-mode" data-highlighter="shiki" data-ext="text" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-text"><span class="line"><span>47bbd615f333d6a2c597bbb46ad47a6e59752a305a2f545d3ba5d49ca055309347796f80d257613696d36170c57443a0e9dea2b47f83b0b4224d431e46124fadd9a24c8fa468147e8bf2d2501eaacae43310e19bf58fc4a728d80c90b9401afcfc1536ba9a2f6438ea53c0b2652f8b8d01c87355dd5a5da51de998b1a35d519a</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="kotlin" tabindex="-1"><a class="header-anchor" href="#kotlin"><span>Kotlin</span></a></h3><div class="language-kotlin line-numbers-mode" data-highlighter="shiki" data-ext="kotlin" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-kotlin"><span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.KeyFactory</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.spec.MGF1ParameterSpec</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.spec.X509EncodedKeySpec</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.util.</span><span style="color:#569CD6;">*</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.Cipher</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.spec.OAEPParameterSpec</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.spec.PSource</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">fun</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">() {</span></span>
<span class="line"><span style="color:#DCDCAA;"> println</span><span style="color:#D4D4D4;">(</span><span style="color:#DCDCAA;">getCorrespondPath</span><span style="color:#D4D4D4;">(System.</span><span style="color:#DCDCAA;">currentTimeMillis</span><span style="color:#D4D4D4;">()))</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">fun</span><span style="color:#DCDCAA;"> getCorrespondPath</span><span style="color:#D4D4D4;">(timestamp: </span><span style="color:#4EC9B0;">Long</span><span style="color:#D4D4D4;">): </span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#569CD6;"> val</span><span style="color:#D4D4D4;"> publicKeyPEM = </span><span style="color:#CE9178;">&quot;&quot;&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> -----BEGIN PUBLIC KEY-----</span></span>
<span class="line"><span style="color:#CE9178;"> MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg</span></span>
<span class="line"><span style="color:#CE9178;"> Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71</span></span>
<span class="line"><span style="color:#CE9178;"> nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40</span></span>
<span class="line"><span style="color:#CE9178;"> JNrRuoEUXpabUzGB8QIDAQAB</span></span>
<span class="line"><span style="color:#CE9178;"> -----END PUBLIC KEY-----</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;&quot;&quot;</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">trimIndent</span><span style="color:#D4D4D4;">()</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> val</span><span style="color:#D4D4D4;"> publicKey = KeyFactory.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;RSA&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">generatePublic</span><span style="color:#D4D4D4;">(</span></span>
<span class="line"><span style="color:#DCDCAA;"> X509EncodedKeySpec</span><span style="color:#D4D4D4;">(Base64.</span><span style="color:#DCDCAA;">getDecoder</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">decode</span><span style="color:#D4D4D4;">(publicKeyPEM</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;-----BEGIN PUBLIC KEY-----&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;-----END PUBLIC KEY-----&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">trim</span><span style="color:#D4D4D4;">()))</span></span>
<span class="line"><span style="color:#D4D4D4;"> )</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> val</span><span style="color:#D4D4D4;"> cipher = Cipher.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;RSA/ECB/OAEPPadding&quot;</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">apply</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#569CD6;"> init</span><span style="color:#D4D4D4;">(Cipher.ENCRYPT_MODE,</span></span>
<span class="line"><span style="color:#D4D4D4;"> publicKey,</span></span>
<span class="line"><span style="color:#DCDCAA;"> OAEPParameterSpec</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;SHA-256&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;MGF1&quot;</span><span style="color:#D4D4D4;">, MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)</span></span>
<span class="line"><span style="color:#D4D4D4;"> )</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#D4D4D4;"> cipher.</span><span style="color:#DCDCAA;">doFinal</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;refresh_</span><span style="color:#9CDCFE;">$timestamp</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">toByteArray</span><span style="color:#D4D4D4;">()).</span><span style="color:#DCDCAA;">joinToString</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">) { </span><span style="color:#CE9178;">&quot;%02x&quot;</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">format</span><span style="color:#D4D4D4;">(it) }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-text line-numbers-mode" data-highlighter="shiki" data-ext="text" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-text"><span class="line"><span>1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="go" tabindex="-1"><a class="header-anchor" href="#go"><span>Go</span></a></h3><div class="language-go line-numbers-mode" data-highlighter="shiki" data-ext="go" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-go"><span class="line"><span style="color:#569CD6;">package</span><span style="color:#4EC9B0;"> main</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> (</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;crypto/rand&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;crypto/rsa&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;crypto/sha256&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;crypto/x509&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;encoding/hex&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;encoding/pem&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;fmt&quot;</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;time&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">func</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">() {</span></span>
<span class="line"><span style="color:#9CDCFE;"> result</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">err</span><span style="color:#D4D4D4;"> := </span><span style="color:#DCDCAA;">getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">time</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Now</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">UnixMilli</span><span style="color:#D4D4D4;">())</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#9CDCFE;"> err</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">nil</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#DCDCAA;"> panic</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">err</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#9CDCFE;"> fmt</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Println</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">result</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">func</span><span style="color:#DCDCAA;"> getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">ts</span><span style="color:#4EC9B0;"> int64</span><span style="color:#D4D4D4;">) (</span><span style="color:#4EC9B0;">string</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">error</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#569CD6;"> const</span><span style="color:#4FC1FF;"> publicKeyPEM</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">\`</span></span>
<span class="line"><span style="color:#CE9178;">-----BEGIN PUBLIC KEY-----</span></span>
<span class="line"><span style="color:#CE9178;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg</span></span>
<span class="line"><span style="color:#CE9178;">Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71</span></span>
<span class="line"><span style="color:#CE9178;">nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40</span></span>
<span class="line"><span style="color:#CE9178;">JNrRuoEUXpabUzGB8QIDAQAB</span></span>
<span class="line"><span style="color:#CE9178;">-----END PUBLIC KEY-----</span></span>
<span class="line"><span style="color:#CE9178;">\`</span></span>
<span class="line"><span style="color:#9CDCFE;"> pubKeyBlock</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">_</span><span style="color:#D4D4D4;"> := </span><span style="color:#9CDCFE;">pem</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Decode</span><span style="color:#D4D4D4;">([]</span><span style="color:#4EC9B0;">byte</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">publicKeyPEM</span><span style="color:#D4D4D4;">))</span></span>
<span class="line"><span style="color:#9CDCFE;"> hash</span><span style="color:#D4D4D4;"> := </span><span style="color:#9CDCFE;">sha256</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">New</span><span style="color:#D4D4D4;">()</span></span>
<span class="line"><span style="color:#9CDCFE;"> random</span><span style="color:#D4D4D4;"> := </span><span style="color:#9CDCFE;">rand</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Reader</span></span>
<span class="line"><span style="color:#9CDCFE;"> msg</span><span style="color:#D4D4D4;"> := []</span><span style="color:#4EC9B0;">byte</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">fmt</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">Sprintf</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;refresh_</span><span style="color:#9CDCFE;">%d</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">ts</span><span style="color:#D4D4D4;">))</span></span>
<span class="line"><span style="color:#569CD6;"> var</span><span style="color:#9CDCFE;"> pub</span><span style="color:#D4D4D4;"> *</span><span style="color:#4EC9B0;">rsa</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">PublicKey</span></span>
<span class="line"><span style="color:#9CDCFE;"> pubInterface</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">parseErr</span><span style="color:#D4D4D4;"> := </span><span style="color:#9CDCFE;">x509</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">ParsePKIXPublicKey</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">pubKeyBlock</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">Bytes</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#9CDCFE;"> parseErr</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">nil</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#CE9178;"> &quot;&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">parseErr</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#9CDCFE;"> pub</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">pubInterface</span><span style="color:#D4D4D4;">.(*</span><span style="color:#4EC9B0;">rsa</span><span style="color:#D4D4D4;">.</span><span style="color:#4EC9B0;">PublicKey</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#9CDCFE;"> encryptedData</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">encryptErr</span><span style="color:#D4D4D4;"> := </span><span style="color:#9CDCFE;">rsa</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">EncryptOAEP</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">hash</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">random</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">pub</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">msg</span><span style="color:#D4D4D4;">, </span><span style="color:#569CD6;">nil</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#9CDCFE;"> encryptErr</span><span style="color:#D4D4D4;"> != </span><span style="color:#569CD6;">nil</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#CE9178;"> &quot;&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">encryptErr</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#9CDCFE;"> hex</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">EncodeToString</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">encryptedData</span><span style="color:#D4D4D4;">), </span><span style="color:#569CD6;">nil</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-text line-numbers-mode" data-highlighter="shiki" data-ext="text" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-text"><span class="line"><span>97759947aa357ed5d88cf9bf1172737570b7bba2d6788d39006f082b2b25ddf53b581f1f0c61ed8573317485ef525d2789faa25a277b4602a4b9cbf837681093a03e96cb9773a11df4bb1e20f1587180b3e958194de922d7dd94d0a2f0b9b0ef74e426e8041f99b99e7c02407ef4ab38040e61be81e4fdfbdb73461e3a2ad810</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="java" tabindex="-1"><a class="header-anchor" href="#java"><span>Java</span></a></h3><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-java"><span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.Cipher;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.spec.OAEPParameterSpec;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.spec.PSource;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.math.BigInteger;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.KeyFactory;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.PublicKey;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.spec.MGF1ParameterSpec;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.spec.X509EncodedKeySpec;</span></span>
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.util.Base64;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> CookieRefresh</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#569CD6;"> private</span><span style="color:#569CD6;"> static</span><span style="color:#569CD6;"> final</span><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> PUBLIC_KEY</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">&quot;-----BEGIN PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;"> +</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;"> +</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;"> +</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;"> +</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;JNrRuoEUXpabUzGB8QIDAQAB</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;"> +</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;-----END PUBLIC KEY-----&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> void</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#C586C0;"> try</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> correspondPath</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">String</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">format</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;refresh_%d&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">System</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">currentTimeMillis</span><span style="color:#D4D4D4;">()), PUBLIC_KEY);</span></span>
<span class="line"><span style="color:#9CDCFE;"> System</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">out</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">println</span><span style="color:#D4D4D4;">(correspondPath);</span></span>
<span class="line"><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">catch</span><span style="color:#D4D4D4;"> (</span><span style="color:#4EC9B0;">Exception</span><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">) {</span></span>
<span class="line"><span style="color:#9CDCFE;"> e</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">printStackTrace</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> String</span><span style="color:#DCDCAA;"> getCorrespondPath</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#9CDCFE;"> plaintext</span><span style="color:#D4D4D4;">, </span><span style="color:#4EC9B0;">String</span><span style="color:#9CDCFE;"> publicKeyStr</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">throws</span><span style="color:#4EC9B0;"> Exception</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#4EC9B0;"> KeyFactory</span><span style="color:#9CDCFE;"> keyFactory</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">KeyFactory</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;RSA&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> publicKeyStr = publicKeyStr</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;-----BEGIN PUBLIC KEY-----&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;-----END PUBLIC KEY-----&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">replace</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">trim</span><span style="color:#D4D4D4;">();</span></span>
<span class="line"><span style="color:#4EC9B0;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">publicBytes</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Base64</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getDecoder</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">decode</span><span style="color:#D4D4D4;">(publicKeyStr);</span></span>
<span class="line"><span style="color:#4EC9B0;"> X509EncodedKeySpec</span><span style="color:#9CDCFE;"> x509EncodedKeySpec</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> X509EncodedKeySpec</span><span style="color:#D4D4D4;">(publicBytes);</span></span>
<span class="line"><span style="color:#4EC9B0;"> PublicKey</span><span style="color:#9CDCFE;"> publicKey</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">keyFactory</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">generatePublic</span><span style="color:#D4D4D4;">(x509EncodedKeySpec);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> algorithm</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">&quot;RSA/ECB/OAEPPadding&quot;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#4EC9B0;"> Cipher</span><span style="color:#9CDCFE;"> cipher</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(algorithm);</span></span>
<span class="line"><span style="color:#9CDCFE;"> cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">init</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ENCRYPT_MODE</span><span style="color:#D4D4D4;">, publicKey);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> // Encode the plaintext to bytes</span></span>
<span class="line"><span style="color:#4EC9B0;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">plaintextBytes</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">plaintext</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getBytes</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;UTF-8&quot;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;"> // Add OAEP padding to the plaintext bytes</span></span>
<span class="line"><span style="color:#4EC9B0;"> OAEPParameterSpec</span><span style="color:#9CDCFE;"> oaepParams</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> OAEPParameterSpec</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;SHA-256&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;MGF1&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">MGF1ParameterSpec</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">SHA256</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">PSource</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">PSpecified</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">DEFAULT</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">init</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">ENCRYPT_MODE</span><span style="color:#D4D4D4;">, publicKey, oaepParams);</span></span>
<span class="line"><span style="color:#6A9955;"> // Encrypt the padded plaintext bytes</span></span>
<span class="line"><span style="color:#4EC9B0;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">encryptedBytes</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">doFinal</span><span style="color:#D4D4D4;">(plaintextBytes);</span></span>
<span class="line"><span style="color:#6A9955;"> // Convert the encrypted bytes to a Base64-encoded string</span></span>
<span class="line"><span style="color:#C586C0;"> return</span><span style="color:#C586C0;"> new</span><span style="color:#DCDCAA;"> BigInteger</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">, encryptedBytes).</span><span style="color:#DCDCAA;">toString</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">16</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-text line-numbers-mode" data-highlighter="shiki" data-ext="text" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-text"><span class="line"><span>f87666152da692735123f4e49053e5a98c16854673b2e632f31a3ff0c029640772873661a9a8412db6be447a0bfa03a295d15548cbfd2bb35634e98ba5f25b1205519d6e6119b483f4c516c1e106d45b04ff98c73560949d379d3edaf3c0ecd10a1d46134fb9ca443122ab33c16d1dd48280496f949ed960a2fbcd65f10935e</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h4 id="vercel云函数" tabindex="-1"><a class="header-anchor" href="#vercel云函数"><span>vercel云函数</span></a></h4><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://wasm-rsa.vercel.app/api/rsa&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &quot;t=$((\`</span><span style="color:#DCDCAA;">date</span><span style="color:#CE9178;"> &#39;+%s&#39;\`</span><span style="color:#D4D4D4;">*</span><span style="color:#CE9178;">1000+\`</span><span style="color:#DCDCAA;">date</span><span style="color:#CE9178;"> &#39;+%N&#39;\`</span><span style="color:#DCDCAA;">/1000000</span><span style="color:#CE9178;">))&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;timestamp&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;1684468084078&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;a768efe5114ef8610f9ed9ebc28c00827375f4a3448ec4ab17958cacc4fde9898e5b7aa27f649426bba1acae4aa222aafaff7d528669b15249de0b2b60d86618557d8dc90684db4ec68e8d98e41d94f1c97d1d431c288e595ceb522d033822442a9e1ee150b32771a83fbf65c13329e9fda080fbe3bc85c49c1de7ab148d228f&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="获取refresh-csrf" tabindex="-1"><a class="header-anchor" href="#获取refresh-csrf"><span>获取refresh_csrf</span></a></h2><blockquote><p>https://www.bilibili.com/correspond/1/{correspondPath}</p></blockquote><p><em>请求方式GET</em></p><p>鉴权方式Cookie</p><p><strong>path 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>correspondPath</td><td>str</td><td>使用当前毫秒时间戳生成的签名</td><td>必要</td><td>由 <a href="#%E7%94%9F%E6%88%90CorrespondPath%E7%AE%97%E6%B3%95">生成CorrespondPath算法</a> 加密获得</td></tr></tbody></table><p>将参数<code>correspondPath</code>拼接在 https://www.bilibili.com/correspond/1/ 后进行请求,例如</p><blockquote><p>https://www.bilibili.com/correspond/1/0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95</p></blockquote><p>请求该 url 会返回一个 html 页面,通常由 iframe 方式加载,它通过 SSR 方式返回一个实时刷新口令<code>refresh_csrf</code>存放于 html 标签中,并在 Client 端通过 js 请求 RestAPI 完成一些列的提交刷新、确认、SSO 站点登录等操作</p><p>若参数<code>correspondPath</code>错误或过期,则返回一个 404 Page</p><p>以下为返回的参数:</p><table><thead><tr><th>标签 id</th><th>内容</th><th>xpath</th><th>备注</th></tr></thead><tbody><tr><td>1-name</td><td>refresh_csrf</td><td>//div[id=&#39;1-name&#39;]/text()</td><td>实时刷新口令<br>用于更新 Cookie</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#9CDCFE;">correspondPath</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&#39;0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95&#39;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &quot;https://www.bilibili.com/correspond/1/</span><span style="color:#9CDCFE;">$correspondPath</span><span style="color:#CE9178;">&quot;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-html"><span class="line"><span style="color:#808080;">&lt;!</span><span style="color:#569CD6;">DOCTYPE</span><span style="color:#9CDCFE;"> html</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">html</span><span style="color:#9CDCFE;"> lang</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;zh-Hans&quot;</span><span style="color:#808080;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">head</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">meta</span><span style="color:#9CDCFE;"> name</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;spm_prefix&quot;</span><span style="color:#9CDCFE;"> content</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;333.1193&quot;</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">link</span></span>
<span class="line"><span style="color:#9CDCFE;"> href</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;//s1.hdslb.com/bfs/static/jinkela/token-iframe/css/token-iframe.1.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.css&quot;</span></span>
<span class="line"><span style="color:#9CDCFE;"> rel</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;stylesheet&quot;</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">head</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">title</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">Correspond</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">title</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;text/javascript&quot;</span></span>
<span class="line"><span style="color:#9CDCFE;"> src</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;//www.bilibili.com/gentleman/polyfill.js?features=Promise%2CObject.assign%2CString.prototype.includes%2CNumber.isNaN2%CglobalThis&quot;</span><span style="color:#808080;">&gt;&lt;/</span><span style="color:#569CD6;">script</span><span style="color:#808080;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">body</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> id</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;1-name&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">b0cc8411ded2f9db2cff2edb3123acac</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">div</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">div</span><span style="color:#9CDCFE;"> id</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;token-iframe-app&quot;</span><span style="color:#808080;">&gt;&lt;/</span><span style="color:#569CD6;">div</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;text/javascript&quot;</span></span>
<span class="line"><span style="color:#9CDCFE;"> src</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;//s1.hdslb.com/bfs/static/jinkela/token-iframe/2.token-iframe.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.js&quot;</span><span style="color:#808080;">&gt;&lt;/</span><span style="color:#569CD6;">script</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;text/javascript&quot;</span></span>
<span class="line"><span style="color:#9CDCFE;"> src</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;//s1.hdslb.com/bfs/static/jinkela/token-iframe/token-iframe.a035e81c3bee5fa1a05633ad534ad1f44b05e54d.js&quot;</span><span style="color:#808080;">&gt;&lt;/</span><span style="color:#569CD6;">script</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">body</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">script</span><span style="color:#9CDCFE;"> type</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;text/javascript&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#9CDCFE;">window</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">reportMsgObj</span><span style="color:#D4D4D4;"> = {};</span></span>
<span class="line"><span style="color:#9CDCFE;"> window</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">reportConfig</span><span style="color:#D4D4D4;"> = {</span></span>
<span class="line"><span style="color:#9CDCFE;"> sample:</span><span style="color:#B5CEA8;"> 1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> scrollTracker:</span><span style="color:#569CD6;"> true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> msgObjects:</span><span style="color:#CE9178;"> &#39;reportMsgObj&#39;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#D4D4D4;"> };</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6;"> let</span><span style="color:#9CDCFE;"> reportScript</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">document</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">createElement</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;script&#39;</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#9CDCFE;"> reportScript</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">src</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">&#39;//s1.hdslb.com/bfs/seed/log/report/log-reporter.js&#39;</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#9CDCFE;"> document</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getElementsByTagName</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&#39;body&#39;</span><span style="color:#D4D4D4;">)[</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">].</span><span style="color:#DCDCAA;">appendChild</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">reportScript</span><span style="color:#D4D4D4;">);</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">script</span><span style="color:#808080;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">html</span><span style="color:#808080;">&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>所以当前账号的实时刷新口令<code>refresh_csrf</code>为<code>b0cc8411ded2f9db2cff2edb3123acac</code></p><h2 id="刷新cookie" tabindex="-1"><a class="header-anchor" href="#刷新cookie"><span>刷新Cookie</span></a></h2><blockquote><p>https://passport.bilibili.com/x/passport-login/web/cookie/refresh</p></blockquote><p><em>请求方式POST</em></p><p>鉴权方式Cookie</p><p>刷新成功后会设置以下 Cookie 项:</p><p><code>sid</code>、<code>DedeUserID</code>、<code>DedeUserID__ckMd5</code>、<code>SESSDATA</code>、<code>bili_jct</code></p><p><strong>正文参数 (application/x-www-form-urlencoded)或 url 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>CSRF Token</td><td>必要</td><td>位于 Cookie 中的<code>bili_jct</code>字段</td></tr><tr><td>refresh_csrf</td><td>str</td><td>实时刷新口令</td><td>必要</td><td>通过 <a href="#%E8%8E%B7%E5%8F%96refresh_csrf">获取refresh_csrf</a> 获得</td></tr><tr><td>source</td><td>str</td><td>访问来源?</td><td>必要</td><td>一般为<code>main_web</code></td></tr><tr><td>refresh_token</td><td>str</td><td>持久化刷新口令</td><td>必要</td><td>localStorage 中的<code>ac_time_value</code>字段,在登录成功后返回并保存</td></tr></tbody></table><p><strong>json 回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>86095refresh_csrf 错误或 refresh_token 与 cookie 不匹配</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>status</td><td>num</td><td>0</td><td></td></tr><tr><td>message</td><td>str</td><td>空</td><td></td></tr><tr><td>refresh_token</td><td>str</td><td>新的持久化刷新口令</td><td>将存储于 localStorage 中的<code>ac_time_value</code>字段,以便下次使用</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -i</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/x/passport-login/web/cookie/refresh&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=f610640a37f51f6266f6b83cfc5eedbb&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;refresh_csrf=b0cc8411ded2f9db2cff2edb3123acac&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;source=main_web&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;refresh_token=45240a041836905fe953e3b98b83d751&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><p>http 响应(关键信息已做脱敏处理):</p><div class="language-http line-numbers-mode" data-highlighter="shiki" data-ext="http" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-http"><span class="line"><span style="color:#D4D4D4;">HTTP/2 </span><span style="color:#B5CEA8;">200</span></span>
<span class="line"><span style="color:#569CD6;">date:</span><span style="color:#CE9178;"> Fri, 19 May 2023 07:34:11 GMT</span></span>
<span class="line"><span style="color:#569CD6;">content-type:</span><span style="color:#CE9178;"> application/json; charset=utf-8</span></span>
<span class="line"><span style="color:#569CD6;">content-length:</span><span style="color:#CE9178;"> 116</span></span>
<span class="line"><span style="color:#569CD6;">bili-status-code:</span><span style="color:#CE9178;"> 0</span></span>
<span class="line"><span style="color:#569CD6;">bili-trace-id:</span><span style="color:#CE9178;"> 17f4251365646726</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> SESSDATA=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT; HttpOnly; Secure</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> bili_jct=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> DedeUserID=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> DedeUserID__ckMd5=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT</span></span>
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> sid=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT</span></span>
<span class="line"><span style="color:#569CD6;">x-bili-trace-id:</span><span style="color:#CE9178;"> 3f6f6174aaa087b517f4251365646726</span></span>
<span class="line"><span style="color:#569CD6;">expires:</span><span style="color:#CE9178;"> Fri, 19 May 2023 07:34:10 GMT</span></span>
<span class="line"><span style="color:#569CD6;">cache-control:</span><span style="color:#CE9178;"> no-cache</span></span>
<span class="line"><span style="color:#569CD6;">x-cache-webcdn:</span><span style="color:#CE9178;"> BYPASS from blzone03</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">{</span><span style="color:#9CDCFE;">&quot;code&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span><span style="color:#9CDCFE;">&quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span><span style="color:#9CDCFE;">&quot;ttl&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span><span style="color:#9CDCFE;">&quot;data&quot;</span><span style="color:#D4D4D4;">:{</span><span style="color:#9CDCFE;">&quot;status&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span><span style="color:#9CDCFE;">&quot;message&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span><span style="color:#9CDCFE;">&quot;refresh_token&quot;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&quot;ae1bd1149b56af9743ffe7bbbeff3e51&quot;</span><span style="color:#D4D4D4;">}}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>JSON Payload</p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;refresh_token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;ae1bd1149b56af9743ffe7bbbeff3e51&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="确认更新" tabindex="-1"><a class="header-anchor" href="#确认更新"><span>确认更新</span></a></h2><blockquote><p>https://passport.bilibili.com/x/passport-login/web/confirm/refresh</p></blockquote><p><em>请求方式POST</em></p><p>鉴权方式Cookie</p><p>该步操作将让旧的<code>refresh_token</code>对应的 Cookie 失效</p><p><strong>正文参数 (application/x-www-form-urlencoded)或 url 参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>csrf</td><td>str</td><td>CSRF Token位于 cookie</td><td>必要</td><td>从新的 cookie 中获取,位于 Cookie 中的<code>bili_jct</code>字段</td></tr><tr><td>refresh_token</td><td>str</td><td>旧的持久化刷新口令</td><td>必要</td><td>在刷新前 localStorage 中的<code>ac_time_value</code>获取,<strong>并非刷新后返回的值</strong></td></tr></tbody></table><p><strong>json 回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>-111csrf 校验失败<br>-400请求错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-bash"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/x/passport-login/web/confirm/refresh&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;csrf=1e9658858e6da76be64bd92cdc0fa324&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> --data-urlencode</span><span style="color:#CE9178;"> &#39;refresh_token=45240a041836905fe953e3b98b83d751&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#569CD6;"> -b</span><span style="color:#CE9178;"> &#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,96)]))}const r=n(o,[["render",p]]),i=JSON.parse('{"path":"/docs/login/cookie_refresh.html","title":"Web端Cookie刷新","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1726759053000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":3,"url":"https://github.com/SocialSisterYi"},{"name":"whiter","username":"whiter","email":"whiterasbk@qq.com","commits":1,"url":"https://github.com/whiter"},{"name":"cqrect","username":"cqrect","email":"136703144+cqrect@users.noreply.github.com","commits":1,"url":"https://github.com/cqrect"},{"name":"lb-chc","username":"lb-chc","email":"69136546+lb-chc@users.noreply.github.com","commits":2,"url":"https://github.com/lb-chc"},{"name":"DannyDu26","username":"DannyDu26","email":"50359598+DannyDu26@users.noreply.github.com","commits":1,"url":"https://github.com/DannyDu26"},{"name":"Duyulin","username":"Duyulin","email":"duyulin@kingsoft.com","commits":1,"url":"https://github.com/Duyulin"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"1e24c6b1889160c4c35c01416aa4239501accf5f","time":1726759053000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"调整部分接口描述与错误修复 (#1088)","coAuthors":[{"name":"社会易姐QwQ","email":"45892418+SocialSisterYi@users.noreply.github.com"}]},{"hash":"e6dc29ec338003ce0e9d8fb2ef1c6b205ebc0556","time":1716012631000,"email":"50359598+DannyDu26@users.noreply.github.com","author":"Danny Du","message":"feat: cookie刷新生成CorrespondPath算法添加java代码实现 (#1017)","coAuthors":[{"name":"Duyulin","email":"duyulin@kingsoft.com"}]},{"hash":"e6f1e7829d3eebb5011f4d6a1e798e9db7e135ef","time":1705727483000,"email":"69136546+lb-chc@users.noreply.github.com","author":"lb-chc","message":"csrf token 就是 bili_jct (#939)"},{"hash":"ad246446b099aec92db86c2b0a3ea06df329d439","time":1704754997000,"email":"69136546+lb-chc@users.noreply.github.com","author":"lb-chc","message":"使说明更易懂 (#930)"},{"hash":"2dad8999a1c33e374d36133ed2fbb02515bc018e","time":1700194660000,"email":"136703144+cqrect@users.noreply.github.com","author":"cqrect","message":"添加了生成CorrespondPath算法的Go实现 (#860)"},{"hash":"09fe412ec7ce547fbcc5c70833b36170904ad535","time":1692145066000,"email":"whiterasbk@qq.com","author":"whiter","message":"添加了生成CorrespondPath算法的kotlin实现 (#786)"},{"hash":"cefb7e7c403b2a2ee24ac55d628e3dc67c97a2a6","time":1684511359000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"fix typo"},{"hash":"a46f140fde73530868ce9db5f613deed8d5c645e","time":1684483688000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"add【web端Cookie刷新】APIDoc"}]},"filePathRelative":"docs/login/cookie_refresh.md"}');export{r as comp,i as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,21 @@
import{_ as l,c as o,b as e,a as t,d as a,e as p,w as c,r,o as d}from"./app-Dgsdh8A6.js";const i={};function D(y,s){const n=r("RouteLink");return d(),o("div",null,[s[3]||(s[3]=e("h1",{id:"设备各类标识算法-app-端",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#设备各类标识算法-app-端"},[e("span",null,"设备各类标识算法(APP 端)")])],-1)),s[4]||(s[4]=e("h2",{id:"设备唯一标识-buvid",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#设备唯一标识-buvid"},[e("span",null,"设备唯一标识 BUVID")])],-1)),e("p",null,[s[1]||(s[1]=a("注意区分于 Web 端的 ")),p(n,{to:"/docs/misc/buvid3_4.html"},{default:c(()=>s[0]||(s[0]=[a("buvid3, buvid4")])),_:1,__:[0]}),s[2]||(s[2]=a("."))]),s[5]||(s[5]=t(`<p>BUVID 在 APP 首次安装于某设备, 且首次启动时生成.</p><p>APP 首次(即每次安装后)启动, 会向云端发送本机各类设备特征, 含 <code>AndroidId</code>, <code>DrmId</code> 等, 请求是否有匹配的 BUVID, 有就使用云端的, 否则使用本地生成的.</p><p>APP 请求是否有匹配的 BUVID 发送的本机各类设备特征包括(但不限于):</p><ul><li><code>AndroidID</code></li><li><code>DrmId</code></li><li><code>IMEI</code></li><li><code>OAID</code></li><li>手机网卡 <code>MAC</code></li><li>设备品牌</li><li>设备 Model</li><li>本地生成的 BUVID</li></ul><h3 id="生成方法" tabindex="-1"><a class="header-anchor" href="#生成方法"><span>生成方法</span></a></h3><ol><li><p>选定设备特征码, 可以是 <code>AndroidID</code>, <code>DrmId</code>, 手机网卡 <code>MAC</code> 等. 记为 <code>ID</code>. 特别地, <code>MAC</code> 应当去掉 <code>:</code>, <code>GUID</code>(即 UUID) 应当去掉 <code>-</code>.</p></li><li><p>计算 <code>ID</code> 的 MD5. 记为 <code>ID_MD5</code>.</p></li><li><p>从 <code>ID_MD5</code> 抽取第 3, 13, 23 位, 失败就默认为 000, 记为 <code>ID_E</code>.</p></li><li><p>根据选定的设备特征码类型确定 BUVID Prefix, 见附录. 记为 <code>BUVID_Prefix</code>.</p></li><li><p>按 <code>{BUVID_Prefix}{ID_E}{ID_MD5}</code> 的顺序连接起来, 共37位(2+3+32). 结果应当为大写.</p></li></ol><h3 id="demo" tabindex="-1"><a class="header-anchor" href="#demo"><span>Demo</span></a></h3><h4 id="rust" tabindex="-1"><a class="header-anchor" href="#rust"><span>Rust</span></a></h4><p>代码及测试样例见 <a href="https://play.rust-lang.org/?version=stable&amp;mode=debug&amp;edition=2021&amp;gist=40b5906cf3838a60efa83fa368b15147" target="_blank" rel="noopener noreferrer">Rust Playground</a>.</p><h2 id="设备指纹-fp-fp-local-fp-remote" tabindex="-1"><a class="header-anchor" href="#设备指纹-fp-fp-local-fp-remote"><span>设备指纹 fp (fp_local, fp_remote)</span></a></h2><p>用于请求账户相关 REST API, 及 gRPC Metadata 生成.</p><p>在请求头中, <code>fp_local</code> 和 <code>fp_remote</code> 设置为同一值即可, 暂不清楚区别.</p><h3 id="生成方法-1" tabindex="-1"><a class="header-anchor" href="#生成方法-1"><span>生成方法</span></a></h3><ol><li><p>获取 BUVID. 此处一般使用 XU Prefix 的 BUVID.</p></li><li><p>获取设备 Model(<code>Build.MODEL</code>), 如 <code>NOH-AN01</code>.</p></li><li><p>获取手机无线电固件版本号(<code>Build.getRadioVersion()</code>), 失败则留空. 如 <code>21C20B686S000C000,21C20B686S000C000</code>.</p></li><li><p>按前述顺序拼接字符串, 计算得 MD5.</p></li><li><p>获取年月日, 格式 <code>yyyyMMddhhmmss</code>, 拼接到 4 得到的字符串后.</p></li><li><p>生成 16 位随机字符串, CharSet 为 <code>0123456789abcdef</code>, 拼接到 5 得到的字符串后, 记为 <code>fp_raw</code>.</p></li><li><p>计算得到一个特殊字符串, 拼接到 <code>fp_raw</code> 后, 即得到最终的 <code>fp</code>, 特殊字符串算法见下:</p></li></ol><div class="language-rust line-numbers-mode" data-highlighter="shiki" data-ext="rust" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-rust"><span class="line"><span style="color:#569CD6;">let</span><span style="color:#569CD6;"> mut</span><span style="color:#9CDCFE;"> veri_code</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#6A9955;">// 有点像 HEX 的操作</span></span>
<span class="line"><span style="color:#569CD6;">let</span><span style="color:#9CDCFE;"> fp_raw_sub_str</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">fp_raw</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">as_bytes</span><span style="color:#D4D4D4;">() </span><span style="color:#6A9955;">// 将字符串 fp_raw 转换为字节数组</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">chunks</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">) </span><span style="color:#6A9955;">// 按每两个字节一组进行切分</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">map</span><span style="color:#D4D4D4;">(|</span><span style="color:#9CDCFE;">s</span><span style="color:#D4D4D4;">| </span><span style="color:#569CD6;">unsafe</span><span style="color:#D4D4D4;"> { ::</span><span style="color:#4EC9B0;">std</span><span style="color:#D4D4D4;">::</span><span style="color:#4EC9B0;">str</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">from_utf8_unchecked</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">s</span><span style="color:#D4D4D4;">) }) </span><span style="color:#6A9955;">// 对每一组解析作为 UTF-8 字符串</span></span>
<span class="line"><span style="color:#D4D4D4;"> .</span><span style="color:#DCDCAA;">collect</span><span style="color:#D4D4D4;">::&lt;</span><span style="color:#4EC9B0;">Vec</span><span style="color:#D4D4D4;">&lt;</span><span style="color:#9CDCFE;">_</span><span style="color:#D4D4D4;">&gt;&gt;(); </span><span style="color:#6A9955;">// 将结果收集到 Vec 中</span></span>
<span class="line"><span style="color:#6A9955;">// 如果 fp_raw 的长度小于 62, 则向下取偶数减半作为循环终止条件, 否则终止条件为31</span></span>
<span class="line"><span style="color:#C586C0;">for</span><span style="color:#9CDCFE;"> i</span><span style="color:#569CD6;"> in</span><span style="color:#B5CEA8;"> 0</span><span style="color:#D4D4D4;">..({</span></span>
<span class="line"><span style="color:#C586C0;"> if</span><span style="color:#9CDCFE;"> fp_raw</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">len</span><span style="color:#D4D4D4;">() &lt; </span><span style="color:#B5CEA8;">62</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> fp_raw</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">len</span><span style="color:#D4D4D4;">() - </span><span style="color:#9CDCFE;">fp_raw</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">len</span><span style="color:#D4D4D4;">() % </span><span style="color:#B5CEA8;">2</span><span style="color:#6A9955;"> // 取偶数</span></span>
<span class="line"><span style="color:#D4D4D4;"> } </span><span style="color:#C586C0;">else</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#B5CEA8;"> 62</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">} / </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">)</span></span>
<span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#6A9955;"> // 将每组字符串转换为对应的 16 进制整数, 将转换得到的整数加到 veri_code 上. </span></span>
<span class="line"><span style="color:#9CDCFE;"> veri_code</span><span style="color:#D4D4D4;"> += </span><span style="color:#4EC9B0;">i32</span><span style="color:#D4D4D4;">::</span><span style="color:#DCDCAA;">from_str_radix</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">fp_raw_sub_str</span><span style="color:#D4D4D4;">[</span><span style="color:#9CDCFE;">i</span><span style="color:#D4D4D4;">], </span><span style="color:#B5CEA8;">16</span><span style="color:#D4D4D4;">).</span><span style="color:#DCDCAA;">unwrap_or</span><span style="color:#D4D4D4;">(</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">);</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"><span style="color:#6A9955;">// 最后将 veri_code 对 256 取余, 格式化为两位的 16 进制字符串</span></span>
<span class="line"><span style="color:#569CD6;">let</span><span style="color:#9CDCFE;"> veri_code</span><span style="color:#D4D4D4;"> = </span><span style="color:#DCDCAA;">format!</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">&quot;{:0&gt;2x}&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#9CDCFE;">veri_code</span><span style="color:#D4D4D4;"> % </span><span style="color:#B5CEA8;">256</span><span style="color:#D4D4D4;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="demo-1" tabindex="-1"><a class="header-anchor" href="#demo-1"><span>Demo</span></a></h3><h4 id="rust-1" tabindex="-1"><a class="header-anchor" href="#rust-1"><span>Rust</span></a></h4><p>代码及测试样例见 <a href="https://play.rust-lang.org/?version=stable&amp;mode=debug&amp;edition=2021&amp;gist=40b5906cf3838a60efa83fa368b15147" target="_blank" rel="noopener noreferrer">Rust Playground</a>.</p><h2 id="附录" tabindex="-1"><a class="header-anchor" href="#附录"><span>附录</span></a></h2><h3 id="buvid-prefix" tabindex="-1"><a class="header-anchor" href="#buvid-prefix"><span>BUVID Prefix</span></a></h3><table><thead><tr><th style="text-align:center;">设备特征码</th><th style="text-align:center;">BUVID Prefix</th><th style="text-align:center;">备注</th></tr></thead><tbody><tr><td style="text-align:center;"><code>AndroidID</code></td><td style="text-align:center;"><code>XX</code></td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><code>DrmId</code></td><td style="text-align:center;"><code>XU</code></td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><code>IMEI</code></td><td style="text-align:center;"><code>XZ</code></td><td style="text-align:center;">已弃用</td></tr><tr><td style="text-align:center;"><code>GUID</code></td><td style="text-align:center;"><code>XW</code></td><td style="text-align:center;">已弃用</td></tr><tr><td style="text-align:center;"><code>MAC</code></td><td style="text-align:center;"><code>XY</code></td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><code>GoogleId</code></td><td style="text-align:center;"><code>XG</code></td><td style="text-align:center;">东南亚版本</td></tr><tr><td style="text-align:center;"><code>FacebookId</code></td><td style="text-align:center;"><code>XF</code></td><td style="text-align:center;">东南亚版本</td></tr></tbody></table>`,21))])}const m=l(i,[["render",D]]),C=JSON.parse('{"path":"/docs/misc/device_identity.html","title":"设备各类标识算法(APP 端)","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1721909032000,"contributors":[{"name":"cxw620","username":"cxw620","email":"70561268+cxw620@users.noreply.github.com","commits":1,"url":"https://github.com/cxw620"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"18c1efbc102ae6b44c8f5314c90e5e64f0d926cd","time":1721909032000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: bili_ticket 算法 Java 实现 及 信息补充 及 错误修正 (#1061)"},{"hash":"f5263d04570c9dcd1d1554a0c67651c532fe1b6a","time":1689310001000,"email":"70561268+cxw620@users.noreply.github.com","author":"陈寒彤","message":"add grpc docs (#741)"}]},"filePathRelative":"docs/misc/device_identity.md"}');export{m as comp,C as data};

View File

@@ -0,0 +1 @@
const c="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20fill='%231497C7'%20d='M512,0C366.7,3.3,245.8,53.2,149.5,149.5S3.3,366.7,0,512c3.3,145.3,53.2,266.2,149.5,362.5%20S366.7,1020.7,512,1024c145.3-3.3,266.2-53.2,362.5-149.5S1020.7,657.3,1024,512c-3.3-145.3-53.2-266.2-149.5-362.5S657.3,3.3,512,0%20z%20M326,463c4-4,8.7-6,14-6h81V311c0-10.7,7.3-18,18-18h146c10.7,0,18,7.3,18,18v146h81c17.3,1.3,23.7,20,13,32L524,647%20c-6.7,6.7-17.3,6.7-24,0L327,489C320.3,482.3,319.3,471,326,463z%20M713,731c0,10.7-8.7,19-18,19H329c-9.3,0-18-8.3-18-19v-36%20c0-10.7,7.3-18,18-18h366c10.7,0,18,7.3,18,18V731z'/%3e%3c/svg%3e";export{c as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as d,c as r,a as e,o as a}from"./app-Dgsdh8A6.js";const i={};function c(s,t){return a(),r("div",null,t[0]||(t[0]=[e('<h1 id="公共错误码" tabindex="-1"><a class="header-anchor" href="#公共错误码"><span>公共错误码</span></a></h1><p>下表为大部分接口返回值中<code>code</code>字段值中公共的错误代码</p><h2 id="权限类" tabindex="-1"><a class="header-anchor" href="#权限类"><span>权限类</span></a></h2><table><thead><tr><th>代码</th><th>含义</th></tr></thead><tbody><tr><td>-1</td><td>应用程序不存在或已被封禁</td></tr><tr><td>-2</td><td>Access Key 错误</td></tr><tr><td>-3</td><td>API 校验密匙错误</td></tr><tr><td>-4</td><td>调用方对该 Method 没有权限</td></tr><tr><td>-101</td><td>账号未登录</td></tr><tr><td>-102</td><td>账号被封停</td></tr><tr><td>-103</td><td>积分不足</td></tr><tr><td>-104</td><td>硬币不足</td></tr><tr><td>-105</td><td>验证码错误</td></tr><tr><td>-106</td><td>账号非正式会员或在适应期</td></tr><tr><td>-107</td><td>应用不存在或者被封禁</td></tr><tr><td>-108</td><td>未绑定手机</td></tr><tr><td>-110</td><td>未绑定手机</td></tr><tr><td>-111</td><td>csrf 校验失败</td></tr><tr><td>-112</td><td>系统升级中</td></tr><tr><td>-113</td><td>账号尚未实名认证</td></tr><tr><td>-114</td><td>请先绑定手机</td></tr><tr><td>-115</td><td>请先完成实名认证</td></tr></tbody></table><h2 id="请求类" tabindex="-1"><a class="header-anchor" href="#请求类"><span>请求类</span></a></h2><table><thead><tr><th>代码</th><th>含义</th></tr></thead><tbody><tr><td>-304</td><td>木有改动</td></tr><tr><td>-307</td><td>撞车跳转</td></tr><tr><td>-352</td><td>风控校验失败 (UA 或 wbi 参数不合法)</td></tr><tr><td>-400</td><td>请求错误</td></tr><tr><td>-401</td><td>未认证 (或非法请求)</td></tr><tr><td>-403</td><td>访问权限不足</td></tr><tr><td>-404</td><td>啥都木有</td></tr><tr><td>-405</td><td>不支持该方法</td></tr><tr><td>-409</td><td>冲突</td></tr><tr><td>-412</td><td>请求被拦截 (客户端 ip 被服务端风控)</td></tr><tr><td>-500</td><td>服务器错误</td></tr><tr><td>-503</td><td>过载保护,服务暂不可用</td></tr><tr><td>-504</td><td>服务调用超时</td></tr><tr><td>-509</td><td>超出限制</td></tr><tr><td>-616</td><td>上传文件不存在</td></tr><tr><td>-617</td><td>上传文件太大</td></tr><tr><td>-625</td><td>登录失败次数太多</td></tr><tr><td>-626</td><td>用户不存在</td></tr><tr><td>-628</td><td>密码太弱</td></tr><tr><td>-629</td><td>用户名或密码错误</td></tr><tr><td>-632</td><td>操作对象数量限制</td></tr><tr><td>-643</td><td>被锁定</td></tr><tr><td>-650</td><td>用户等级太低</td></tr><tr><td>-652</td><td>重复的用户</td></tr><tr><td>-658</td><td>Token 过期</td></tr><tr><td>-662</td><td>密码时间戳过期</td></tr><tr><td>-688</td><td>地理区域限制</td></tr><tr><td>-689</td><td>版权限制</td></tr><tr><td>-701</td><td>扣节操失败</td></tr><tr><td>-799</td><td>请求过于频繁,请稍后再试</td></tr><tr><td>-8888</td><td>对不起,服务器开小差了~ (ಥ﹏ಥ)</td></tr></tbody></table>',6)]))}const h=d(i,[["render",c]]),m=JSON.parse('{"path":"/docs/misc/errcode.html","title":"公共错误码","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1712675777000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":4,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":1,"url":"https://github.com/wuziqian211"}],"changelog":[{"hash":"860fb3dc2aab83f56e4c702bbea9bad80346fb8c","time":1712675777000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"Fix #994 (#997)"},{"hash":"252178292b943640e4943df4c12e6a0999216c02","time":1685074429000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"update【用户信息】【用户投稿视频】APIDoc"},{"hash":"05ac3d5e2a9e28be3bf129ae8c78ffdbebaa161c","time":1684805901000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"添加文档【Wbi 接口签名】,修改目录结构"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/misc/errcode.md"}');export{h as comp,m as data};

View File

@@ -0,0 +1,11 @@
import{_ as s,c as e,a,o}from"./app-Dgsdh8A6.js";const l={};function n(d,t){return o(),e("div",null,t[0]||(t[0]=[a(`<h1 id="退出账号登录" tabindex="-1"><a class="header-anchor" href="#退出账号登录"><span>退出账号登录</span></a></h1><h2 id="退出登录-web端" tabindex="-1"><a class="header-anchor" href="#退出登录-web端"><span>退出登录(web端)</span></a></h2><blockquote><p>https://passport.bilibili.com/login/exit/v2</p></blockquote><p><em>请求方式POST</em></p><p>认证方式Cookie</p><p>验证登录成功后会使用<code>set-cookie</code>字段清空以下 cookie 项:</p><p><code>DedeUserID</code> <code>DedeUserID__ckMd5</code> <code>SESSDATA</code> <code>bili_jct</code></p><p>并在服务器注销该登录 Token (SESSDATA),该 Token 即失效</p><p>请求必须包含以下cookie项<code>DedeUserID</code> <code>bili_jct</code> <code>SESSDATA</code></p><p><strong>正文参数 (application/x-www-form-urlencoded)</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>biliCSRF</td><td>str</td><td>CSRF Token (位于 cookie 中的 <code>bili_jct</code>)</td><td>必要</td><td></td></tr><tr><td>gourl</td><td>str</td><td>成功后跳转到的页面</td><td>非必要</td><td>默认为<code>javascript:history.go(-1)</code></td></tr></tbody></table><p><strong>json 回复:</strong></p><p>如果 cookie 已经失效则输出登录页 html</p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功 <br>2202csrf 请求非法</td></tr><tr><td>status</td><td>bool</td><td>返回值</td><td><code>true</code>:成功</td></tr><tr><td>ts</td><td>num</td><td>时间戳</td><td></td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>成功时不存在</td></tr><tr><td>data</td><td>有效时obj</td><td>信息本体</td><td>失败时不存在</td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>redirectUrl</td><td>str</td><td>重定向 url</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -L</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/login/exit/v2&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Cookie: DedeUserID=xxx; bili_jct=xxx; SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-H </span><span style="color:#CE9178;">&#39;Content-Type: application/x-www-form-urlencoded&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;biliCSRF=xxxxxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ts&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1663034005</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;redirectUrl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://passport.biligame.com/crossDomain?DedeUserID=&amp;DedeUserID__ckMd5=&amp;SESSDATA=&amp;bili_jct=&amp;gourl=javascript%3Ahistory.go%28-1%29&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,20)]))}const c=s(l,[["render",n]]),i=JSON.parse('{"path":"/docs/login/exit.html","title":"退出账号登录","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/login/exit.md"}');export{c as comp,i as data};

1
assets/fav-DItVJQlV.js Normal file
View File

@@ -0,0 +1 @@
const c="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M250,767.13v-551h4l154-189c33.33-33.33,86-36.67,122-6c18.67,18.67,30.67,43,28,71l-6,124h235%20c29.33,0,56.33,13,75,37c16,22.67,19.67,52.67,13,78l-100,328c-17.33,62.67-68.33,104-135,108H250z%20M193,767.13h-80%20c-61.82,4.12-110.87-48.32-113-108v-331c0-41.33,21-77.33,57-96c18.67-9.33,37.33-13.33,56-16h80V767.13z'%20fill='%23FB7299'/%3e%3c/svg%3e",s="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M472,244h119c47.06,0,47.06-65,0-65H281c-45.49,0-45.49,65,0,65h125v60c-112,8-192,93-196,205v44%20c3.12,40.52,62.97,42.37,66,0v-44c1.33-74.67,55.33-133.33,130-140v305c2.98,41.69,63.02,41.69,66,0V369%20c74.67,6.67,128.67,65.33,130,140v44c0,41.73,65,41.73,65,0v-44c-2.67-112-82.67-197-196-205v-60H472z%20M439,878%20c-124-3.33-227.33-46.33-310-129S3.33,563,0,439c3.33-124,46.33-227.33,129-310S315,3.33,439,0c124,3.33,227.33,46.33,310,129%20s125.67,186,129,310c-3.33,124-46.33,227.33-129,310S563,874.67,439,878z'%20fill='%23FB7299'/%3e%3c/svg%3e",l="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M661.53,260c-42.67-6.67-77.67-33.33-95-72l-72-151c-25.33-49.33-86.67-49.33-116,0l-68,151%20c-20,38.67-53.67,65.33-95,72l-162,25c-52,10.67-71,65.67-35,107l122,126c29.33,28,40.33,68.67,35,110l-28,175%20c-6.67,56,43.33,90,94,66l137-75c38.67-22.67,84.33-22.67,123,0l138,75c49.33,24,96.67-10,94-66l-32-175c-5.33-41.33,5.67-82,35-110%20l122-126c36-41.33,17-96.33-35-107L661.53,260z'%20fill='%23FB7299'/%3e%3c/svg%3e";export{c as _,s as a,l as b};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,109 @@
import{_ as t,c as e,a as l,b as s,d as a,e as p,w as r,r as c,o as i}from"./app-Dgsdh8A6.js";const d={};function D(u,n){const o=c("RouteLink");return i(),e("div",null,[n[17]||(n[17]=l('<h1 id="拉取题目" tabindex="-1"><a class="header-anchor" href="#拉取题目"><span>拉取题目</span></a></h1><h2 id="拉取基础题" tabindex="-1"><a class="header-anchor" href="#拉取基础题"><span>拉取基础题</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/base</p></blockquote><p><em>请求方式GET</em></p><p>认证方式Cookie或APP</p><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>41014答题过快或错误太多<br>41020用户基础题已通过<br>41023用户答题记录不存在</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>question</td><td>obj</td><td>题目内容</td><td></td></tr></tbody></table><p><code>data</code>中的<code>question</code>对象:</p>',11)),s("table",null,[n[16]||(n[16]=s("thead",null,[s("tr",null,[s("th",null,"字段"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"备注")])],-1)),s("tbody",null,[n[7]||(n[7]=s("tr",null,[s("td",null,"id"),s("td",null,"num"),s("td",null,"问题id"),s("td",null,[s("strong",null,"问题id不代表题图因为选项是打乱的")])],-1)),n[8]||(n[8]=s("tr",null,[s("td",null,"number"),s("td",null,"num"),s("td",null,"当前题号"),s("td")],-1)),n[9]||(n[9]=s("tr",null,[s("td",null,"q_height"),s("td",null,"num"),s("td",null,"问题部分总高度"),s("td")],-1)),n[10]||(n[10]=s("tr",null,[s("td",null,"q_coord_y"),s("td",null,"num"),s("td",null,"问题部分Y裁剪起始"),s("td",null,"当然是0")],-1)),n[11]||(n[11]=s("tr",null,[s("td",null,"image"),s("td",null,"str"),s("td",null,"题图url"),s("td",null,"题目文字+所有的选项文字排版成一张图存储在bfs中")],-1)),n[12]||(n[12]=s("tr",null,[s("td",null,"from"),s("td",null,"str"),s("td",null,"问题来源页面url"),s("td",null,"如“xx弹幕是否违规”所在的视频页")],-1)),n[13]||(n[13]=s("tr",null,[s("td",null,"options"),s("td",null,"array"),s("td",null,"选项列表"),s("td")],-1)),s("tr",null,[n[4]||(n[4]=s("td",null,"type_id",-1)),n[5]||(n[5]=s("td",null,"num",-1)),n[6]||(n[6]=s("td",null,"题目父类型id",-1)),s("td",null,[n[1]||(n[1]=a("见")),p(o,{to:"/docs/newbie_exam/info.html#%E6%9F%A5%E8%AF%A2%E8%87%AA%E9%80%89%E9%A2%98%E5%88%86%E7%B1%BB"},{default:r(()=>n[0]||(n[0]=[a("查询自选题分类")])),_:1,__:[0]}),n[2]||(n[2]=s("br",null,null,-1)),n[3]||(n[3]=s("strong",null,"注36为基础题",-1))])]),n[14]||(n[14]=s("tr",null,[s("td",null,"type_name"),s("td",null,"str"),s("td",null,"分院小电视提示文案"),s("td",null,"如xx小电视")],-1)),n[15]||(n[15]=s("tr",null,[s("td",null,"type_image"),s("td",null,"str"),s("td",null,"分院小电视图标url"),s("td")],-1))])]),n[18]||(n[18]=l(`<p><code>question</code>中的<code>options</code>数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>obj</td><td>选项A</td><td></td></tr><tr><td>1</td><td>obj</td><td>选项B</td><td>选项至少2个</td></tr><tr><td>2</td><td>obj</td><td>选项C</td><td>数组长度取决于选项个数</td></tr><tr><td>3</td><td>obj</td><td>选项D</td><td></td></tr></tbody></table><p><code>question</code>中的<code>options</code>数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>number</td><td>num</td><td>选项序号</td><td>如1为A 2为B</td></tr><tr><td>high</td><td>num</td><td>选项部分总高度</td><td></td></tr><tr><td>coord_y</td><td>num</td><td>选项部分Y裁剪起始</td><td></td></tr><tr><td>hash</td><td>str</td><td>选项hash</td><td>作为提交对应选项时应传参</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/base&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;question&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">6511</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;q_height&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">38.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;q_coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/member/9d7f1f1f0b7478a621d1b998a5a98982.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;from&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;options&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">38.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;f7619d6c2040d44f39dc87a7aa34fb9e&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">80.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;dce5140040f40ca4030783585684369d&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">36</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;小电视校长&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/face/7b67c0c0da64a6ab059ff49bb0d4b92988b91806.png&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="拉取附加题" tabindex="-1"><a class="header-anchor" href="#拉取附加题"><span>拉取附加题</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/extra</p></blockquote><p><em>请求方式GET</em></p><p>认证方式Cookie或APP</p><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>41014答题过快或错误太多<br>41021用户基础题未通过<br>41023用户答题记录不存在<br>41054用户附加题已通过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><p>同<a href="#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98">拉取基础题</a>的<code>data</code>对象</p><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/extra&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;question&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">11492</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">44</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;q_height&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">76.8</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;q_coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/member/b6c846613bd0b44cd7c8af1d83e3f0c2.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;from&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://www.bilibili.com/video/av14659093&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;options&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">76.8</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;ca15e6009047cf82358c50ab90fd8d9e&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">118.8</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;60e86a1c736c68da3462f66377e4e8ca&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">36</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;小电视校长&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/face/7b67c0c0da64a6ab059ff49bb0d4b92988b91806.png&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="拉取自选题" tabindex="-1"><a class="header-anchor" href="#拉取自选题"><span>拉取自选题</span></a></h2><blockquote><p>https://api.bilibili.com/x/answer/v4/pro</p></blockquote><p><em>请求方式GET</em></p><p>认证方式Cookie或APP</p><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-101账号未登录<br>41014答题过快或错误太多<br>41021用户基础题未通过<br>41023用户答题记录不存在<br>41051用户答题验证码未通过<br>41055基础附加题未通过</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><p>同<a href="#%E6%8B%89%E5%8F%96%E5%9F%BA%E7%A1%80%E9%A2%98">拉取基础题</a>的<code>data</code>对象</p><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/answer/v4/pro&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;question&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">824</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">54</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;q_height&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">38.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;q_coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/member/417e02be5652f79d0312fa2fcee28869.png&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;from&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;options&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">38.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;c4574c23cf728c19abeab3e7525258d4&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">80.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;ffd48760758fbb8a2c183d1d04f692f8&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">122.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;898d414dff49fe20c4a1da1e148fadb2&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;number&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;high&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">42</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;coord_y&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">164.4</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;hash&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;09018443f09d8ef4f6fec5e96e082270&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> ],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_id&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_name&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;游戏小电视&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type_image&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;https://i0.hdslb.com/bfs/face/6590bee26086fed66ee7cc5bac26a32d2f733037.png&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,31))])}const b=t(d,[["render",D]]),v=JSON.parse('{"path":"/docs/newbie_exam/fetch.html","title":"拉取题目","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/newbie_exam/fetch.md"}');export{b as comp,v as data};

View File

@@ -0,0 +1,23 @@
import{_ as t,c as a,a as l,o as n}from"./app-Dgsdh8A6.js";const e={};function o(d,s){return n(),a("div",null,s[0]||(s[0]=[l(`<h1 id="追番相关" tabindex="-1"><a class="header-anchor" href="#追番相关"><span>追番相关</span></a></h1><h2 id="追番" tabindex="-1"><a class="header-anchor" href="#追番"><span>追番</span></a></h2><blockquote><p>https://api.bilibili.com/pgc/web/follow/add</p></blockquote><p><em>请求方式POST</em></p><p>鉴权方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>season_id</td><td>str</td><td>剧集ssid</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>csrf token(位于cookies中的bili_jct)</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-111csrf校验失败</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>成功时success</td></tr><tr><td>result</td><td>obj</td><td>见下表</td><td></td></tr></tbody></table><p>根对象中的<code>result</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>fmid</td><td>num</td><td>0</td><td></td></tr><tr><td>relation</td><td>bool</td><td>false</td><td></td></tr><tr><td>status</td><td>num</td><td>2</td><td></td></tr><tr><td>toast</td><td>str</td><td>自己追的番就要好好看完哟^o^</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>追番<code>ssid=41410</code>的番剧</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/pgc/web/follow/add&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;season_id=41410&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;result&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fmid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;relation&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;toast&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;自己追的番就要好好看完哟^o^&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="取消追番" tabindex="-1"><a class="header-anchor" href="#取消追番"><span>取消追番</span></a></h2><blockquote><p>https://api.bilibili.com/pgc/web/follow/del</p></blockquote><p><em>请求方式POST</em></p><p>鉴权方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>season_id</td><td>str</td><td>剧集ssid</td><td>必要</td><td></td></tr><tr><td>csrf</td><td>str</td><td>csrf token(位于cookies中的bili_jct)</td><td>必要</td><td></td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-111csrf校验失败</td></tr><tr><td>message</td><td>str</td><td>信息</td><td>成功时success</td></tr><tr><td>result</td><td>obj</td><td>见下表</td><td></td></tr></tbody></table><p>根对象中的<code>result</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>fmid</td><td>num</td><td>0</td><td></td></tr><tr><td>relation</td><td>bool</td><td>true</td><td></td></tr><tr><td>status</td><td>num</td><td>0</td><td></td></tr><tr><td>toast</td><td>str</td><td>已取消追番</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>取消<code>ssid=41410</code>的追番</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/pgc/web/follow/del&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;season_id=41410&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;csrf=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;success&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;result&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;fmid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;relation&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;status&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;toast&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;已取消追番&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,31)]))}const p=t(e,[["render",o]]),c=JSON.parse('{"path":"/docs/bangumi/follow.html","title":"追番相关","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/bangumi/follow.md"}');export{p as comp,c as data};

File diff suppressed because one or more lines are too long

23
assets/food-DwTTpF9-.svg Normal file
View File

@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="100%" height="100%">
<path
d="M3.18094 10.5647C3.18094 11.01408 3.35942 11.44493 3.67714 11.76269C3.99484 12.08035 4.42574 12.25882 4.87505 12.25882C5.32436 12.25882 5.75527 12.08035 6.07298 11.76269C6.39068 11.44493 6.56917 11.01408 6.56917 10.5647C6.56917 10.11542 6.39068 9.68453 6.07298 9.36682C5.75527 9.04911 5.32436 8.87062 4.87505 8.87062C4.42574 8.87062 3.99484 9.04911 3.67714 9.36682C3.35942 9.68453 3.18094 10.11542 3.18094 10.5647z"
fill="#FB813Aff"></path>
<path
d="M5.69523 9.30581C5.69518 9.60927 5.76987 9.90977 5.91502 10.19011C6.06016 10.47053 6.27294 10.72531 6.54118 10.93987C6.80942 11.15443 7.12788 11.32474 7.47837 11.4408C7.82887 11.55696 8.20452 11.61677 8.5839 11.61677C8.96327 11.61677 9.33893 11.55696 9.68938 11.4408C10.03987 11.32474 10.3584 11.15443 10.62662 10.93987C10.89485 10.72531 11.10758 10.47053 11.25274 10.19011C11.39789 9.90977 11.47258 9.60927 11.47258 9.30581C11.47258 9.00234 11.39789 8.70184 11.25274 8.42147C11.10758 8.1411 10.89485 7.88634 10.62662 7.67174C10.3584 7.45715 10.03987 7.28693 9.68938 7.17079C9.33893 7.05465 8.96327 6.99487 8.5839 6.99487C8.20452 6.99487 7.82887 7.05465 7.47837 7.17079C7.12788 7.28693 6.80942 7.45715 6.54118 7.67174C6.27294 7.88634 6.06016 8.1411 5.91502 8.42147C5.76987 8.70184 5.69518 9.00234 5.69523 9.30581z"
fill="#FB813Aff"></path>
<path
d="M14.90909 11.21645C14.90899 11.59296 14.9832 11.96582 15.1272 12.31373C15.2713 12.66163 15.4825 12.97766 15.7487 13.24397C16.01501 13.51018 16.33104 13.72147 16.67894 13.86557C17.02675 14.00966 17.39962 14.08378 17.77622 14.08378C18.15274 14.08378 18.5256 14.00966 18.87341 13.86557C19.22131 13.72147 19.53744 13.51018 19.80365 13.24397C20.06986 12.97766 20.28106 12.66163 20.42515 12.31373C20.56925 11.96582 20.64336 11.59296 20.64326 11.21645C20.64336 10.83994 20.56925 10.46707 20.42515 10.11917C20.28106 9.77126 20.06986 9.45516 19.80365 9.1889C19.53744 8.92264 19.22131 8.71142 18.87341 8.56733C18.5256 8.42322 18.15274 8.34905 17.77622 8.34905C17.39962 8.34905 17.02675 8.42322 16.67894 8.56733C16.33104 8.71142 16.01501 8.92264 15.7487 9.1889C15.4825 9.45516 15.2713 9.77126 15.1272 10.11917C14.9832 10.46707 14.90899 10.83994 14.90909 11.21645z"
fill="#FB813Aff"></path>
<path
d="M11.7816 9.52223C11.7816 9.91584 11.85907 10.3056 12.0097 10.66925C12.16032 11.0329 12.38112 11.36323 12.65942 11.64163C12.93773 11.91994 13.26816 12.14074 13.63181 12.29136C13.99546 12.44198 14.38522 12.51946 14.77882 12.51946C15.17242 12.51946 15.56218 12.44198 15.92582 12.29136C16.28947 12.14074 16.61981 11.91994 16.89821 11.64163C17.17651 11.36323 17.39722 11.0329 17.54784 10.66925C17.69846 10.3056 17.77603 9.91584 17.77603 9.52223C17.77603 8.72732 17.46029 7.96496 16.89821 7.40287C16.33603 6.84078 15.5737 6.525 14.77882 6.525C13.98384 6.525 13.2215 6.84078 12.65942 7.40287C12.09734 7.96496 11.7816 8.72732 11.7816 9.52223z"
fill="#FB813Aff"></path>
<path
d="M21.52992 9.91312C21.70147 9.91322 21.86602 9.98144 21.98736 10.10275C22.10861 10.22419 22.17677 10.38874 22.17677 10.56029L22.17571 10.59082L22.1737 10.62125C21.85181 14.01696 19.23504 16.76074 15.85699 17.35306L16.31107 19.16976C16.33027 19.24666 16.33171 19.32682 16.3153 19.40429C16.29878 19.48176 16.26499 19.55443 16.21622 19.61683C16.16746 19.67923 16.10515 19.72973 16.03402 19.76448C15.96288 19.79923 15.88474 19.81728 15.80554 19.81728L8.27921 19.81728C8.20003 19.81728 8.12188 19.79923 8.05071 19.76448C7.97955 19.72973 7.91723 19.67923 7.8685 19.61683C7.81977 19.55443 7.7859 19.48176 7.76947 19.40429C7.75305 19.32682 7.75449 19.24666 7.7737 19.16976L8.22772 17.35306C4.89166 16.76822 2.29831 14.08474 1.92424 10.74768L1.91171 10.62672C1.90307 10.53629 1.9134 10.44509 1.94207 10.35898C1.97073 10.27286 2.01708 10.19366 2.07813 10.12646C2.13919 10.05928 2.21362 10.0056 2.29664 9.96886C2.37965 9.93212 2.46943 9.91314 2.56021 9.91312L21.52992 9.91312z"
fill="#FDDE80ff"></path>
<path
d="M10.51066 3.65813L13.57402 3.65813C14.05238 3.65813 14.4695 3.9834 14.58538 4.44758L15.95184 9.91314L8.13281 9.91314L9.49929 4.44792C9.55566 4.22235 9.68582 4.02209 9.86909 3.87899C10.05235 3.73588 10.27814 3.65814 10.51066 3.65813z"
fill="#FDDE80ff"></path>
<path
d="M12.04234 15.12614C12.5953 15.12614 13.1257 15.34579 13.5167 15.7368C13.90771 16.1279 14.12746 16.65821 14.12746 17.21126L14.12746 19.81747L9.95722 19.81747L9.95722 17.21126C9.95722 16.65821 10.17686 16.1279 10.56787 15.7368C10.95898 15.34579 11.48928 15.12614 12.04234 15.12614z"
fill="#FB813Aff"></path>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,89 @@
import{_ as e,c as r,a as l,b as n,d as a,e as p,w as t,r as c,o as i}from"./app-Dgsdh8A6.js";const d={};function D(y,s){const o=c("RouteLink");return i(),r("div",null,[s[10]||(s[10]=l(`<h1 id="历史弹幕" tabindex="-1"><a class="header-anchor" href="#历史弹幕"><span>历史弹幕</span></a></h1><p><strong>注历史弹幕的xml接口已经失效现已改为protobuf接口</strong></p><h2 id="查询历史弹幕日期" tabindex="-1"><a class="header-anchor" href="#查询历史弹幕日期"><span>查询历史弹幕日期</span></a></h2><blockquote><p>https://api.bilibili.com/x/v2/dm/history/index</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p><strong>注:查询历史弹幕需要登录</strong></p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>1</td><td>必要</td><td></td></tr><tr><td>oid</td><td>num</td><td>视频cid</td><td>必要</td><td></td></tr><tr><td>month</td><td>str</td><td>查询目标年月</td><td>必要</td><td>YYYY-MM</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400请求错误<br>-101账号未登录</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>有弹幕array<br>无弹幕null</td><td>日期列表</td><td></td></tr></tbody></table><p><code>data</code>数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>str</td><td>存在弹幕的日期1</td><td>YYYY-MM-DD</td></tr><tr><td>n</td><td>str</td><td>存在弹幕的日期(n+1)</td><td>YYYY-MM-DD</td></tr><tr><td>……</td><td>str</td><td>……</td><td>……</td></tr></tbody></table><p><strong>示例:</strong></p><p>查询了cid为144541892的视频位于2020年1月中有历史弹幕记录的日期</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v2/dm/history/index&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=144541892&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;month=2020-01&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: [</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-21&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-22&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-23&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-24&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-25&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-26&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-27&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-28&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-29&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-30&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#CE9178;"> &quot;2020-01-31&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> ]</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>返回结果的 <code>data</code> 项说明这些日期有弹幕发送。若查询的月份中视频无弹幕,则 <code>data</code> 项为 <code>null</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v2/dm/history/index&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=144541892&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;month=2019-12&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">null</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="获取历史弹幕protobuf接口" tabindex="-1"><a class="header-anchor" href="#获取历史弹幕protobuf接口"><span>获取历史弹幕protobuf接口</span></a></h2><blockquote><p>https://api.bilibili.com/x/v2/dm/web/history/seg.so</p></blockquote><p><em>请求方式GET</em></p><p>认证方式CookieSESSDATA</p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>弹幕类</td><td>必要</td><td>1视频弹幕</td></tr><tr><td>oid</td><td>num</td><td>视频cid</td><td>必要</td><td></td></tr><tr><td>date</td><td>str</td><td>弹幕日期</td><td>必要</td><td>YYYY-MM-DD</td></tr></tbody></table><p><strong>proto回复</strong></p><p>porto定义见<a href="https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/grpc_api/bilibili/community/service/dm/v1/dm.proto" target="_blank" rel="noopener noreferrer">bilibili.community.service.dm.v1.DmSegMobileReply</a></p>`,29)),n("p",null,[s[1]||(s[1]=a("详细说明见")),p(o,{to:"/docs/danmaku/danmaku_proto.html"},{default:t(()=>s[0]||(s[0]=[a("protobuf弹幕")])),_:1,__:[0]})]),s[11]||(s[11]=l(`<p>获取视频<code>av84271171(cid=144541892)</code>2020-01-21的历史弹幕</p><p><strong>注proto定义需要编译</strong></p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> requests</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> google.protobuf.text_format </span><span style="color:#C586C0;">as</span><span style="color:#D4D4D4;"> text_format</span></span>
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> bilibili.community.service.dm.v1_pb2 </span><span style="color:#C586C0;">as</span><span style="color:#D4D4D4;"> Danmaku</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">url = </span><span style="color:#CE9178;">&#39;https://api.bilibili.com/x/v2/dm/web/history/seg.so&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;">params = {</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;type&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">, </span><span style="color:#6A9955;">#弹幕类型</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;oid&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#B5CEA8;">144541892</span><span style="color:#D4D4D4;">, </span><span style="color:#6A9955;">#cid</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;date&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&#39;2020-01-21&#39;</span><span style="color:#6A9955;"> #弹幕日期</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"><span style="color:#D4D4D4;">cookies = {</span></span>
<span class="line"><span style="color:#CE9178;"> &#39;SESSDATA&#39;</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">&#39;xxx&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"><span style="color:#D4D4D4;">resp = requests.get(url,params,</span><span style="color:#9CDCFE;">cookies</span><span style="color:#D4D4D4;">=cookies)</span></span>
<span class="line"><span style="color:#D4D4D4;">data = resp.content</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">danmaku_seg = Danmaku.DmSegMobileReply()</span></span>
<span class="line"><span style="color:#D4D4D4;">danmaku_seg.ParseFromString(data)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(text_format.MessageToString(danmaku_seg.elems[</span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">],</span><span style="color:#9CDCFE;">as_utf8</span><span style="color:#D4D4D4;">=</span><span style="color:#569CD6;">True</span><span style="color:#D4D4D4;">))</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>输出:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>id: 27532611677585408</span></span>
<span class="line"><span>progress: 300507</span></span>
<span class="line"><span>mode: 1</span></span>
<span class="line"><span>fontsize: 25</span></span>
<span class="line"><span>color: 16777215</span></span>
<span class="line"><span>midHash: &quot;2a28d4a6&quot;</span></span>
<span class="line"><span>content: &quot;章北海的老爹&quot;</span></span>
<span class="line"><span>ctime: 1579621359</span></span>
<span class="line"><span>idStr: &quot;27532611677585408&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="获取历史弹幕xml接口" tabindex="-1"><a class="header-anchor" href="#获取历史弹幕xml接口"><span>获取历史弹幕xml接口</span></a></h2>`,6)),n("details",null,[s[4]||(s[4]=n("summary",null,"查看折叠内容:",-1)),s[5]||(s[5]=n("blockquote",null,[n("p",null,"https://api.bilibili.com/x/v2/dm/history")],-1)),s[6]||(s[6]=n("p",null,[n("em",null,"请求方式GET")],-1)),s[7]||(s[7]=n("p",null,"认证方式CookieSESSDATA",-1)),s[8]||(s[8]=n("p",null,[n("strong",null,"注:查询历史弹幕需要登录")],-1)),n("p",null,[s[3]||(s[3]=a("结果为")),p(o,{to:"/docs/danmaku/danmaku_xml.html#%E5%BC%B9%E5%B9%95%E6%A0%BC%E5%BC%8F"},{default:t(()=>s[2]||(s[2]=[a("标准xml格式弹幕")])),_:1,__:[2]})]),s[9]||(s[9]=l(`<p><strong>使用deflate压缩注意解码</strong></p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>1</td><td>必要</td><td></td></tr><tr><td>oid</td><td>num</td><td>视频cid</td><td>必要</td><td></td></tr><tr><td>date</td><td>str</td><td>弹幕日期</td><td>必要</td><td>YYYY-MM-DD</td></tr></tbody></table><p><strong>示例:</strong></p><p>获取视频<code>av84271171(cid=144541892)</code>2020-01-21的历史弹幕</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/v2/dm/history&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;type=1&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;oid=144541892&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;date=2020-01-21&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">&#39;SESSDATA=xxx&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--compressed </span><span style="color:#569CD6;">-o</span><span style="color:#CE9178;"> &#39;danmaku.xml&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-xml line-numbers-mode" data-highlighter="shiki" data-ext="xml" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-xml"><span class="line"><span style="color:#808080;">&lt;?</span><span style="color:#569CD6;">xml</span><span style="color:#9CDCFE;"> version</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;1.0&quot;</span><span style="color:#9CDCFE;"> encoding</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;UTF-8&quot;</span><span style="color:#808080;">?&gt;</span></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">i</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">chatserver</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">chat.bilibili.com</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">chatserver</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">chatid</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">144541892</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">chatid</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">mission</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">0</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">mission</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">maxlimit</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">1500</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">maxlimit</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">state</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">0</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">state</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">real_name</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">0</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">real_name</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;473.43400,1,25,15138834,1579622380,0,ec16f2d,27532609919123456&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">敬礼</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;3.10200,1,25,16777215,1579622362,0,a2bd7474,27532609920696320&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">悄默声的更新啊怎么</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;17.52300,1,25,16777215,1579622357,0,972c932b,27532609906016258&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">久等了</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;40.81800,1,25,16777215,1579622343,0,bbca6701,27532609906540546&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">不都是乱纪元才浸泡</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;243.39800,1,25,15138834,1579622336,0,77b00ed9,27532609924890624&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">已阅,狗屁不通。大字报在地上搞搞就行,别弄到天上去</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;559.80000,1,25,16777215,1579622334,0,9affc7f5,27532609909686274&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">CSSC。。。</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;398.29700,1,25,16777215,1579622331,0,18d4707,27532609926463488&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">看到了个寂寞</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;34.81000,1,25,38979,1579622327,0,319d7700,27532609926987776&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">有耳朵了!</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;18.65700,1,25,16777215,1579622321,0,bbca6701,27532609912307714&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">雪天不用浸泡吧</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;305.99800,1,25,16777215,1579622316,0,878c315b,27532609928560640&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">未来史学派</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;7.86200,1,25,16777215,1579622309,0,c5136613,27532609913880578&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">浸泡!!!!!!!</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;368.95600,1,25,16777215,1579622302,0,18d4707,27532609914404866&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">章召忠</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;25.19800,1,25,16777215,1579622286,0,4dab6898,27532609931706368&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">mi24av</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;41.10100,1,25,16777215,1579622274,0,33d31036,27532609932230656&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">泪奔</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;627.69800,1,25,16777215,1579622264,0,d79a826a,27532609933279232&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">组建太空军</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;310.58900,1,25,16777215,1579622243,0,18d4707,27532609918074882&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">是未来史学派?</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#808080;"> &lt;</span><span style="color:#569CD6;">d</span><span style="color:#9CDCFE;"> p</span><span style="color:#D4D4D4;">=</span><span style="color:#CE9178;">&quot;723.34800,1,25,16777215,1579622239,0,844fa9e7,27532609919123458&quot;</span><span style="color:#808080;">&gt;</span><span style="color:#D4D4D4;">刘培强还行</span><span style="color:#808080;">&lt;/</span><span style="color:#569CD6;">d</span><span style="color:#808080;">&gt;</span></span>
<span class="line"><span style="color:#D4D4D4;"> …………</span></span>
<span class="line"><span style="color:#808080;">&lt;</span><span style="color:#569CD6;">i</span><span style="color:#808080;">&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,7))])])}const m=e(d,[["render",D]]),v=JSON.parse('{"path":"/docs/danmaku/history.html","title":"历史弹幕","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1704464133000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"lb-chc","username":"lb-chc","email":"69136546+lb-chc@users.noreply.github.com","commits":1,"url":"https://github.com/lb-chc"}],"changelog":[{"hash":"5d188bf9b209ca112581ee7f36ccd359f4a7953f","time":1704464133000,"email":"69136546+lb-chc@users.noreply.github.com","author":"lb-chc","message":"Update history.md (#927)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/danmaku/history.md"}');export{m as comp,v as data};

File diff suppressed because one or more lines are too long

433
assets/hot.html-C_FX8JaJ.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,77 @@
import{_ as o,c as p,b as n,a as d,d as t,e as l,w as e,r as i,o as r}from"./app-Dgsdh8A6.js";const c={};function D(u,s){const a=i("RouteLink");return r(),p("div",null,[s[3]||(s[3]=n("h1",{id:"视频笔记",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#视频笔记"},[n("span",null,"视频笔记")])],-1)),s[4]||(s[4]=n("p",null,'2020-11-16 B站推出了测试版的功能——"视频笔记"与视频稿件关联为富文本模式可供记录观看视频时的感悟以及视频中的重要内容目前只可在web端操作',-1)),s[5]||(s[5]=n("p",null,"笔记分为私有笔记和公开笔记,一个稿件只能添加一篇私有笔记,但可以公开多篇笔记",-1)),s[6]||(s[6]=n("p",null,[t("公开笔记与【专栏】性质相同,使用"),n("code",null,"cvid"),t("寻址相应的公开笔记")],-1)),s[7]||(s[7]=n("hr",null,null,-1)),s[8]||(s[8]=n("p",null,[n("strong",null,"继续查看:")],-1)),n("ul",null,[n("li",null,[l(a,{to:"/docs/note/list.html"},{default:e(()=>s[0]||(s[0]=[t("笔记列表")])),_:1,__:[0]})]),n("li",null,[l(a,{to:"/docs/note/info.html"},{default:e(()=>s[1]||(s[1]=[t("笔记详细信息")])),_:1,__:[1]})]),n("li",null,[l(a,{to:"/docs/note/action.html"},{default:e(()=>s[2]||(s[2]=[t("笔记操作")])),_:1,__:[2]})])]),s[9]||(s[9]=d(`<hr><h2 id="附表-笔记正文序列格式" tabindex="-1"><a class="header-anchor" href="#附表-笔记正文序列格式"><span>附表-笔记正文序列格式</span></a></h2><p>根数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>obj</td><td>第1个元素</td><td></td></tr><tr><td>n</td><td>obj</td><td>第(n+1)个元素</td><td></td></tr><tr><td>……</td><td>obj</td><td>……</td><td>……</td></tr></tbody></table><p>根数组中的对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>attributes</td><td>obj</td><td>元素属性</td><td>无属性无此项</td></tr><tr><td>insert</td><td>str</td><td>元素内容</td><td>为跳转/图片时无此项</td></tr><tr><td>insert</td><td>obj</td><td>元素跳转信息</td><td>非跳转/图片时无此项</td></tr></tbody></table><p>对象中的<code>attributes</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>bold</td><td>bool</td><td>是否加粗</td><td></td></tr><tr><td>strike</td><td>bool</td><td>是否删除线</td><td></td></tr><tr><td>underline</td><td>bool</td><td>是否下划线</td><td></td></tr><tr><td>background</td><td>str</td><td>背景颜色</td><td></td></tr><tr><td>color</td><td>str</td><td>文字颜色</td><td></td></tr><tr><td>list</td><td>str</td><td>列表属性</td><td>ordered有序列表/bullet无序列表</td></tr><tr><td>size</td><td>str</td><td>文字字号</td><td></td></tr></tbody></table><p>对象中的<code>insert</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>tag</td><td>obj</td><td>跳转标签</td><td>二选一</td></tr><tr><td>imageUpload</td><td>obj</td><td>笔记图片</td><td>二选一</td></tr></tbody></table><p><code>insert</code>中的<code>tag</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>cid</td><td>num</td><td>视频cid</td><td></td></tr><tr><td>status</td><td>num</td><td>0</td><td>作用尚不明确</td></tr><tr><td>index</td><td>num</td><td>在稿件中的分P索引</td><td></td></tr><tr><td>seconds</td><td>num</td><td>视频进度</td><td></td></tr><tr><td>cidCount</td><td>num</td><td>稿件总分P数</td><td></td></tr><tr><td>key</td><td>str</td><td>标签创建时间戳</td><td></td></tr><tr><td>title</td><td>str</td><td>output</td><td>作用尚不明确</td></tr></tbody></table><p><code>insert</code>中的<code>imageUpload</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>url</td><td>str</td><td>图片链接</td><td></td></tr><tr><td>status</td><td>str</td><td>done</td><td>作用尚不明确</td></tr><tr><td>width</td><td>num</td><td>图片宽度-2</td><td></td></tr></tbody></table><p>示例:</p><p>以下笔记正文序列包含<code>字号</code>、<code>加粗</code>、<code>高亮</code>、<code>普通文本</code>格式</p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">[</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;24px&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;关掉&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;24px&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;size&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;24px&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;关掉&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;background&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;#fff359&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;一定要&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;background&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;#fff359&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;关掉&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">再不关掉那些&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;网络游戏&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;,小孩哪有&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;美好的未来&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;,哪有&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;美好的前程&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;,祖国哪有&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;attributes&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bold&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">true</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;栋梁之才&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;insert&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">]</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,17))])}const y=o(c,[["render",D]]),b=JSON.parse('{"path":"/docs/note/","title":"视频笔记","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1676998806000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":1,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/note/readme.md"}');export{y as comp,b as data};

View File

@@ -0,0 +1,27 @@
import{_ as d,c as r,a as o,b as s,e as n,w as l,d as a,r as p,o as c}from"./app-Dgsdh8A6.js";const i={};function u(h,t){const e=p("RouteLink");return c(),r("div",null,[t[5]||(t[5]=o('<h1 id="登录操作" tabindex="-1"><a class="header-anchor" href="#登录操作"><span>登录操作</span></a></h1><p>人机验证方式登录包含<strong>账号密码登录</strong>与<strong>手机短信验证码登录</strong></p><p><strong>注:扫码登录</strong>不需要进行<strong>人机验证</strong>,故<strong>不使用</strong>以下接口</p><h2 id="扫码登录" tabindex="-1"><a class="header-anchor" href="#扫码登录"><span>扫码登录</span></a></h2>',4)),s("ul",null,[s("li",null,[n(e,{to:"/docs/login/login_action/QR.html"},{default:l(()=>t[0]||(t[0]=[a("扫码登录")])),_:1,__:[0]})])]),t[6]||(t[6]=o('<h2 id="验证登录" tabindex="-1"><a class="header-anchor" href="#验证登录"><span>验证登录</span></a></h2><p>人机验证流程:</p><ol><li>请求验证码参数,得到登录密钥<code>key</code>与极验id<code>gt</code>和极验KEY<code>challenge</code></li><li>进行滑动or点击验证</li><li>返回验证结果<code>validate</code>与<code>seccode</code>,进行短信或密码登录</li></ol><h3 id="申请captcha验证码" tabindex="-1"><a class="header-anchor" href="#申请captcha验证码"><span>申请captcha验证码</span></a></h3><blockquote><p>https://passport.bilibili.com/x/passport-login/captcha?source=main_web</p></blockquote><p><em>请求方式GET</em></p>',6)),s("p",null,[t[2]||(t[2]=a("注: 另外参见 ")),n(e,{to:"/docs/login/login_action/password.html#%E8%8E%B7%E5%8F%96-captcha"},{default:l(()=>t[1]||(t[1]=[a("密码登录-手机号验证-获取 captcha")])),_:1,__:[1]})]),t[7]||(t[7]=o(`<p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>message</td><td>str</td><td>返回信息</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>geetest</td><td>obj</td><td>极验captcha数据</td><td></td></tr><tr><td>tencent</td><td>obj</td><td>(?)</td><td><strong>作用尚不明确</strong></td></tr><tr><td>token</td><td>str</td><td>登录 API token</td><td>与 captcha 无关,与登录接口有关</td></tr><tr><td>type</td><td>str</td><td>验证方式</td><td>用于判断使用哪一种验证方式,目前所见只有极验<br>geetest极验</td></tr></tbody></table><p><code>geetest</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>gt</td><td>str</td><td>极验id</td><td>一般为固定值</td></tr><tr><td>challenge</td><td>str</td><td>极验KEY</td><td>由B站后端产生用于人机验证</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/x/passport-login/captcha?source=main_web&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;geetest&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;token&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;00fbe75cc2864ba0af969231f193a974&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;geetest&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;challenge&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;a57d9be17505d4a15ed84694c48fbf74&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;gt&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;ac597a4506fee079629df5d8b66dd4fe&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tencent&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;appid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="申请captcha验证码-旧版" tabindex="-1"><a class="header-anchor" href="#申请captcha验证码-旧版"><span>申请captcha验证码 (旧版)</span></a></h3><blockquote><p>http://passport.bilibili.com/web/captcha/combine</p></blockquote><p><em>请求方式GET</em></p><p>该接口曾从文档移除过, 经过测试仍可正常使用</p><p><strong>URL参数:</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>plat</td><td>num</td><td>平台类型</td><td>必要</td><td>默认为 6</td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功</td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>result</td><td>obj</td><td>套了个娃</td><td></td></tr><tr><td>type</td><td>num</td><td>1</td><td><strong>作用尚不明确</strong></td></tr></tbody></table><p><code>result</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>success</td><td>num</td><td>1</td><td><strong>作用尚不明确</strong></td></tr><tr><td>gt</td><td>str</td><td>极验id</td><td>一般为固定值</td></tr><tr><td>challenge</td><td>str</td><td>极验KEY</td><td>由B站后端产生用于人机验证</td></tr><tr><td>key</td><td>str</td><td>登录秘钥</td><td>与 captcha 无关, 与登录接口有关, 亦作 token</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> &#39;https://passport.bilibili.com/web/captcha/combine?plat=6&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;result&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;success&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;gt&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;bd111e81eda1cbb9f54425aafc0908ac&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;challenge&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;2903a8eb967a1d990444cb23ea42f417&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;key&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;76fb59fbd83a4d9d816162c5156fc964&quot;</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;type&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="进行验证" tabindex="-1"><a class="header-anchor" href="#进行验证"><span>进行验证</span></a></h3><p>本文档为 Bilibili 文档,验证码为 <a href="https://docs.geetest.com/sensebot/start/" target="_blank" rel="noopener noreferrer">geetest 极验</a> 提供,故不提供相关 API</p><p>附: <a href="https://kuresaru.github.io/geetest-validator/" target="_blank" rel="noopener noreferrer">手动验证器</a><a href="https://github.com/kuresaru/geetest-validator" target="_blank" rel="noopener noreferrer">及其源码</a></p><ol><li>打开手动验证器在1、2分别填入上面API返回的<code>gt</code>和<code>challenge</code></li><li>点击按钮3稍等加载验证码点击按钮4进行验证</li><li>验证完成后点击按钮5生成验证结果</li><li>使用最开始获得到的<code>key</code>、<code>challenge</code>和刚获得到的<code>validate</code>、<code>seccode</code>继续之后的登录操作</li></ol><h3 id="继续登录" tabindex="-1"><a class="header-anchor" href="#继续登录"><span>继续登录</span></a></h3>`,31)),s("ul",null,[s("li",null,[n(e,{to:"/docs/login/login_action/SMS.html"},{default:l(()=>t[3]||(t[3]=[a("短信登录")])),_:1,__:[3]})]),s("li",null,[n(e,{to:"/docs/login/login_action/password.html"},{default:l(()=>t[4]||(t[4]=[a("密码登录")])),_:1,__:[4]})])])])}const b=d(i,[["render",u]]),m=JSON.parse('{"path":"/docs/login/login_action/","title":"登录操作","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1724238159000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"60a0c5d1a2f44fe61335da04571305fa7727a968","time":1724238159000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: 各种接口补充与错误修正 (#1066)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/login/login_action/readme.md"}');export{b as comp,m as data};

View File

@@ -0,0 +1,42 @@
import{_ as t,c as a,a as n,o as l}from"./app-Dgsdh8A6.js";const e={};function o(d,s){return l(),a("div",null,s[0]||(s[0]=[n(`<h1 id="全站广播" tabindex="-1"><a class="header-anchor" href="#全站广播"><span>全站广播</span></a></h1><h2 id="获取广播服务器地址" tabindex="-1"><a class="header-anchor" href="#获取广播服务器地址"><span>获取广播服务器地址</span></a></h2><blockquote><p>https://api.bilibili.com/x/web-interface/broadcast/servers</p></blockquote><p><em>请求方式GET</em></p><p><strong>url参数</strong></p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>platform</td><td>str</td><td>平台选择</td><td>必要</td><td>为web时输出域名<br>其他时输出ip</td></tr></tbody></table><p><strong>json回复</strong></p><p>根对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0成功<br>-400请求错误</td></tr><tr><td>message</td><td>str</td><td>错误信息</td><td>默认为0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>domain</td><td>str</td><td>广播服务器url</td><td></td></tr><tr><td>tcp_port</td><td>num</td><td>tcp端口</td><td></td></tr><tr><td>ws_port</td><td>num</td><td>websocket端口</td><td></td></tr><tr><td>wss_port</td><td>num</td><td>websocket ssl端口</td><td></td></tr><tr><td>heartbeat</td><td>num</td><td>最大心跳包间隔时间</td><td></td></tr><tr><td>nodes</td><td>array</td><td>服务节点地址列表</td><td></td></tr><tr><td>backoff</td><td>obj</td><td></td><td></td></tr><tr><td>heartbeat_max</td><td>num</td><td></td><td></td></tr></tbody></table><p><code>data</code>中的<code>nodes</code>数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>str</td><td>服务节点1</td><td></td></tr><tr><td>n</td><td>str</td><td>服务节点(n+1)</td><td></td></tr><tr><td>……</td><td>str</td><td>……</td><td></td></tr></tbody></table><p><code>data</code>中的<code>backoff</code>对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>max_delay</td><td>num</td><td></td><td></td></tr><tr><td>base_delay</td><td>num</td><td></td><td></td></tr><tr><td>factor</td><td>num</td><td></td><td></td></tr><tr><td>jitter</td><td>num</td><td></td><td></td></tr></tbody></table><p>示例:</p><p>当<code>platform</code>=<code>web</code>时不显示节点ip</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/broadcast/servers&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=web&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;domain&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;broadcast.chat.bilibili.com&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tcp_port&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">7821</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ws_port&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">7822</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;wss_port&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">7823</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;heartbeat&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">30</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;nodes&quot;</span><span style="color:#D4D4D4;">: [</span><span style="color:#CE9178;">&quot;broadcast.chat.bilibili.com&quot;</span><span style="color:#D4D4D4;">],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;backoff&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;max_delay&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">300</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;base_delay&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;factor&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1.8</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;jitter&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0.3</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;heartbeat_max&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p>当<code>platform</code>=其他时显示节点ip</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/broadcast/servers&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">&#39;platform=1&#39;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;domain&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;broadcast.chat.bilibili.com&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tcp_port&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">7821</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ws_port&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">7822</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;wss_port&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">7823</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;heartbeat&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">30</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;nodes&quot;</span><span style="color:#D4D4D4;">: [</span><span style="color:#CE9178;">&quot;134.175.207.130&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;120.92.150.90&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;120.92.150.212&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;192.144.173.136&quot;</span><span style="color:#D4D4D4;">, </span><span style="color:#CE9178;">&quot;154.8.217.108&quot;</span><span style="color:#D4D4D4;">],</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;backoff&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;max_delay&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">300</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;base_delay&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;factor&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1.8</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;jitter&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0.3</span></span>
<span class="line"><span style="color:#D4D4D4;"> },</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;heartbeat_max&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">3</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="服务器数据包" tabindex="-1"><a class="header-anchor" href="#服务器数据包"><span>服务器数据包</span></a></h2><p>连接服务器分为三种方式分别是ws wss tcp数据包分为上行和下行</p><p>单个数据包分为头部和正文</p><p>其中上行的有认证包 心跳包,下行的有认证包回复 心跳包回复 普通包</p><p>建立连接后超过30s内未发送认证包或握手后30s内未发送心跳包或发送了错误的认证包都会被强制断开连接</p><p>操作流程:</p><p>1.发送认证包,等待接收认证回复</p><p>2.确认握手成功后每30s内发送心跳包并立即接收心跳包回复</p><p>3.空闲时间接收普通包</p><h3 id="数据包结构" tabindex="-1"><a class="header-anchor" href="#数据包结构"><span>数据包结构</span></a></h3><p>头部通用于上行和下行数据包</p><p>头部格式:</p><table><thead><tr><th>偏移量</th><th>长度(字节)</th><th>类型</th><th>含义</th></tr></thead><tbody><tr><td>0x00</td><td>4</td><td>uint32</td><td>封包总大小(头部大小+正文大小)</td></tr><tr><td>0x04</td><td>2</td><td>uint16</td><td>头部大小一般为0x001218字节</td></tr><tr><td>0x06</td><td>2</td><td>uint16</td><td>协议版本可取常数1</td></tr><tr><td>0x08</td><td>4</td><td>uint32</td><td>操作码(包类型)<br><strong>见下表</strong></td></tr><tr><td>0x0C</td><td>4</td><td>uint32</td><td>sequence请求次数可取常数1<br>对于普通包恒为0</td></tr><tr><td>0x10</td><td>2</td><td>uint16</td><td>保留一般为0</td></tr></tbody></table><p>操作码:</p><table><thead><tr><th>代码</th><th>含义</th></tr></thead><tbody><tr><td>2</td><td>心跳</td></tr><tr><td>3</td><td>心跳回复</td></tr><tr><td>7</td><td>认证</td></tr><tr><td>8</td><td>认证回复</td></tr><tr><td>1000</td><td>实时弹幕</td></tr></tbody></table><p><strong>示例:</strong></p><p>以下为一个认证包示例,正文为文本<code>test</code></p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>00000000 00 00 00 16 00 12 00 01 00 00 00 07 00 00 00 01 |................|</span></span>
<span class="line"><span>00000010 00 00 74 65 73 74 |..test|</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div>`,40)]))}const r=t(e,[["render",o]]),c=JSON.parse('{"path":"/docs/broadcast/","title":"全站广播","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1677124138000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"}],"changelog":[{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/broadcast/readme.md"}');export{r as comp,c as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More