小编Hea*_*ath的帖子

使用 javascript 中的服务帐户使用 oAuth 2.0 服务器到服务器身份验证的 Google Sheets API v4

我到处搜索,找不到可以遵循的示例。

我有一个私人谷歌表。我使用 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

6
推荐指数
0
解决办法
348
查看次数