Google Mapsengine对服务帐户的响应不足

我正尝试在地图引擎中为Google地图创build表格。 我已经将服务帐户添加到mapsenginepipe理面板中的访问列表中,并为其提供了“可编辑”权限。 我也给了它在项目的开发者控制台中的编辑权限。

这是我发送正在发回令牌的访问令牌的地方:

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; } }); }); }); } 

这是我创build表并发送它的地方:

 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(); } } 

在查看项目时,我从URL获取ProjectId。 我已经查阅了尽可能多的文档,但是我一直无法弄清楚这一点。 谢谢。

没有你的错误反应,我不能给你一个确切的答案,但这里有几个指针。

  1. 检查执行块中err的内容。 API将返回err.errors中的某些东西, err.errors东西应该解释问题是什么,如果发生在API端。
  2. 目前还不清楚mapengine_table_bodyvariables的范围是什么,请在调用createNewTable()后立即尝试在connect()调用中logging它,以确保您具有实际的数据。
  3. googleapis.auth.JWT构造函数中的第三个参数(至less根据这个 ) 不是密钥密码,它是提供实际密钥内联的另一种方式(与在参数#2中使用文件位置相反)。
  4. Maps Engine中的项目ID可能看起来像大数字,但在JavaScript中将其视为大数字很可能导致四舍五入,这意味着您给API的代码数量不同。 为了防止这种情况,请确保您的项目ID是“quoted”,以便将其视为一个string。

希望这里有所帮助! 如果没有,请分享build议#1的结果。