我想通过telgeram bot将电子表格用作TODO列表,以便在手机中输入应保存在电子表格中的内容时进行输入。(im编码类似于https://www.youtube.com/watch?v=XoTpdxbkGGk
一切都是真的,谷歌表,电报机器人真正感染了,但我不知道为什么当我在电报机器人中输入数据时,这并没有在谷歌表中保存任何内容。
请帮助我
var token="<<BOT-TOKEN>>";
var url="https://api.telegram.org/bot" + token ;
var webAppUrl="https://script.google.com/macros/s/<<secret>>/exec";
var spId='<<secret>>';
function getme() {
var response=UrlFetchApp.fetch(url + "/getme");
Logger.log(response.getContentText());
}
function getupdates() {
var response=UrlFetchApp.fetch(url + "/getupdates");
Logger.log(response.getContentText());
}
function setwebhook() {
var response=UrlFetchApp.fetch(url + "/setWebhook?url=" + webAppUrl);
Logger.log(response.getContentText());
}
function setwebhook() {
var response=UrlFetchApp.fetch(url + "/sendMessage?chat_id=" + id + "&text" + text);
Logger.log(response.getContentText());
}
function doGet(m){
return HtmlService.createHtmlOutput("Heloo" + JSON.stringify(m));
}
function doPost(m){
var contents = JSON.parse(m.PostData.contents);
GmailApp.sendEmail(Session.getEffectiveUser().getEmail(),"Telegram Bot Update",JSON.stringify(contents,null,4));
var text = contents.message.text;
var id = contents.message.from.id;
var name = contents.message.from.first_name + ' ' + contents.message.from.last_name;
sendText(id, "HI" + name);
SpreadsheetApp.openById(spId).appendRow([new Date(),id,text,contents,name]);
SpreadsheetApp.openById(spId).appendRow([1,2,3,4,5]);
}
/*
{
"parameter": {},
"contextPath": "",
"contentLength": 310,
"queryString": "",
"parameters": {},
"postData": {
"type": "application/json",
"length": 310,
"contents": "{\"update_id\":*,\n\"message\":{\"message_id\":12,\"from\":{\"id\":*,\"is_bot\":false,\"first_name\":\"*\\*\",\"username\":\"*\",\"language_code\":\"fa\"},\"chat\":{\"id\":*,\"first_name\":\"*\\*\",\"username\":\"*\",\"type\":\"private\"},\"date\":1558331571,\"text\":\"salaaaaaaaaaaaaam\"}}",
"name": "postData"
}
*/
期望这可以保存电报机器人键入的所有内容并将数据保存在Google工作表行中。但是它可以保存数据或在工作表单元格中显示它们。
最佳答案
在我看来,使用App脚本与电子表格进行交互并不十分灵活,如果您想扩展应用程序并添加更多功能,可能并不好。
我创建了一个整个项目,使讲师可以管理他们的注册表并从电报中参加,然后自动更新电子表格。我使用了官方的Google Spreadsheet Api,与App脚本相比,它具有出色的文档和灵活的用法。
这是github上项目的代码。您可以在the modules folder然后在spreadSheetController中找到我为电子表格编写函数的位置。这个项目很大,但是我可以通过简单的工作来说明如何适合您的用例。
基本要求:
使用库与电报api交互,而不要自己发出POST
和GET
请求。您可以使用node-telegram-bot-api,但是可以使用选择的other libraries。
使用api对您的Google电子表格进行身份验证。 Google团队非常重视quick start,请按照说明进行操作,并且您应该拥有一个可编程的电子表格。我假设您将在nodejs中进行操作。
一旦拥有了这两点,我上面链接到的项目将很有用。我希望这会有所帮助,如果不清楚的话,请让我知道我不想将所有代码都粘贴到这里(很多时候都退出了),但是出勤项目应该可以自我解释。
关于javascript - 在Google工作表中从电报bot输入数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56223797/