package com.ruoyi.jarvis.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; /** * 腾讯文档开放平台配置 * * @author system */ @Configuration @Component @ConfigurationProperties(prefix = "tencent.doc") public class TencentDocConfig { private static final Logger log = LoggerFactory.getLogger(TencentDocConfig.class); /** 应用ID */ private String appId; /** 应用密钥 */ private String appSecret; /** 授权回调地址 */ private String redirectUri; /** API基础地址 - V3版本(注意:根据文档路径推测应该是 /open/api/v3) */ private String apiBaseUrl = "https://docs.qq.com/open/api/v3"; /** OAuth授权地址 */ private String oauthUrl = "https://docs.qq.com/oauth/v2/authorize"; /** 获取Token地址 */ private String tokenUrl = "https://docs.qq.com/oauth/v2/token"; /** 刷新Token地址 */ private String refreshTokenUrl = "https://docs.qq.com/oauth/v2/token"; /** * 配置初始化后验证 */ @PostConstruct public void init() { log.info("腾讯文档配置加载 - appId: {}, redirectUri: {}, apiBaseUrl: {}", appId != null && appId.length() > 10 ? appId.substring(0, 10) + "..." : (appId != null ? appId : "null"), redirectUri != null ? redirectUri : "null", apiBaseUrl); if (appId == null || appId.trim().isEmpty()) { log.warn("腾讯文档应用ID未配置!请检查application-dev.yml中的tencent.doc.app-id"); } if (appSecret == null || appSecret.trim().isEmpty()) { log.warn("腾讯文档应用密钥未配置!请检查application-dev.yml中的tencent.doc.app-secret"); } if (redirectUri == null || redirectUri.trim().isEmpty()) { log.warn("腾讯文档回调地址未配置!请检查application-dev.yml中的tencent.doc.redirect-uri"); } } public String getAppId() { return appId; } public void setAppId(String appId) { this.appId = appId; } public String getAppSecret() { return appSecret; } public void setAppSecret(String appSecret) { this.appSecret = appSecret; } public String getRedirectUri() { return redirectUri; } public void setRedirectUri(String redirectUri) { this.redirectUri = redirectUri; } public String getApiBaseUrl() { return apiBaseUrl; } public void setApiBaseUrl(String apiBaseUrl) { this.apiBaseUrl = apiBaseUrl; } public String getOauthUrl() { return oauthUrl; } public void setOauthUrl(String oauthUrl) { this.oauthUrl = oauthUrl; } public String getTokenUrl() { return tokenUrl; } public void setTokenUrl(String tokenUrl) { this.tokenUrl = tokenUrl; } public String getRefreshTokenUrl() { return refreshTokenUrl; } public void setRefreshTokenUrl(String refreshTokenUrl) { this.refreshTokenUrl = refreshTokenUrl; } }