目标
我想通过网络服务更新Google表格文档中的一些信息。我不介意数据是公开的,但似乎我需要获取OAuth令牌才能使用PUT https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}
而不是简单地获取数据。但是,我收到错误消息,指出我错过了OAuth 2.0凭据。
的期望
为了做到这一点,我假设我需要先从Google's Developer Console获取凭据。我目前通过该控制台拥有OAuth 2.0客户端ID和API密钥。 API密钥用于读取数据,OAuth将用于写入数据。
然后,我需要使用OAuth信息点击某种类型的端点,以获取将要使用的凭据。我应该将此信息放入我的PUT
请求中。 This is the documentation I've found in regards to my request, but it's missing the authorization documentation.
问题
1)我在Google的OAuth 2.0内容中获取刷新令牌和访问令牌的端点在哪里?我听说过https://accounts.google.com/o/oauth2/token
之类的内容,但我不确定如何来获取令牌。我需要通过什么?我如何传递该信息?我无法找到任何文件。
2)获取这些令牌后,如何将它们合并到Google表格API的PUT
请求中?令牌是否会进入Authorization
标题或access_token
查询参数或其他内容?
答案 0 :(得分:0)
我强烈建议您首先检查Sheets API的Javascript Quickstart,因为它包含OAuth登录演示。
从快速入门代码中,这是调用OAuth库的部分:
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
这是我在我制作的应用程序中使用PUT请求:
function recordTimeInSheet(){
var params = {
"range":"Sheet1!"+A+":"+C,
"majorDimension": "ROWS",
"values": [
["bruceWayne","8:00AM", "5:00PM"]
],
}
var xhr = new XMLHttpRequest();
xhr.open('PUT', 'https://sheets.googleapis.com/v4/spreadsheets/'+myspreadsheetId+'/'+"values/"+"Sheet1!"+A+":"+C+"?"+'valueInputOption=USER_ENTERED');
xhr.setRequestHeader('Authorization', 'Bearer ' + myAccessToken);
xhr.send(JSON.stringify(params));
}