【发布时间】:2019-03-14 03:54:54
【问题描述】:
我正在尝试使用 Dialogflow 从 Actions on Google 应用程序写入 Google 电子表格。我可以使用我的应用程序从工作表中读取。电子表格被授予公共编辑权限。
我在履行 webhook 中使用以下代码来读取和写入电子表格。我有我的 SPREADSHEET_ID 和 SPREADSHEET_API_KEY:
function welcome(agent) {
const tabName = 'Sheet1';
const startCell = 'B2';
const endCell = 'D';
appendDataToSpreadsheet(tabName, startCell, endCell);
agent.add(`Appended`);
}
function appendDataToSpreadsheet(tabName, startCell, endCell) {
const sheets = google.sheets({version: 'v4', auth: SPREADSHEET_API_KEY});
return sheets.spreadsheets.values.append({
auth: auth,
spreadsheetId: SPREADSHEET_ID,
range: `${tabName}!${startCell}:${endCell}`,
valueInputOption: "USER_ENTERED",
resource: {
values: [ ["5", "Anis", "8", "React"], ["6", "Paul", "1", "Python"] ]
}
}, (err, response) => {
if (err) {
console.log('The API returned an error: ' + err);
return;
} else {
console.log("Appended");
}
});
}
此代码不会将数据附加到电子表格中,在我的日志中我可以看到以下错误:
API 返回错误:
错误:请求缺少所需的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。见https://developers.google.com/identity/sign-in/web/devconsole-project。
应用程序要求提供身份验证凭据。任何有关如何进行此操作的指示都会有所帮助。
【问题讨论】:
-
编写需要 OAuth2,如错误消息所述,并在相关问题中进行了说明。
标签: node.js google-sheets dialogflow-es google-sheets-api actions-on-google