Cra*_*erb 5 php google-sheets google-apps-script
是否有关于如何执行此操作的脚本或教程?如何实现从我的PHP应用程序插入数据到Google电子表格?
我查看了API(https://developers.google.com/google-apps/spreadsheets/)并且没有PHP代码/示例.
我已经尝试过Zend Library实现,但是这个方法似乎已经过时,因为我在简单的行插入上遇到了一些愚蠢的错误.
我认为我不能使用Google Apps脚本(https://developers.google.com/apps-script/reference/spreadsheet/),因为我看不到如何从PHP脚本编码和触发.
还要别的吗?
我们可以轻松使用并利用这个API吗?
我认为我不能使用Google Apps脚本,因为我看不到如何从PHP脚本编码和触发
你当然可以.您可以使用Google Apps脚本创建可以接收和处理服务请求的Web服务.将参数传递给Web服务很简单,例如,可以使用cURL来完成.
以下示例适用于包含两列的简单电子表格.您可以按以下方式添加更多行:
curl -L <SCRIPT URL>?col1='Value for column 1'&col2='Another value'
Run Code Online (Sandbox Code Playgroud)
或浏览器网址:
https://<SCRIPT URL>?col1='Value for column 1'&col2='Another value'
Run Code Online (Sandbox Code Playgroud)
此示例电子表格在此处发布,下面是可用于添加行的示例URL:
https://script.google.com/macros/s/AKfycbzVDFmOeaQc4mDZhWCnwf0CUnX64YNhhnKIlTYhqtpBraINUf9e/exec?col1='Value for column 1'&col2='Another value'
Run Code Online (Sandbox Code Playgroud)
这是一步一步的.
--spreadsheet-id--你的工作表的id(很容易找到这个)?col1='Colum1Data'&col2='Colum2Data'到URL或根据需要进行编辑,以便从URL将数据推送到电子表格(感谢vr00n.)
这可能是一个独立的或容器绑定的脚本; 无论哪种方式,您都需要提供电子表格的ID,因为Web应用程序不在电子表格上下文中运行.它不是显示html,而是使用ContentService来提供简单的文本 - 您可以以适合您的应用程序的任何方式详细说明.
function doGet(e) {
Logger.log( JSON.stringify(e) ); // view parameters
var result = 'Ok'; // assume success
if (e.parameter == undefined) {
result = 'No Parameters';
}
else {
var id = '--spreadsheet-id--'; // Spreadsheet id
var sheet = SpreadsheetApp.openById(id).getActiveSheet();
var newRow = sheet.getLastRow() + 1;
var rowData = [];
for (var param in e.parameter) {
Logger.log('In for loop, param='+param);
var value = stripQuotes(e.parameter[param]);
//Logger.log(param + ':' + e.parameter[param]);
switch (param) {
case 'col1':
rowData[0] = value;
break;
case 'col2':
rowData[1] = value;
break;
default:
result = "unsupported parameter";
}
}
Logger.log(JSON.stringify(rowData));
// Write new row to spreadsheet
var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
newRange.setValues([rowData]);
}
// Return result of operation
return ContentService.createTextOutput(result);
}
/**
* Remove leading and trailing single or double quotes
*/
function stripQuotes( value ) {
return value.replace(/^["']|['"]$/g, "");
}
Run Code Online (Sandbox Code Playgroud)
您应该阅读Google的内容服务文档,尤其是有关重定向和敏感信息的注意事项.