GASをslackと連携させるため、ウェブアプリケーションとして公開したいのですがうまくいかず、調べていたところ深みにはまってしましました。
qiitaの関連ページなどをいくつも検索し、試しましたが解決には至りませんでした。
1、doGet,doPost関数が反応しない
こちらの記事を参考に実装したのですが、curlコマンドを打つとCSSのスタイルやスクリプトタグを含む文章が返ってきました。
javascript
1function doGet(e) { 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet = ss.getSheetByName('シート1'); 4 var sheetData = sheet.getRange('A2:B' + sheet.getLastRow()).getValues(); 5 6 // データの成形 7 var responseList = []; 8 sheetData.map(function(d) { 9 responseList.push({ fruit: d[0], price: d[1] }); 10 }); 11 12 // レスポンス 13 var response = { 14 data: responseList, 15 meta: { status: 'success' } 16 }; 17 return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON); 18}
command
1curl -L "エンドポイントURL"
長いので一部ですが、このようなものが返ってきます。
command
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <meta content="width=300, initial-scale=1" name="viewport"> 6 <meta name="google-site-verification" content="LrdTUW9psUAMbh4Ia074-BPEVmcpBxF6Gwf0MSgQXZs"> 7 <title>繝ュ繧ー繧、繝ウ - Google 繧「繧ォ繧ヲ繝ウ繝・/title> 8<style> 9 html, body { 10 font-family: Arial, sans-serif; 11 background: #fff; 12 margin: 0; 13 padding: 0; 14 border: 0; 15 position: absolute; 16 height: 100%; 17 min-width: 100%; 18 font-size: 13px; 19 color: #404040; 20 direction: ltr; 21 -webkit-text-size-adjust: none; 22 } 23 button, 24 input[type=button], 25 input[type=submit] {
スクリプトエディタ>公開>ウェブアプリケーションとして導入>test web app for your latest code.
では問題なく表示されます。
javascript
1{ 2 "data":[ 3 {"fruit":"apple","price":100}, 4 {"fruit":"banana","price":200}, 5 {"fruit":"orange","price":300}, 6 {"fruit":"grape","price":500}], 7 "meta":{"status":"success"} 8}
slackでの認証に失敗する
また、こちらのサイトを参考にslackとの連携を行おうと思ったのですがこのようにエラーが出てしまいました。
参考サイトのコードをそのままコピペしたので、タイポはないと思います。
javascript
1function doPost(e) { 2 3 var postData = JSON.parse(e.postData.getDataAsString()); 4 5 if (postData.type == "url_verification") { 6 return ContentService.createTextOutput(postData.challenge); 7 } 8 9 var param = postData.event.text; 10 if (postData.event.subtype == "bot_message" || param == null) { 11 return; 12 } 13}
curlのコマンドを変えてみたり、グーグルのアカウントを変更、スクリプトを一から作成といろいろ試してみましたが、インターネットの記事に同様の症状が載っておらず。
あったとしても、権限の範囲が間違っていた等、私には当てはまらないことばかりで、解決できませんでしたので、こちらにて質問させていただきました。
ご回答いただければ、幸いです。
回答1件
あなたの回答
tips
プレビュー