前提・実現したいこと
C言語の基礎を少し学んだくらいの未熟者ですがよろしくお願いいたします。
本題ですが、
「slackにあげたファイルをslackではなくGoogledriveに転送・保存することです。」
下記のサイトにまとめてありましたので参考にさせていただきましたが、
真似できなかったため質問させていただきます。
https://qiita.com/GMA/items/7e3e7cedcb880f2c1dc9
発生している問題・エラーメッセージ
かっこの数とスペルを確認したつもりですが、最終行にエラーが出てしまって
ウェブアプリケーションのURLが作成されなくて困っております。
行137とは最終行の}の部分になります。
普通に実行できない原因をわかりたいです!!!
SyntaxError: Unexpected end of input(行 137、ファイル「・・・・.gs」)
該当のソースコード
GAS
1function doPost(e){ 2 var params=JSON.parse(e.postData.getDataAsString()); 3 if(params.type==="url_verification"){ 4 return ContentService.createTextOutput(params.challenge); 5 } 6 if(params.event.type==="file_shared"){movefiles(params); 7} 8 return ContentService.createTextOutput('ok'); 9} 10 11 12function moveFiles(params){ 13 var notCopyType=["text","c"]; 14 var scriptProperties=PropertiesService.getScriptProperties(); 15 var slackAccessToken=scriptPtoperties.getProperty("****-***********-************-************-**************************"); 16 var folderid=scriptProperties.getProperty("****************************"); 17 try{ 18 var fileId=params.event.file_id; 19 var userId=params.event.user_id; 20 var userResponce=UrlFetchApp.fetch('https://slack.com/api/users.info?token='+slackAccessToken+'&user='+userId); 21 var userInfo=JSON.parse(userResponse.getContentText()); 22 var userName=userInfo.user.name; 23 var displayName=userInfo.user.profile.display_name; 24 if(displayName===""){ 25 displayName=userInfo.user.profile.real_name; 26 } 27 var fileResponse=UrlFetchApp.fetch('https://slack.com/api/files.info?token='+slackAccessToken+'&file='+fileId); 28 var fileInfo=JSON.parse(fileResponse.getContentText()); 29 if(finleInfo.file.external_type=='gdrive'){ 30 return; 31 } 32 if(fileInfo.file.size>50000000){ 33 return; 34 } 35 var dlUrl=fileInfo.file.url_private; 36 var fileType=fileInfo.file.filetype; 37 for(i in notCopyType){ 38 if(fileType==notCopyType[i]){ 39 return; 40 } 41 } 42 var headers={ 43 "method":"GET", 44 "geaders":heaeders 45 }; 46 var dlData=UrlFetchApp.fetch(dlUrl,params2).getBlob(); 47 var rootFolder=DriveApp.getFolderById(folderId); 48 var targetFolder=rootFolder.getFoldersByName(userName+"_slackItems"); 49 if(targetFolder.hasNext()==false){ 50 var targetFolderId=rootFolder.createFolder(userName+"_slackItems"); 51 }else{ 52 var targetFolderId=DriveApp.getFoldById(targetFolder.next().getId()); 53 } 54 dlData.setName(fileInfo.file.name); 55 var drive=targetFolderId.createFile(dlData); 56 driveFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK,DriveApp.Permission.VIEW); 57 Utilities.sleep(100); 58 59 //スラックにリンクを張る処理 60 61 var shares=fileInfo.file.shares; 62 for(key in shares){ 63 foo=shares[key]; 64 postType=key; 65 break; 66 } 67 for(key in shares){ 68 foo=shares[key]; 69 channelId=key; 70 break; 71 } 72 var th_ts=0.0; 73 var ts=0.0; 74 for(key in bar[0]){ 75 if(key=="thread_ts"){ 76 th_ts==bar[0][key]; 77 } 78 } 79 var message =displayName+'さんが'+fileInfo.file.name+'を共有しました!/n'+drivefile.getUrl(); 80 if(ts !=0.0){ 81 var historyResponse=UrlFetchApp.fetch('https://slack.com/api/channels.history?token='+slackAccessToken+'&channel='+channelId+'&count=1&latest='+ts+'&oldest='+ts+'&inclusive=true'); 82 var historyInfo=JSON.parse(historyResponse.getContentText()); 83 message=messame+'\n\n'+historyInfo.messages[0].text; 84 var delparams={ 85 'token':slackAccessToken, 86 'channel':channelId, 87 'ts':ts, 88 'as_user':false 89 }; 90 var deloptions={ 91 'method':'POST', 92 'payload':delparams 93 }; 94 UrlFetchApp.fetch('https://slack.com/api/chat.delete',deloptions); 95 } 96 if(th_ts !=0.0){ 97 postText(slackAccessToken,channelId,message,th_ts); 98 }else{ 99 postText(slackAccessToken,channelId,message); 100 } 101 //スラック上のファイルを削除 102 var params={ 103 'token':slackAccessToken, 104 'file':fileId 105 }; 106 var options={ 107 'method':'POST', 108 'payload':params 109 }; 110 try{ 111 var res =UrlFetchApp.fetch('http://slack.com/api/files.delete',options); 112 }catch(e){ 113 postText(slackAccessToken,channelId,'Error:'+e); 114 } 115function postText (token,channel,txt,th_ts){ 116 if(th_ts==undefined){ 117 var params={ 118 'token':token, 119 'channel':channel, 120 'text':txt, 121 'as_user':false 122 }; 123 }else{ 124 var params={ 125 'token':token, 126 'channel':channel, 127 'text':txt, 128 'as_user':false, 129 'thread_ts':th_ts 130 }; 131 } 132var options={ 133 'method':'POST', 134 'payload':params 135}; 136 UrlFetchApp.fetch('https://slack.com/api/chat.postMessage', options); 137}
試したこと
・途中のcatchのところでおそらくリンク先の作成者様がコードの打ち間違えているのではないかと思い、tryを用いたところ、その場所のエラーは解消されました。(ここが原因かもしれません。)
・スペル、【】は確認したつもりです、、
・84行目からも同じ作業を行っていると思うのですが、コードの記入に違いはないのかと確認いたしました。
補足情報(FW/ツールのバージョンなど)
2020/2/16にGASをインストールしました。
回答1件
あなたの回答
tips
プレビュー