我到处搜索,找不到可以遵循的示例。
我有一个私人谷歌表。我使用 google 表格中的数据在使用 javascript 的简单网页上使用 Google Visualization API 填充各种图表。
目前,每个用户都必须授权(通过 oauth 流程)才能查看图表中的数据。用户只查看图表,不会修改它们,因此我的网络应用程序没有理由访问每个用户的 Google 帐户。
我想消除用户身份验证部分,而是授权服务器通过谷歌服务帐户和服务器到服务器 Oauth 对私人谷歌工作表进行身份验证,同时保持实际电子表格的私密性。
我采取的步骤:我在 Google Developers Console 中创建了一个服务帐户,使用私钥、公钥、id 等保存了 .json 文件。
我尝试按照此处概述的步骤进行操作,但没有使用 javascript 的示例。我也不确定为什么代码会公开包含私钥的 p12 文件。
通过 oAuth 流程授权用户访问电子表格的示例非常简单,这就是我所做的:
function initClient() {
var API_KEY = 'myapikey';
var CLIENT_ID = 'myid';
var SCOPE = 'https://www.googleapis.com/auth/spreadsheets.readonly';
gapi.client.init({
'apiKey': API_KEY,
'clientId': CLIENT_ID,
'scope': SCOPE,
'discoveryDocs': ['https://sheets.googleapis.com/$discovery/rest?version=v4'],
}).then(function() {
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSignInStatus);
updateSignInStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
});
}
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
function updateSignInStatus(isSignedIn) {
if (isSignedIn) { …Run Code Online (Sandbox Code Playgroud) javascript google-api oauth-2.0 google-oauth google-sheets-api