【发布时间】:2018-10-08 20:11:23
【问题描述】:
我已经知道如何从我创建的预算电子表格中读取值,但我不知道如何使用 Sheets API V4 创建新的电子表格。到现在为止,我已经为这个问题苦苦挣扎了 5 个月,以前有人解决过这个问题吗?
这是我的代码:
// READ - WORKING!
router.get("/get", (req, res) => {
var id = '1LoSF_4Z9aoiVvDsjFV9CMOd--vvz3fERfOPajVb2sv8';
var params = 'https://sheets.googleapis.com/v4/spreadsheets/?key='
var url = params + apiKey;
request(`https://sheets.googleapis.com/v4/spreadsheets/${id}?key=${apiKey}`, (error, response, body) => {
console.log("Body", body);
});
})
// Create - NOT WORKING!
router.post('/create', (req,res)=>{
request({
method: 'POST',
uri: `https://sheets.googleapis.com/v4/spreadsheets?fields=properties%2Ftitle&key=${apiKey}`
}, (error, response, body)=>{
console.log(body);
//Logs the body of the newly created spreadsheet
})
})
我使用了 Google API Explorer 中的指南,您可以在这里找到:
https://developers.google.com/apis-explorer/#p/sheets/v4/sheets.spreadsheets.create
谢谢!
【问题讨论】:
-
Sheets API的create方法不能被API key使用。那么如何使用 OAuth2 和服务帐户呢?
-
谢谢!所以很高兴知道。我确实在另一个授权 Google 表格范围的应用程序中设置了 OAuth2。如何执行将 OAuth 访问令牌传递给工作表 api 并创建电子表格的 POST 请求?你有一个如何做到这一点的例子吗?我理解这个概念,但我从未见过它被使用过。
-
感谢您的回复。可以问一下你的情况吗?您已经从 OAuth2 进程中检索了访问令牌。您可以使用访问令牌。我的理解正确吗?
-
是的,这是正确的。使用 OAuth 进行身份验证后,我从 Google 返回了访问令牌。有了这个令牌,我现在可以在我自己的驱动器或登录的任何人中发布以创建电子表格。您还有其他问题吗?
-
感谢您的回复。我发布了修改后的脚本作为答案。你能确认一下吗?在这个修改后的脚本中,使用了您检索到的访问令牌。当您使用 Sheets API 创建电子表格时,请在范围中包含
https://www.googleapis.com/auth/spreadsheets。如果这不是您想要的,我很抱歉。
标签: javascript node.js request google-sheets-api