MCPcopy Create free account
hub / github.com/Bistutu/FluentRead / getSecret

Function getSecret

entrypoints/service/yiyan.ts:39–68  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

37}
38
39async function getSecret() {
40 let secret, expiration;
41 config.extra[services.yiyan] && ({secret, expiration} = config.extra[services.yiyan]);
42
43 // 检查 secret 是否存在且未过期
44 if (secret && config.ak && config.sk && expiration > Date.now()) return secret;
45
46 // 构建请求参数
47 let params = new URLSearchParams({
48 'grant_type': 'client_credentials',
49 'client_id': config.ak,
50 'client_secret': config.sk,
51 });
52
53 // 发起 fetch 请求
54 const resp = await fetch(urls[config.service].tokenUrl, {
55 method: method.POST,
56 body: params
57 });
58
59 const res = await resp.json();
60 if (resp.ok && res.access_token) {
61 // 获取有效时间范围,有效期30天(单位秒),需 x1000 转换为毫秒
62 let expiration = new Date().getTime() + res.expires_in * 1000;
63 // 缓存 secret 和 expiration
64 config.extra[services.yiyan] = {secret: res.access_token, expiration: expiration};
65 storage.setItem('local:config', JSON.stringify(config));
66 return res.access_token;
67 } else throw new Error(res.error_description || '文心一言获取 token 失败');
68}
69
70export default yiyan;

Callers 1

yiyanFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected