2016-09-02 28 views
13

Tôi đang cố gắng thu thập chi tiết phản hồi từ biểu mẫu google bằng cách sử dụng tập lệnh được liên kết với biểu mẫu, sử dụng trình kích hoạt onFormSubmit().Sự kiện biểu mẫu Google nhận được khi gửi Biểu mẫu không có sự phản hồi

Hầu hết các chi tiết được nhận mà không có lỗi, nhưng thỉnh thoảng tôi gặp lỗi. Trình kích hoạt được nhận nhưng không có dữ liệu nào được truyền cho tập lệnh. Câu trả lời được nhận bởi bảng điều khiển biểu mẫu google nhưng không được chuyển tiếp đến tập lệnh.

Mã cho nhận dữ liệu:

function onFormSubmit(e) 
{ 

    Logger.log("A response has been received!"); 
    Logger.log(e); 
    var resp = e.response.getItemResponses(); //capturing trigger event output 
    var form = e.source; 
...... 

ký thực hiện lệnh trong trường hợp lỗi:

[16-09-27 07:29:15:073 PDT] Starting execution 
[16-09-27 07:29:15:096 PDT] Logger.log([A response has been received!, []]) [0 seconds] 
[16-09-27 07:29:15:097 PDT] Logger.log([{authMode=FULL, triggerUid=xxxxxxx41}, []]) [0 seconds] 
[16-09-27 07:29:15:099 PDT] Execution failed: TypeError: Cannot call method "getItemResponses" of undefined. (line 18, file "Code") [0.002 seconds total runtime] 

Cho đến bây giờ, tôi đã khắc phục nó bằng cách sao chép các hình thức và thiết lập lại tất cả các quyền. Nhưng tôi muốn một giải pháp mà không có tôi làm điều này một lần nữa. Trên bản sao thứ 10 của tôi bây giờ :(Có ai phải đối mặt với vấn đề này? Xin vui lòng giúp !!

Khi tôi đã nhận được thành công phản ứng, e có một chìa khóa đáp ứng là tốt.

+0

Bạn đã xác minh người dùng đã cung cấp phản hồi chưa? –

+0

Có. Phản hồi được ghi lại trong bảng điều khiển biểu mẫu của Google cho biểu mẫu tương ứng. –

+0

Bạn có thể cho chúng tôi biết mã của bạn không? – Fralec

Trả lời

5

Đây là một công việc xung quanh đó nên ngăn chặn kịch bản của bạn từ vi phạm:.

function onFormSubmit(e) 
{ 
    Logger.log("A response has been received!"); 
    // Check if e is defined 
    if (e) { 
    // Any code that use e should be inside this block 
    Logger.log(e); 
    var resp = e.response.getItemResponses(); //capturing trigger event output 
    var form = e.source; 
    } else { 
    // Log if e is undefined 
    Logger.log('e is undefined!'); 
    } 
...... 

tôi đồng ý với Rubén mà bạn nên liên hệ với google hỗ trợ để xem xét vấn đề, đặc biệt là bạn sẽ nhìn thấy phản ứng trong giao diện điều khiển

0

bạn có thể phải quay trở lại vào gây nên hoạt động của bạn, xóa trình kích hoạt, thêm lại, và nó sẽ nhắc bạn về thông tin truy cập mới.

Các vấn đề liên quan