import { getTokenFromStore } from '~/server/utils/CookieStore'; import { proxyMpRequest } from '~/server/utils/proxy-request'; interface AppMsgPublishQuery { fakeid: string; begin?: number; size?: number; keyword?: string; } export default defineEventHandler(async event => { const token = await getTokenFromStore(event); if (!token) { return { base_resp: { ret: -1, err_msg: '认证信息无效', }, }; } const query = getQuery(event); if (!query.fakeid) { return { base_resp: { ret: -1, err_msg: 'fakeid不能为空', }, }; } const fakeid = query.fakeid; const keyword = query.keyword || ''; const begin: number = query.begin || 0; const size: number = query.size || 5; const isSearching = !!keyword; const params: Record = { sub: isSearching ? 'search' : 'list', search_field: isSearching ? '7' : 'null', begin: begin, count: size, query: keyword, fakeid: fakeid, type: '101_1', free_publish_type: 1, sub_action: 'list_ex', token: token, lang: 'zh_CN', f: 'json', ajax: 1, }; const resp = await proxyMpRequest({ event: event, method: 'GET', endpoint: 'https://mp.weixin.qq.com/cgi-bin/appmsgpublish', query: params, parseJson: true, }).catch(e => { return { base_resp: { ret: -1, err_msg: '获取文章列表接口失败,请重试', }, }; }); if (resp.base_resp.ret === 0) { const publish_page = JSON.parse(resp.publish_page); const articles = publish_page.publish_list .filter((item: any) => !!item.publish_info) .flatMap((item: any) => { const publish_info = JSON.parse(item.publish_info); return publish_info.appmsgex; }); return { base_resp: resp.base_resp, articles: articles, }; } return resp; });