var token = "..."; // telegram bot token var apikey = "..."; // openai api key var weburi = "...."; // google webapp url removing the "https://script.google.com/macros/s/" and "/exec" function doPost(e) { var contents = JSON.parse(e.postData.contents); var txt = ""; if (contents.message) { var id = contents.message.from.id; var text = contents.message.text; if( text.includes("/")) { return ; } if (text.length > 0) { txt = text.trim(); if (txt.length > 0) { var url = call_dalle(apikey, txt); sendImage(token, url, id); } return; } } } function stop_bot() { var txt = codelib.RemoveWebhook(token); Logger.log(txt); } function bot_info() { var txt = codelib.WebhookInfo(token); Logger.log(txt); } function start_bot() { var txt = codelib.setWebhook(token,weburi); Logger.log(txt); } function call_dalle(apikey, prompt) { var dalle_url = 'https://api.openai.com/v1/images/generations'; var options = { "method": 'POST', "headers": { 'Content-Type': 'application/json', 'Authorization': `Bearer ` + apikey }, "payload": JSON.stringify({ "model": "image-alpha-001", "prompt": prompt, // "a white siamese cat" "num_images": 1, "size": "256x256", "response_format": "url" }), muteHttpExceptions: true } var response = UrlFetchApp.fetch(dalle_url, options); var responseJson = response.getContentText(); var responseData = JSON.parse(responseJson); Logger.log(responseData); var image_url = responseData['data'][0]['url']; return image_url; } function sendImage(token, url, id) { var telegramUrl = "https://api.telegram.org/bot" + token; var request = UrlFetchApp.fetch(telegramUrl + "/sendPhoto", { method: "post", contentType: "application/json", payload: JSON.stringify({ chat_id: id, photo: url, }), }); }