Page 1 of 1
รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 1:35 am
by Jancha
กำลังสร้าง forms ด้วย google forms บน google ครับสิ่งที่ต้องการคือถ้ามีผู้มาทำแบบทดสอบเสร็จเมื่อ submit จบสิ้นให้คำตอบที่ทำนั้นส่งไปยัง line group ด้วยบริการ line notify (ที่นี้ต้องการส่งมากกว่า 1 group) จึงทำการสร้าง group line ไว้ 3 group เพื่อใช้ทดสอบโดย generate token ออกมาจากเว็บ -->
https://notify-bot.line.me/th/ เขียน script ผลทดสอบเบื้องต้นที่ได้สามารถส่งคำตอบไปยัง line group ได้เพียง 1 group เท่านั้นยังไม่สามารถส่งได้ครบทุก group ตามที่ต้องการ จึงอยากรบกวนช่วย edit script ให้สามารถทำได้ตามที่กำหนดด้วยครับ ไฟล์ google form demo -->
https://drive.google.com/open?id=1IujA5 ... 0nbw5l_lJM
Code: Select all
function getFormData(e)
{
var token = "unrGUE9rRSPaQ0JCtBdtIgVvAX5Q4rlZjs80i6Tdjwq"; //Token 1 Group test 1
var token = "eF8XqyCPH3U8hWepfUh0KMQzdAed78kn4ff4u6ExdR2"; //Token 2 Group test 2
var token = "1syohLx616F5cyPjZOYr6aaMBm1dIofXBXZVlSojvb0"; //Token 2 Group test 3
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
for(var i = 0; i < currentItemResponses.length; i++)
{
message += currentItemResponses[i].getItem().getTitle() + ":" + currentItemResponses[i].getResponse() + "\n";
}
message += "\n" + "Record done :" + e.response.getTimestamp();
sendLineNotify(message, token);
}
function sendLineNotify(message, token)
{
var options =
{
"method" : "post",
"payload" : "message=" + message,
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 6:30 am
by snasui
ตัวอย่างการปรับ Code ครับ
Code: Select all
function getFormData(e)
{
var token1 = "unrGUE9rRSPaQ0JCtBdtIgVvAX5Q4rlZjs80i6Tdjwq"; //Token 1 Group test 1
var token2 = "eF8XqyCPH3U8hWepfUh0KMQzdAed78kn4ff4u6ExdR2"; //Token 2 Group test 2
var token3 = "1syohLx616F5cyPjZOYr6aaMBm1dIofXBXZVlSojvb0"; //Token 2 Group test 3
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
for(var i = 0; i < 3; i++)
{
message += currentItemResponses[i].getItem().getTitle() + ":" + currentItemResponses[i].getResponse() + "\n";
}
message += "\n" + "Record done :" + e.response.getTimestamp();
sendLineNotify(message, "token" + i);
}
'Other code
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 10:04 am
by Jancha
ปรับ code แล้วแต่ไม่มีผลการส่งไปยัง line group ใดๆเลยครับนิ่งสนิท
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 10:21 am
by snasui
ปรับเป็นอย่างไร ลองคัดลอก Code ทั้งหมดมาวางใหม่อีกรอบครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 10:31 am
by Jancha
ปรับตามนี้ครับ
Code: Select all
function getFormData(e)
{
var token1 = "unrGUE9rRSPaQ0JCtBdtIgVvAX5Q4rlZjs80i6Tdjwq"; //Token 1 Group test 1
var token2 = "eF8XqyCPH3U8hWepfUh0KMQzdAed78kn4ff4u6ExdR2"; //Token 2 Group test 2
var token3 = "1syohLx616F5cyPjZOYr6aaMBm1dIofXBXZVlSojvb0"; //Token 3 Group test 3
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
for(var i = 0; i < 3; i++)
{
message += currentItemResponses[i].getItem().getTitle() + ":" + currentItemResponses[i].getResponse() + "\n";
}
message += "\n" + "Record done :" + e.response.getTimestamp();
sendLineNotify(message, "token" + i);
}
function sendLineNotify(message, token)
{
var options =
{
"method" : "post",
"payload" : "message=" + message,
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 10:40 am
by snasui
ปรับการ Loop เป็นด้านล่างครับ
Code: Select all
for(var i = 0; i < 3; i++)
{
message += currentItemResponses[i].getItem().getTitle() + ":" + currentItemResponses[i].getResponse() + "\n";
message += "\n" + "Record done :" + e.response.getTimestamp();
sendLineNotify(message, "token" + i + 1);
}
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 10:51 am
by Jancha
ปรับ script แล้วยังเงียบเช่นเดิมครับ
Code: Select all
function getFormData(e)
{
var token1 = "unrGUE9rRSPaQ0JCtBdtIgVvAX5Q4rlZjs80i6Tdjwq"; //Token 1 Group test 1
var token2 = "eF8XqyCPH3U8hWepfUh0KMQzdAed78kn4ff4u6ExdR2"; //Token 2 Group test 2
var token3 = "1syohLx616F5cyPjZOYr6aaMBm1dIofXBXZVlSojvb0"; //Token 3 Group test 3
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
for(var i = 0; i < 3; i++)
{
message += currentItemResponses[i].getItem().getTitle() + ":" + currentItemResponses[i].getResponse() + "\n";
message += "\n" + "Record done :" + e.response.getTimestamp();
sendLineNotify(message, "token" + i + 1);
}
}
function sendLineNotify(message, token)
{
var options =
{
"method" : "post",
"payload" : "message=" + message,
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 10:59 am
by snasui
กรณีนี้ผมช่วยได้เท่านี้ครับ
Code นี้แค่เป็นการ Loop Token แต่ละตัวส่งไปให้กับ Function
sendLineNotify
เท่านั้นครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Sun Sep 30, 2018 11:09 am
by Jancha
ขอบคุณมากครับอาจารย์ เดี๋ยวผมไปพยายามต่อครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Mon Oct 01, 2018 8:35 pm
by Jancha
ปล้ำอยู่นานเอาจนได้ครับอาจารย์ ขอบคุณมากครับที่นำทางจนคล้ำไปจนพบ
Code: Select all
function getFormData(e) {
var token = ["unrGUE9rRSPaQ0JCtBdtIgVvAX5Q4rlZjs80i6Tdjwq","eF8XqyCPH3U8hWepfUh0KMQzdAed78kn4ff4u6ExdR2"];
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
for(var i = 0; i < currentItemResponses.length; i++) {
message += currentItemResponses[i].getItem().getTitle() + ":" + currentItemResponses[i].getResponse() + "\n";
}
message += "\n" + "Record done :" + e.response.getTimestamp();
for(var j = 0; j < 2; j++) {
sendLineNotify(message, token[j]);
}
}
function sendLineNotify(message, token){
var options =
{
"method" : "post",
"payload" : "message=" + message,
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Mon Oct 01, 2018 8:42 pm
by snasui
ยินดีด้วยครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Wed Dec 12, 2018 1:49 pm
by indyzbinary
code นี้ เอาใส่ สคริปในฟอร์มก็ใช้ได้เลยหรอครับ หรืต้องเพิ่มเติมตรงไหนอีกไหม ผมลองแล้วไม่ผ่านครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Fri Dec 14, 2018 8:06 pm
by snasui
เนื่องจากผมไม่ได้ใช้งานในลักษณะนี้จึงไม่มีที่ที่จะให้ทดสอบ เพียงแต่ช่วยตอบให้ได้ในแนวทางของการ Code
ลองสอบถามไปยังคุณ Jancha ทางอีเมล วิธีการดูตามรูปครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Thu Jan 10, 2019 4:10 pm
by Jancha
ตอนนี้ google app script มีการ upgrade ไปนิดหน่อยลองเพิ่ม code ตามนี้ครับ
เพิ่มคำสั่งนี้เข้าไประหว่าง
var token = ......
var form = FormApp.getActiveForm() //เพิ่มเข้าไป
var currentItemResponses = .......
Code: Select all
function getFormData(e) {
var token = ["Token line group 1","Token line group 2"]; /**จำนวน group line ที่ต้องการรับ message กี่กลุ่มก็ไป generate token ที่ https://notify-bot.line.me/th/ ลองศึกษาวิธีมีมากใน google ครับ**/
var form = FormApp.getActiveForm() // เพิ่มบันทัดนี้เข้าไปครับ
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
//วนรับคำตอบจากทุกๆข้อ
for(var i = 0; i < currentItemResponses.length; i++) {
message += currentItemResponses[i].getItem().getTitle() + ": " + currentItemResponses[i].getResponse() + "\n";
}
message += "\n" + "「Timestamp」:" + e.response.getTimestamp();
//วนส่งคำตอบไปยังทุกกลุ่มตาม token
for(var j = 0; j < token.length; j++) {
sendLineNotify(message, token[j]);
}
}
function sendLineNotify(message, token){
var options =
{
"method" : "post",
"payload" : {"message" : message},
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify ขึ้น error code 401 ที่บรรทัดสุดท้าย
Posted: Sun Jul 14, 2019 8:42 am
by soparanee
function onFormSubmit()
{
var form = FormApp.openById('1J4JQ6OT0ScrkKYd86T_OZYjEA8ZmE5nszi7zzCb37Qc');
var fRes = form.getResponses();
var formResponse = fRes[fRes.length - 1];
var itemResponses = formResponse.getItemResponses();
var token = ["MWL5m0yNPy5bJL7wkQdC1BJEjSWwi7yVOnhKat8CyO6","bYh7LLQcpVPRmaIYfLAg3M6SWUcZ2RQKpCZEu5UEAl1"]; //ใส่ access token ที่ใช้งาน
var form = FormApp.getActiveForm() // เพิ่มบรรทัดนี้เข้าไปครับ
var msg = 'รายการใหม่!' +
' \n' + 'ชื่อ: ' + itemResponses[0].getResponse() +
' \n' + itemResponses[1].getItem().getTitle() + ': ' + itemResponses[1].getResponse() +
' \n' + itemResponses[2].getItem().getTitle() + ': ' + itemResponses[2].getResponse()
//วนส่งคำตอบไปยังทุกกลุ่มตาม token
for(var j = 0; j < token.length; j++) {
sendLineNotify(msg, token[j]);
}
sendLineNotify(msg,token);
// Logger.log(msg)
}
function sendLineNotify(message,token)
{
var options =
{
"method": "post",
"payload": "message=" + message,
"headers":
{
"Authorization": "Bearer " + token
}
};
UrlFetchApp.fetch("
https://notify-api.line.me/api/notify", options);
}
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Thu Oct 03, 2019 10:00 am
by cokezaha
function getFormData(e) {
var token = ["ovQ7btvCPQ32CpMvQfTwb0EefRWL8Xkm9WuLlgvhNMg"];
var currentItemResponses = e.response.getItemResponses();
var message = "\n";
for(var i = 0; i < currentItemResponses.length; i++) {
message += currentItemResponses
.getItem().getTitle() + ":" + currentItemResponses.getResponse() + "\n";
}
message += "\n" + "Record done :" + e.response.getTimestamp();
for(var j = 0; j < 2; j++) {
sendLineNotify(message, token[j]);
}
}
function sendLineNotify(message, token){
var options =
{
"method" : "post",
"payload" : "message=" + message,
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
รบกวนครับ ผมติดปัญหาตรง ** var currentItemResponses = e.response.getItemResponses(); รันไม่ผ่านครับ
Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify
Posted: Mon Oct 10, 2022 11:59 am
by alif15219
//********************************************************************************************************************* 1 คน
// function onFormSubmit() {
// var form = FormApp.openById('xxx');
// var fRes = form.getResponses();
// var formResponse = fRes[fRes.length - 1];
// var itemResponses = formResponse.getItemResponses();
// var msg = 'ทดสอบ';//+
// // ' \n' + itemResponses[0].getItem().getTitle() + ': ' + itemResponses[0].getResponse() +
// // ' \n' + itemResponses[0].getItem().getTitle() + ': ' + itemResponses[0].getResponse() +
// // ' \n' + itemResponses[0].getItem().getTitle() + ': ' + itemResponses[0].getResponse() +
// // ' \n' + itemResponses[0].getItem().getTitle() + ': ' + itemResponses[0].getResponse()
// for (var i = 0; i < itemResponses.length; i++) {
// msg += ' \n' + itemResponses
.getItem().getTitle() + ': ' + itemResponses.getResponse();
// }
// sendLineNotify(msg);
// }
// function sendLineNotify(message) {
// var token = ['xxx']; // ***ใส่ token ของกลุ่ม Line ที่ใช้งาน***
// var options = {
// "method": "post",
// "payload": "message=" + message,
// "headers": {
// "Authorization": "Bearer " + token
// }
// };
// UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
// }
//********************************************************************************************************************* 2 คน
function onFormSubmit(e) {
var token = ["xxx","xxx"]; /**จำนวน group line ที่ต้องการรับ message กี่กลุ่มก็ไป generate token ที่ https://notify-bot.line.me/th/ ลองศึกษาวิธีมีมากใน google ครับ**/
// var form = FormApp.getActiveForm() // เพิ่มบันทัดนี้เข้าไปครับ
// var currentItemResponses = e.response.getItemResponses();
var form = FormApp.openById('xxx');
var fRes = form.getResponses();
var formResponse = fRes[fRes.length - 1];
var currentItemResponses = formResponse.getItemResponses();
var message = "\n";
//วนรับคำตอบจากทุกๆข้อ
for(var i = 0; i < currentItemResponses.length; i++) {
message += currentItemResponses.getItem().getTitle() + ": " + currentItemResponses.getResponse() + "\n";
}
message += "\n" + "「Timestamp」:" + formResponse.getTimestamp();
//วนส่งคำตอบไปยังทุกกลุ่มตาม token
for(var j = 0; j < token.length; j++) {
sendLineNotify(message, token[j]);
}
}
function sendLineNotify(message, token){
var options =
{
"method" : "post",
"payload" : {"message" : message},
"headers" : {"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}