From ac6e593315a96832f17f67d5dee8a6ad6bd33015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 24 Aug 2025 20:39:07 +0800 Subject: [PATCH] Add cookie header to getAlbumList API request The getAlbumList method in NTQQWebApi now includes a 'Cookie' header with skey, pskey, and uin for authentication. Updated GetQunAlbumList action to use the correct return type from NTQQWebApi.getAlbumList. --- src/core/apis/webapi.ts | 6 +++++- src/onebot/action/extends/GetQunAlbumList.ts | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/apis/webapi.ts b/src/core/apis/webapi.ts index 7f12e16d..82895ac1 100644 --- a/src/core/apis/webapi.ts +++ b/src/core/apis/webapi.ts @@ -325,11 +325,15 @@ export class NTQQWebApi { } async getAlbumList(gc: string) { + const skey = await this.core.apis.UserApi.getSKey() || ''; const pskey = (await this.core.apis.UserApi.getPSkey(['qzone.qq.com'])).domainPskeyMap.get('qzone.qq.com') || ''; const bkn = this.getBknFromSKey(pskey); const uin = this.core.selfInfo.uin || '10001'; + const cookies = `p_uin=${this.core.selfInfo.uin}; p_skey=${pskey}; skey=${skey}; uin=${uin}`; const api = `https://h5.qzone.qq.com/proxy/domain/u.photo.qzone.qq.com/cgi-bin/upp/qun_list_album_v2?random=7570&g_tk=${bkn}&format=json&inCharset=utf-8&outCharset=utf-8&qua=V1_IPH_SQ_6.2.0_0_HDBM_T&cmd=qunGetAlbumList&qunId=${gc}&start=0&num=1000&uin=${uin}&getMemberRole=0`; - const response = await RequestUtil.HttpGetJson<{ data: { album: Array<{ id: string, title: string }> } }>(api); + const response = await RequestUtil.HttpGetJson<{ data: { album: Array<{ id: string, title: string }> } }>(api, 'GET', '', { + 'Cookie': cookies + }); return response.data.album; } diff --git a/src/onebot/action/extends/GetQunAlbumList.ts b/src/onebot/action/extends/GetQunAlbumList.ts index d39031d2..626d536c 100644 --- a/src/onebot/action/extends/GetQunAlbumList.ts +++ b/src/onebot/action/extends/GetQunAlbumList.ts @@ -1,4 +1,5 @@ +import { NTQQWebApi } from '@/core/apis'; import { OneBotAction } from '@/onebot/action/OneBotAction'; import { ActionName } from '@/onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; @@ -8,7 +9,7 @@ const SchemaData = Type.Object({ type Payload = Static; -export class GetQunAlbumList extends OneBotAction { +export class GetQunAlbumList extends OneBotAction>> { override actionName = ActionName.GetQunAlbumList; override payloadSchema = SchemaData;