2012-12-16 37 views
3

我想在我的网页上显示一些地图图层,因此我决定尝试使用此Google服务。由于数据收集在服务器的数据库中,因此我选择使用服务帐户,如here所述,然后使用我的php脚本中生成的私钥。创建一个表,并插入一些测试值时获取融合表格

,一切工作正常。我得到了桌面ID,我可以从我的脚本中使用它。问题是我不知道如何从Web浏览器访问这些表格。在我的API控制台中,使用状态显示正常,但使用我的帐户登录Google Drive时,没有看到任何表格。

如果可能,我应该在哪里访问它们?请执行apps.googleusercontent.com或developer.gserviceaccount.com帐户扮演任何角色以登录其他服务以通过网络访问?

我也得到了相关的API密钥,而是试图查询表时,我得到一个401错误。

任何提示?我现在感觉有点失落。谢谢。

回答

3

您使用的是服务帐户吧? 因此,当您使用此帐户创建表时,此帐户将成为表所有者。没有其他人有权查看此表。

在访问用您的个人帐户 Fusion Tables网络界面,你只会看到你createdwith您的个人账户表。

如果要检查你的服务帐户创建的表,你必须使用谷歌云端硬盘API与您的服务帐户凭据给访问权限到您的个人帐户。 此外,如果您希望公开您的表格(或任何其他类型的文档),则需要再次使用此Google Drive API。 查看更多的话题在这里:

https://developers.google.com/drive/v2/reference/permissions/insert

提示:如果你想达到代表服务帐号的东西,你只需要一次(所以没有必要实现逻辑,它在你的webapp)我真的建议你考虑使用OAuth2 Playground。您可以在“设置”中设置您的服务帐户凭据,并代表您的服务帐户发布授权请求。非常有用的工具,无需编码。

+0

感谢您的帮助。这开始显得有些复杂。我想实现的非常简单:使用服务器php脚本中的数据提供融合表,然后显示访问我的网页的任何用户显示此数据的地图。这样一个简单的用例是否会采取所有这些步骤?如果可能的话,我想避免任何过度并发症。 – Dan

+1

你说过,你已经使用服务帐户从php填充了一个融合表。你是最糟糕的一部分,不要放弃。你最可能使用了google-php-api-client,对吧?如果是这样,您必须在脚本中拥有Google_Client $客户端。使用它可以让您掌握Drive API权限服务:$ permissionsService = new Google_DriveService($ client) - > permissions; – sanya

+0

一旦你拥有了它,创建一个新的权限,这将使你的表公开给这样的任何人: $ permission = new Google_Permission(); $ permission-> setRole('reader'); $ permission-> setType('anyone'); 然后将此权限添加到您的融合表: $ permissionsService-> insert($ tableId,$ permission); 就是这样,你完成了。从现在起,你的桌子是可读的(但是对于每个人,不仅仅是你)和公开的。现在,您可以将其放在Google地图“融合层”上。 – sanya