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
:D ตัวอย่างการปรับ 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 ใดๆเลยครับนิ่งสนิท :D

Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify

Posted: Sun Sep 30, 2018 10:21 am
by snasui
:D ปรับเป็นอย่างไร ลองคัดลอก 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
:D ปรับการ 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
:D กรณีนี้ผมช่วยได้เท่านี้ครับ

Code นี้แค่เป็นการ Loop Token แต่ละตัวส่งไปให้กับ Function sendLineNotify เท่านั้นครับ

Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify

Posted: Sun Sep 30, 2018 11:09 am
by Jancha
ขอบคุณมากครับอาจารย์ เดี๋ยวผมไปพยายามต่อครับ :thup:

Re: รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify

Posted: Mon Oct 01, 2018 8:35 pm
by Jancha
ปล้ำอยู่นานเอาจนได้ครับอาจารย์ ขอบคุณมากครับที่นำทางจนคล้ำไปจนพบ :D


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
:thup: ยินดีด้วยครับ

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
:D เนื่องจากผมไม่ได้ใช้งานในลักษณะนี้จึงไม่มีที่ที่จะให้ทดสอบ เพียงแต่ช่วยตอบให้ได้ในแนวทางของการ 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);
}