我正在尝试在地图引擎中为Google地图创建表格。我已将服务帐户添加到mapsengine管理面板中的地图访问列表中,并为其指定了“可以编辑”权限。我还在项目的开发者控制台中给了它编辑权限。
这是我发送的用于发送回令牌的访问令牌的地方:
var googleapis = require('googleapis');
function connect() {
var authClient = new googleapis.auth.JWT(
'216755859529-1s2o9qofhd9ea65ang9clpd1936ldfcr@developer.gserviceaccount.com',
'../bin/googleoauth2.pem',
'notasecret',
['https://www.googleapis.com/auth/mapsengine'],
// User to impersonate (leave empty if no impersonation needed)
''
);
authClient.authorize(function(err, tokens) {
if (err) {
console.log(err);
return;
}
else {
console.log(tokens);
}
googleapis.discover('mapsengine', 'v1').execute(function (err, client) {
if (err) {
console.log('Problem during the client discovery.', err);
return;
}
createNewTable();
client.mapsengine.tables.create(mapengine_table_body).withAuthClient(authClient).execute(function (err, response) {
if (err) {
console.log(err);
return;
} else {
console.log(response);
return;
}
});
});
});
}
这是我创建表并发送它的地方:
function createNewTable() {
mapengine_table_body = {
"projectId": projectID,
"name": "World Famous Mountains",
"description": "A partial list of famous mountains in the world.",
"draftAccessList": "Map Editors",
"tags": [
"mountain",
"high places"
],
"schema": {
"columns": [
{
"name": "geometry",
"type": "points"
},
{
"name": "mountain_name",
"type": "string"
},
{
"name": "height",
"type": "integer"
}
]
}
}
}
function start() {
'use strict';
var pck, program;
pck = require('../package.json');
program = require('commander');
program
.version(pck.version)
.option('-r, --run', 'Run')
.parse(process.argv);
console.log('running:');
if (program.run) {
connect();
}
}
我在查看项目时从网址获取的ProjectId。我查看了尽可能多的文档,但我无法弄清楚这一点。感谢。
答案 0 :(得分:0)
如果没有您的错误回复,我无法给您一个确切的答案,但这里有几个指示。
err
的内容。 API将在err.errors
中返回一些内容,以解释问题所在,如果它出现在API端。mapengine_table_body
变量的范围是什么,请在调用connect()
后尝试在createNewTable()
调用中正确记录,以确保您拥有实际数据。googleapis.auth.JWT
构造函数中的第三个参数(至少根据this)是不密钥密码,它是提供内联实际密钥的另一种方法(如反对在参数#2中使用文件位置。希望这里有所帮助!如果没有,请分享建议#1的输出。