























@@ -130,6 +130,16 @@ function inspectTokenValue(params: { cfg: OpenClawConfig; value: unknown }): {
130130return null;
131131}
132132133+function hasConfiguredTelegramAccounts(cfg: OpenClawConfig): boolean {
134+const accounts = cfg.channels?.telegram?.accounts;
135+return (
136+!!accounts &&
137+typeof accounts === "object" &&
138+!Array.isArray(accounts) &&
139+Object.keys(accounts).length > 0
140+);
141+}
142+133143function inspectTelegramAccountPrimary(params: {
134144cfg: OpenClawConfig;
135145accountId: string;
@@ -140,6 +150,10 @@ function inspectTelegramAccountPrimary(params: {
140150const enabled = params.cfg.channels?.telegram?.enabled !== false && merged.enabled !== false;
141151142152const accountConfig = resolveTelegramAccountConfig(params.cfg, accountId);
153+const allowChannelCredentialFallback =
154+accountId === DEFAULT_ACCOUNT_ID ||
155+!!accountConfig ||
156+!hasConfiguredTelegramAccounts(params.cfg);
143157const accountTokenFile = inspectTokenFile(accountConfig?.tokenFile);
144158if (accountTokenFile) {
145159return {
@@ -168,35 +182,37 @@ function inspectTelegramAccountPrimary(params: {
168182};
169183}
170184171-const channelTokenFile = inspectTokenFile(params.cfg.channels?.telegram?.tokenFile);
172-if (channelTokenFile) {
173-return {
174- accountId,
175- enabled,
176-name: normalizeOptionalString(merged.name),
177-token: channelTokenFile.token,
178-tokenSource: channelTokenFile.tokenSource,
179-tokenStatus: channelTokenFile.tokenStatus,
180-configured: channelTokenFile.tokenStatus !== "missing",
181-config: merged,
182-};
183-}
185+if (allowChannelCredentialFallback) {
186+const channelTokenFile = inspectTokenFile(params.cfg.channels?.telegram?.tokenFile);
187+if (channelTokenFile) {
188+return {
189+ accountId,
190+ enabled,
191+name: normalizeOptionalString(merged.name),
192+token: channelTokenFile.token,
193+tokenSource: channelTokenFile.tokenSource,
194+tokenStatus: channelTokenFile.tokenStatus,
195+configured: channelTokenFile.tokenStatus !== "missing",
196+config: merged,
197+};
198+}
184199185-const channelToken = inspectTokenValue({
186-cfg: params.cfg,
187-value: params.cfg.channels?.telegram?.botToken,
188-});
189-if (channelToken) {
190-return {
191- accountId,
192- enabled,
193-name: normalizeOptionalString(merged.name),
194-token: channelToken.token,
195-tokenSource: channelToken.tokenSource,
196-tokenStatus: channelToken.tokenStatus,
197-configured: channelToken.tokenStatus !== "missing",
198-config: merged,
199-};
200+const channelToken = inspectTokenValue({
201+cfg: params.cfg,
202+value: params.cfg.channels?.telegram?.botToken,
203+});
204+if (channelToken) {
205+return {
206+ accountId,
207+ enabled,
208+name: normalizeOptionalString(merged.name),
209+token: channelToken.token,
210+tokenSource: channelToken.tokenSource,
211+tokenStatus: channelToken.tokenStatus,
212+configured: channelToken.tokenStatus !== "missing",
213+config: merged,
214+};
215+}
200216}
201217202218const allowEnv = accountId === DEFAULT_ACCOUNT_ID;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。