:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

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

ฟอรัมถาม-ตอบปัญหาอื่น ๆ ที่ไม่เกี่ยวกับ Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่างเพิ่มเติม)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#1

Post 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);
}
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#2

Post 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
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#3

Post by Jancha »

ปรับ code แล้วแต่ไม่มีผลการส่งไปยัง line group ใดๆเลยครับนิ่งสนิท :D
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#4

Post by snasui »

:D ปรับเป็นอย่างไร ลองคัดลอก Code ทั้งหมดมาวางใหม่อีกรอบครับ
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#5

Post 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);
}
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#6

Post 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);
     }
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#7

Post 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);
}
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#8

Post by snasui »

:D กรณีนี้ผมช่วยได้เท่านี้ครับ

Code นี้แค่เป็นการ Loop Token แต่ละตัวส่งไปให้กับ Function sendLineNotify เท่านั้นครับ
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#9

Post by Jancha »

ขอบคุณมากครับอาจารย์ เดี๋ยวผมไปพยายามต่อครับ :thup:
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#10

Post 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);
}
Last edited by Jancha on Mon Oct 01, 2018 9:17 pm, edited 1 time in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#11

Post by snasui »

:thup: ยินดีด้วยครับ
indyzbinary
Member
Member
Posts: 11
Joined: Wed Apr 17, 2013 4:18 pm

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

#12

Post by indyzbinary »

code นี้ เอาใส่ สคริปในฟอร์มก็ใช้ได้เลยหรอครับ หรืต้องเพิ่มเติมตรงไหนอีกไหม ผมลองแล้วไม่ผ่านครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#13

Post by snasui »

:D เนื่องจากผมไม่ได้ใช้งานในลักษณะนี้จึงไม่มีที่ที่จะให้ทดสอบ เพียงแต่ช่วยตอบให้ได้ในแนวทางของการ Code

ลองสอบถามไปยังคุณ Jancha ทางอีเมล วิธีการดูตามรูปครับ
You do not have the required permissions to view the files attached to this post.
User avatar
Jancha
Bronze
Bronze
Posts: 257
Joined: Thu Jan 26, 2017 6:19 pm
Excel Ver: 365

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

#14

Post 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);
}
soparanee
Member
Member
Posts: 1
Joined: Sun Jul 14, 2019 8:39 am

รบกวนแก้ google script บน google forms เพื่อทำงานร่วมกับ line notify ขึ้น error code 401 ที่บรรทัดสุดท้าย

#15

Post 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);
}
cokezaha
Member
Member
Posts: 19
Joined: Wed Jul 25, 2012 12:38 am

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

#16

Post 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(); รันไม่ผ่านครับ
alif15219
Member
Member
Posts: 1
Joined: Mon Oct 10, 2022 11:56 am
Excel Ver: 365

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

#17

Post 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);
}
Post Reply