使用JS的服务帐户调用Google bigquery
calling Google bigquery with service account from JS
我使用下面的代码通过使用客户端帐户从JS调用了带有图表的Gogole bigquery。如何为谷歌服务帐户配置相同的脚本,比如我也有p12密钥,但我可以在哪里传递这个密钥信息
<html>
<head>
<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', { packages: ['geochart'] });
</script>
<script>
// UPDATE TO USE YOUR PROJECT ID AND CLIENT ID
var project_id = 'xxxxx';
var client_id = 'xxx.apps.googleusercontent.com';
var config = {
'client_id': client_id,
'scope': 'https://www.googleapis.com/auth/bigquery'
};
function runQuery() {
var request = gapi.client.bigquery.jobs.query({
'projectId': project_id,
'timeoutMs': '30000',
'query': 'SELECT state, AVG(mother_age) AS theav FROM [publicdata:samples.natality] WHERE year=2000 AND ever_born=1 GROUP BY state ORDER BY theav DESC;'
});
request.execute(function (response) {
var stateValues = [["State", "Age"]];
$.each(response.result.rows, function (i, item) {
var state = item.f[0].v;
var age = parseFloat(item.f[1].v);
var stateValue = [state, age];
stateValues.push(stateValue);
});
var data = google.visualization.arrayToDataTable(stateValues);
var geochart = new google.visualization.GeoChart(
document.getElementById('map'));
geochart.draw(data, { width: 556, height: 347, resolution: "provinces", region: "US" });
});
}
function auth() {
gapi.auth.authorize(config, function () {
gapi.client.load('bigquery', 'v2', runQuery);
$('#client_initiated').html('BigQuery client initiated');
});
$('#auth_button').hide();
}
</script>
</head>
<body>
<h2>Average Mother Age at First Birth in 2000</h2>
<button id="auth_button" onclick="auth();">Authorize</button>
<button id="query_button" style="display:none;" onclick="runQuery();">Run Query</button>
<div id="map"></div>
</body>
</html>
我从谷歌bigquery文档中了解到,由于JS的安全原因,我们无法使用服务帐户。
相关文章:
- 授权客户端JS API调用Google'的具有现有访问令牌的gap库
- Clojudescript:调用Google Maps API的问题
- 是否可以调用Google API获取地图图像并将图像保存在某个位置
- 从 vb.net 程序调用 Google Chrome 窗口中的 JavaScript 函数
- 从javascript代码调用Google API
- 从Dojo 1.7+调用Google Analytics的正确语法是什么?
- 我想调用Google Plus回调函数时,点击Google Plus按钮
- 如何从jQuery中初始化调用Google Map中的函数?
- 有没有办法在google API URL之外调用google initMap回调函数
- 对服务帐户进行身份验证,以便使用JavaScript客户端库调用Google API
- 不能从AJAX调用Google Maps API返回坐标
- 远程服务.getdistancemmatrix永远不会被调用(google maps API)
- 从Javascript调用Google Chrome扩展
- 如何在Html中调用Google地图API Javascript的变量
- 不能使用this.ParentNode从HTML页面调用Google脚本
- 调用Google Drive API返回Invalid_grant OAuth2
- 使用JS的服务帐户调用Google bigquery
- 调用google.maps.geometry.spherical.computeDistanceOff是否会对我的API
- 什么时候应该调用Google Maps MarkerClusterer
- 在Ionic框架中调用Google API for Javascript(在Web上工作,而不是在Android上工作)