Hea*_*ath 6 javascript google-api oauth-2.0 google-oauth google-sheets-api
我到处搜索,找不到可以遵循的示例。
我有一个私人谷歌表。我使用 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) {
//do stuff
drawGID()
}
else{
}
}
function handleSignInClick(event) {
gapi.auth2.getAuthInstance().signIn();
}
function handleSignOutClick(event) {
gapi.auth2.getAuthInstance().signOut();
}
//draw all the charts
function drawGID() {
var params = {
valueRenderOption: "FORMATTED_VALUE",
spreadsheetId: 'myspreadsheetID',
range: 'MySpreadsheetRange!A:AX',
};
var request = gapi.client.sheets.spreadsheets.values.get(params);
request.then(function(response) {
//do various stuff with the data from response
var dataTable = response.getDataTable();
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |