Преглед изворни кода

修改获取文档id和表格名称的权限

zhou1577692533 пре 1 недеља
родитељ
комит
ab32a0fa12
2 измењених фајлова са 28 додато и 4 уклоњено
  1. 22 1
      src/components/App.tsx
  2. 6 3
      src/script/service.ts

+ 22 - 1
src/components/App.tsx

@@ -63,8 +63,29 @@ function App() {
     }
   }, []);
 
+  const handleConfigPermission = useCallback(async () => {
+    try {
+      const response = await fetch(`http://localhost:3001/api/configPermission?url=${encodeURIComponent(window.location.href)}`);
+      const config = await response.json();
+      
+      await Dingdocs.base.host.configPermission(
+        config.agentId,
+        config.corpId,
+        config.timeStamp,
+        config.nonceStr,
+        config.signature,
+        ['DingdocsScript.base.readWriteAll']
+      );
+      console.log('权限配置成功');
+    } catch (error: any) {
+      console.warn('权限配置失败:', error);
+    }
+  }, []);
+
   const handleAutoLogin = useCallback(async () => {
     try {
+      await handleConfigPermission();
+      
       const urlParams = new URLSearchParams(window.location.search);
       const corpId = urlParams.get('corpId') || '';
       const authResult = await Dingdocs.base.host.getAuthCode(corpId);
@@ -78,7 +99,7 @@ function App() {
       setError(error.message || '登录失败');
       throw error;
     }
-  }, []);
+  }, [handleConfigPermission]);
 
   const loadDocumentInfo = useCallback(async () => {
     try {

+ 6 - 3
src/script/service.ts

@@ -145,7 +145,7 @@ async function callApi(apiItem: Record<string, any>): Promise<ApiResponse> {
   return response.data;
 }
 
-function getDocumentInfo() {
+async function getDocumentInfo() {
   try {
     const base = DingdocsScript.base;
     
@@ -166,10 +166,13 @@ function getDocumentInfo() {
     };
   } catch (error: any) {
     console.error('获取文档信息失败:', error);
+    if (error.message?.includes('PermissionError')) {
+      console.log('文档权限不足,请手动输入文档ID和表格名称');
+    }
     return {
-      uuid: '未知',
+      uuid: '',
       sheetsCount: 0,
-      currentSheet: ''
+      currentSheet: ''
     };
   }
 }