我正在尝试将我的应用上传到Fusion Tables,而无需事先授予每个用户对表的写入权限。这是出于安全原因,只是为了简化系统。
目前,要创建com.google.api.services.fusiontables.Fusiontables
的实例,我会:
private static Fusiontables constructFusionTables(Context context) {
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context,
Arrays.asList("https://www.googleapis.com/auth/fusiontables"));
String username = "someuser@gmail.com";
credential.setSelectedAccountName(username);
return fusiontables = new Fusiontables.Builder(HTTP_TRANSPORT,
JSON_FACTORY, credential).setApplicationName("someappname")
.build();
}
当我尝试使用服务帐户电子邮件(XXXXXXX@developer.gserviceaccount.com
)时,使用该FusionTables
实例进行的所有Fusion Tables查询都无法告诉我该名称不能为空。
作为测试的快速解决方法,我尝试对设备的Google帐户列表中没有的用户名(someuser@gmail.com
)进行硬编码,但它给了我同样的错误。
当我使用手机上存在的普通user@gmail.com
帐户时,系统不会显示错误。
您能否指导我如何在Android中为Fusion Tables实施服务帐户?