2013-02-16 58 views
7

Đã tìm kiếm cao và thấp cho việc này. Tôi có một trang web HTML/CSS/JS cơ bản. Tôi muốn người dùng có thể truy cập trang và khi mở trang, cuộc gọi được thực hiện tới tập lệnh google mà tôi đã thực hiện để lấy thông tin từ bảng tính và hiển thị một số thông tin trên trang. Tôi hy vọng tôi không phải làm bất kỳ thiết lập ưa thích như trong hướng dẫn của Google bởi vì không ai trong số họ đã được hữu ích cho tôi.Cách gọi Google Apps Script từ trang web

Trang web của tôi ----> Google Script ----> Google Spreadsheet
Trang web của tôi < ---- Google Script < ---- Google Spreadsheet

Người dùng sẽ có thể chọn một mục hiển thị trên trang web (mục được điền từ bảng tính) và nhấp vào nút cho phép người dùng nhập trang mới có URL được lấy từ mục đã chọn.

Đây thực chất là chương trình phòng trò chuyện trong đó các phòng trò chuyện được lưu trữ trên bảng tính. Tôi muốn người dùng có thể tạo phòng trò chuyện mới cũng nên cập nhật bảng tính google.

Trả lời

15

Xem xét sử dụng các tham số GET. https://stackoverflow.com/a/14736926/2048063.

Here's a previous question on the topic.

Bạn có thể truy cập các thông số được chuyển bởi GET trong hàm doGet(e) sử dụng e.parameter. Nếu bạn gọi http://script.google......./exec?method=doSomething, thì

function doGet(e) { 
    Logger.log(e.parameter.method); 
} 

doSomething sẽ được ghi vào nhật ký, trong trường hợp này.

Trả về dữ liệu từ tập lệnh có thể được thực hiện bằng cách sử dụng ContentService, cho phép bạn phân phát JSON (tôi khuyên bạn nên sử dụng). JSON là dễ nhất (theo ý kiến ​​của tôi) để thực hiện kết thúc GAS, cũng như sử dụng ở cuối ứng dụng khách.

Cuộc gọi "danh sách phổ biến" ban đầu sẽ trông giống như thế này. Tôi sẽ viết nó trong jQuery vì tôi cảm thấy nó rất sạch sẽ.

var SCRIPT_URL = "http://script.google.com/[....PUT YOUR SCRIPT URL HERE....]/exec"; 
$(document).ready(function() { 
    $.getJSON(SCRIPT_URL+"?callback=?", 
       {method:"populate_list"}, 
       function (data) { 
       alert(JSON.stringify(data)); 
       }); 
}); 

Và GAS tương ứng tạo ra điều này.

function doGet(e) { 
    if (e.parameter.method=="populate_list") { 
    var v = {cat:true,dog:false,meow:[1,2,3,4,5,6,4]}; //could be any value that you want to return 
    return ContentService.createTextOutput(e.parameter.callback + "(" + JSON.stringify(v) + ")") 
     .setMimeType(ContentService.MimeType.JAVASCRIPT); 
    } 
} 

Phương pháp này được gọi là JSONP và được hỗ trợ bởi jQuery. jQuery nhận ra nó khi bạn đặt ?callback=? sau URL của bạn. Nó kết thúc đầu ra của bạn trong một chức năng gọi lại, cho phép chức năng đó được chạy trên trang web của bạn với dữ liệu như một đối số. Trong trường hợp này, hàm gọi lại là hàm được xác định trong dòng ghi function (data) {.

+0

Mặc dù tôi vẫn bị mất, tôi chắc chắn câu trả lời của bạn là chính xác. – carter

+0

Tôi đã thêm một vài đoạn mã mẫu. Hi vọng điêu nay co ich! –

+0

Câu trả lời tuyệt vời Phil! – ScampMichael

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