2017-02-26 148 views
0

我真的需要帮助,从我的网站/本地主机在谷歌应用脚​​本中运行我的功能。从网站/本地主机运行应用脚本功能

已经在google上搜索,结果必须使用google.script.run。当我尝试它时,我发现google不起作用的错误。

这INI我的应用程序的脚本代码.gs

/** 
* This script demonstrates the use of objDB using a spreadsheet as a database 
* 
* objDB is a Google Script Library that makes it easy to work with data stored in a spreadsheet. 
* Using the same functions, you can also work with data from a JDBC-connected database. 
* See http://googlescripts.harryonline.net/objdb for full documentation 
* 
* This demo uses the spreadsheet template from the tutorial on the Google Apps Script 
* https://developers.google.com/apps-script/storing_data_spreadsheets#reading 
* 
*/ 

/** 
* To restore the data from the original spreadsheet, run getSpreadsheet() 
* Try out the sample function, and create your own. 
* See the results in the log, as well as on the spreadheet itself 
* You can view the log file using View - Logs, or Alt-Enter 
* Alternatively, put breakpoints at the Logger.log statements and use Debug instead of Run 

/** 
* Create a copy of the tutorial spreadsheet and stores the ID of the newly created spreadsheet 
* in Usersettings, so you can continue using this. 
* Restore data from original tutorial spreadsheet 
*/ 

function getSpreadsheet() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Tutorial Data'); 
    sheet.clear(); 
    var tutorialID = '0Aq4s9w_HxMs7dFNtWlh2MHRWZzEtbk5LRW5hTVR1Y1E'; 
    var tutorialDataRange = SpreadsheetApp.openById(tutorialID).getSheets()[0].getDataRange(); 
    var range = sheet.getRange(1,1,tutorialDataRange.getNumRows(), tutorialDataRange.getNumColumns()); 
    range.setValues(tutorialDataRange.getValues()); 
} 

/** 
* Sample: get all data from Engineering employees 
*/ 

function getEngineers() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    ssDB = objDB.open(ss.getId()); 
    var rows = objDB.getRows(ssDB, 'Tutorial Data', [], {Department:'Engineering'}); 
    Logger.log(rows); 
} 

/** 
* Sample: get John's phone number 
* Note that non-alphanumeric characters are stripped from column names: Phone Number becomes PhoneNumber 
*/ 

function getPhone() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    ssDB = objDB.open(ss.getId()); 
    var rows = objDB.getRows(ssDB, 'Tutorial Data', ['PhoneNumber'], {FirstName:'John'}); 
    Logger.log(rows); 
} 

/** 
* Delete staff with id's 1342 and 1234 
*/ 

function deleteStaff() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    ssDB = objDB.open(ss.getId()); 
    var rowCount = objDB.deleteRow(ssDB, 'Tutorial Data', {EmployeeId:[1342,1234]}); 
    Logger.log(rowCount); 
} 

/** 
* Update: staff 3512 goes to marketing 
*/ 

function updateStaff() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    ssDB = objDB.open(ss.getId()); 
    var rowCount = objDB.updateRow(ssDB, 'Tutorial Data', {Department:'Marketing'}, {EmployeeId:3512}); 
    Logger.log(rowCount); 
} 

/** 
* Add new employee 
*/ 

function addStaff() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    ssDB = objDB.open(ss.getId()); 
    var rowCount = objDB.insertRow(ssDB, 'Tutorial Data', {FirstName:'Harry', LastName:'Potter', EmployeeId:4321, Department:'Magic',PhoneNumber:'(212) 123-4567'}); 
    Logger.log(rowCount); 
} 
+1

不应该在您的页面中包含任何其他.js文件吗? – NDFA

+0

@BehradKhodayar我的网页必须包含哪些JavaScript文件? – DeVoresyah

+0

通常,您应该在文档中包含第三方库,以便能够使用它 – NDFA

回答

1

我读谷歌彻底的App脚本。应用脚本基本上是为开发人员提供扩展谷歌应用(电子表格,日历,Gmail,文档,...)的服务而设计的,他们是由设计预计将位于谷歌云服务器并运行。

所以,你不能在你的网站/本地主机上运行它们,因为GS脚本是在服务器端(谷歌服务器)执行的。

唯一建议的方法,is to make an htmlService app and use ajax from the frontend。我认为这不是你的情况。

+0

还有另一种方法。请参阅[我的回答](http://stackoverflow.com/a/42474052/1595451) –

+0

@Rubén谢谢,但这里的情况并不涉及API版本(正如我在回答结束时所建议的)。他正试图将.gs文件上传到他的主机/本地主机&...。这就是为什么我对错误的过程谨慎。 – NDFA

+0

不客气。看起来我并不像你一样理解问题,另一方面,你的建议与我的不一样:) –

0

要从外部网页或服务运行Google Apps脚本,请使用Google Apps Script Execution API。此链接包括多种语言的示例,包括但不限于JavaScript,PHP和Python。

相关问题