融合表api迁移

时间:2013-05-13 13:12:31

标签: api google-fusion-tables google-api-java-client

我正在使用融合表API在我的表中插入/更新数据。上周,我将我的API迁移到this sample中提到的新版本v1。但现在,当我运行代码时,显示以下错误。

400 Bad Request
{
  "error" : "unauthorized_client"
}
com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
  "error" : "unauthorized_client"
}
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105)
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303)
    at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:323)
    at com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:607)
    at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:526)
    at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:287)
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:836)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:412)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463)
    at com.prasanna.survey.pushapis.FusionPush.insertData(FusionPush.java:198)
    at com.prasanna.survey.pushapis.FusionPush.main(FusionPush.java:96)
Java Result: 1

如何调试此错误?

1 个答案:

答案 0 :(得分:3)

如果更改应用程序的client_id,通常会发生此错误。

原因是,您已经拥有基于旧client_id的Fusion API访问令牌。当您使用新的client_id请求刷新令牌(正如您在堆栈跟踪中看到的那样)时,您将收到非常无用的错误消息。

处理此问题的最简单方法是清除系统中的现有凭据,以便它必须接收干净的访问令牌。您可以使用Google API Java客户端以编程方式执行此操作,也可以从系统中删除该文件。在我的Ubuntu机器上,它位于~/.credentials/<api-name>.json