我想从Firefox / Chrome浏览器扩展中访问Google Docs API /创建Google Docs文档。我目前的问题是获取访问令牌。有没有一种方法可以做到这一点,也许不使用云控制台oAuth代码?
np8igboo1#
调用在GAS中注册为Web应用的脚本,并从扩展中获取。此方法不需要扩展进行身份验证。下面是一个google sheets的例子。code.gs
function doGet(e) { const p = e.parameter; const name = p.name const url = "xxxxxxxxxx"; // Google Sheets URL const ss = SpreadsheetApp.openByUrl(url); const sheet = ss.getSheets()[0]; for (let row = 2; ; row++) { let value = sheet.getRange(row, 1).getValues(); if (value == "") { const dataTime = new Date(); sheet.getRange(row, 1).setNumberFormat("yyyy/MM/dd H:mm:ss"); sheet.getRange(row, 1).setValue(dataTime); sheet.getRange(row, 2).setValue(name); break; } } }
manifest.json
{ "name": "google sheets", "version": "1.0", "manifest_version": 3, "host_permissions": [ "https://script.google.com/macros/s/*" ], "action": { "default_popup": "popup.html" } }
popup.html
<!DOCTYPE html> <html> <style type="text/css"> * { font-size: 150%; } </style> <body> Name<br> <input type="text" size=25 id="name"><br> <input type="button" id="setTime" value="Set time"> <script src="myscript.js"></script> </body> </html>
myscript.js
const elmName = document.getElementById("name"); const elmSetTime = document.getElementById("setTime"); elmSetTime.onclick = () => { let url = "xxxxxxxxxx"; // The URL of the script registered as a web app in GAS. const name = encodeURI(elmName.value); url += "?name=" + name; console.log(url); fetch(url, { method: "GET", mode: "cors" }) }
1条答案
按热度按时间np8igboo1#
调用在GAS中注册为Web应用的脚本,并从扩展中获取。
此方法不需要扩展进行身份验证。
下面是一个google sheets的例子。
code.gs
manifest.json
popup.html
myscript.js