我正在使用融合表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
如何调试此错误?
答案 0 :(得分:3)
如果更改应用程序的client_id,通常会发生此错误。
原因是,您已经拥有基于旧client_id的Fusion API访问令牌。当您使用新的client_id请求刷新令牌(正如您在堆栈跟踪中看到的那样)时,您将收到非常无用的错误消息。
处理此问题的最简单方法是清除系统中的现有凭据,以便它必须接收干净的访问令牌。您可以使用Google API Java客户端以编程方式执行此操作,也可以从系统中删除该文件。在我的Ubuntu机器上,它位于~/.credentials/<api-name>.json
。