大喜利JSON
コピーを保存し、自分のGoogleDriveに保存してください。
answer列に大喜利の回答を追加します
subject列にお題を追加します
「〇〇」は必須です。複数回答させる場合は「✕✕」も追加します(G列にある物をコピペがオススメです)
拡張機能>Apps Scriptをクリックし、Apps Scriptを起動してください。
下記を保存し、スプレッドシートから大喜利用のJSONを返却するAPIを作成してください。
ohgiri_json.jsfunction doGet(e) {
// listデータをjsonに変換
payload = JSON.stringify(get_data());
ContentService.createTextOutput()
var output = ContentService.createTextOutput();
output.setMimeType(ContentService.MimeType.JSON);
output.setContent(payload);
// return response-data
return output;
}
function get_data(){
let size = 1000;
var sheetName = "data";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var values = transpose(sheet.getRange(1, 1, size, 2).getValues());// transposeで転置
var res = {};
for (var i=0; i<2; i++){
res[values[i][0]] = values[i].slice(1).filter(Boolean);// filter(Boolean)で空文字削除
}
Logger.log(res);
return res;
}
const transpose = a => a[0].map((_, c) => a.map(r => r[c]));
function checkEmpty(element) {
return element !== undefined && element !== 0 && element !== null && element !== " "&& element !== "";
}
function test(){
const arr = [1, 2, 3, "",null, 5, undefined, false, 7]
// const x = arr.filter(v => v)
const x = arr.filter(Boolean)
Logger.log(x);
}
doGet
を実行してみて、ログにJSONっぽい物が表示されればAPIの準備は完了です!
ログはこんな感じ
右上にあるデプロイ▼をクリックし、 新しいデプロイ
をクリックします。
種類の選択> ウェブアプリ
をクリックします
説明は任意です。次のユーザーとして実行が「自分」になっていること、アクセスできるユーザーが「全員」になっていることを確認のうえ、デプロイします。
デプロイの管理から実際に使用するURLをクリックし、期待通りJSONが返却されることを確認ください。
こんな感じになっていると、問題ないと思います。

が動かしているBotのお題や回答を追加したい方は以下から登録してください