Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
com.google.api.client.auth.oauth2.TokenResponseException:400错误请求无效授予java控制台应用程序_Java_Google Analytics_Console Application - Fatal编程技术网

com.google.api.client.auth.oauth2.TokenResponseException:400错误请求无效授予java控制台应用程序

com.google.api.client.auth.oauth2.TokenResponseException:400错误请求无效授予java控制台应用程序,java,google-analytics,console-application,Java,Google Analytics,Console Application,这是我的问题。我花了两天的时间在谷歌上测试和搜索这个错误,但我不明白如何解决这个问题。当我向谷歌提出请求时,谷歌说: "error" : "invalid_grant" at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.Deleg

这是我的问题。我花了两天的时间在谷歌上测试和搜索这个错误,但我不明白如何解决这个问题。当我向谷歌提出请求时,谷歌说:

"error" : "invalid_grant"

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
}   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
我导入这个罐子:

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.services.analytics.Analytics;
import com.google.api.services.analytics.AnalyticsScopes;
import com.google.api.services.analytics.model.GaData;
import com.google.api.client.http.HttpTransport;
这是我的密码

public static void analyticsExample()
{
// This is the .p12 file you got from the google api console by clicking generate new key
File analyticsKeyFile = new File("C:\\Analytics\\uvcanalytics-f44b89840853.p12");
// This is the service account email address that you can find in the api console
String apiEmail = "<794607131777-gl7vhg10l8vr8d7uln70udfl92r61clh@developer.gserviceaccount.com>";
GoogleCredential credential = null;
try {
    credential = new GoogleCredential.Builder()
    .setTransport(HTTP_TRANSPORT)
    .setJsonFactory(JSON_FACTORY)
    .setServiceAccountId(apiEmail)
    .setServiceAccountScopes(Arrays.asList(AnalyticsScopes.ANALYTICS_READONLY))
    .setServiceAccountPrivateKeyFromP12File(analyticsKeyFile).build();
} catch (Exception e) {
    System.out.print("\n Error A : " + e);
}


Analytics analyticsService = null;
try {
    analyticsService = new Analytics.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
    .setApplicationName("uvcanalytics")
    .build();
} catch (Exception e){System.out.print("\n ######### Bad Analytics service " + e );}


String startDate = "2015-02-15";
String endDate = "2015-02-15";
String mertrics = "ga:sessions";
String idProp = "ga:97649034";

// Use the analytics object build a query
Analytics.Data.Ga.Get get = null;
try {
    get = analyticsService.data().ga().get(idProp,startDate,endDate,mertrics);
    get.setDimensions("ga:date");
} catch (Exception e) {
    System.out.print("\n Error B : " + e);
}


// Run the query
GaData data = null;
try {
    data = get.execute();
} catch (Exception e) {
    System.out.print("\n Error C : " + e);
}

// Do something with the data
if (data.getRows() != null) {
    for (List<String> row : data.getRows()) {
        System.out.println(row);
    }
}}
公共静态无效分析示例()
{
//这是通过单击generate new key从google api控制台获得的.p12文件
File analyticsKeyFile=新文件(“C:\\Analytics\\uvcanalytics-f44b89840853.p12”);
//这是您可以在api控制台中找到的服务帐户电子邮件地址
字符串apimail=“”;
GoogleCredential凭证=null;
试一试{
凭证=新的GoogleCredential.Builder()
.setTransport(HTTP_传输)
.setJsonFactory(JSON_工厂)
.setServiceAccountId(apiEmail)
.setServiceAccountScopes(Arrays.asList(AnalyticsScopes.ANALYTICS\u只读))
.SetServiceAccountPrivateKeyFromp12文件(analyticsKeyFile).build();
}捕获(例外e){
系统输出打印(“\n错误A:+e”);
}
Analytics analyticsService=null;
试一试{
analyticsService=new Analytics.Builder(HTTP_传输、JSON_工厂、凭证)
.setApplicationName(“uvcanalytics”)
.build();
}catch(异常e){System.out.print(“\n############坏分析服务”+e)}
字符串startDate=“2015-02-15”;
字符串endDate=“2015-02-15”;
String mertrics=“ga:sessions”;
字符串idProp=“ga:97649034”;
//使用analytics对象生成查询
Analytics.Data.Ga.Get=null;
试一试{
get=analyticsService.data().ga().get(idProp、startDate、endDate、mertrics);
get.setDimensions(“ga:日期”);
}捕获(例外e){
系统输出打印(“\n错误B:+e”);
}
//运行查询
GaData数据=null;
试一试{
data=get.execute();
}捕获(例外e){
系统输出打印(“\n错误C:+e”);
}
//对数据做点什么
if(data.getRows()!=null){
对于(列表行:data.getRows()){
系统输出打印项次(行);
}
}}

你知道怎么解决这个问题吗?谢谢。

最后我找到了一个解决方案,我想我和很多人一样的主要问题是,所有谷歌文档都太大,无法快速阅读,但我发现了这篇文章:

首先是[我也有同样的问题,我花了大约1小时在v3文档中找到这个问题]


仔细阅读答案,我只是添加一条评论,当你授予Propities访问权限(我真正的问题是这个)时,你必须对你的帐户部分和你的Google开发者帐户(xxxxxx)的财产部分进行访问-xr61clh@developer.gserviceaccount.com),我希望这能帮上忙。

搜索它能给你答案吗?你说你不明白解决办法。这是否意味着您找到了解决方案,但不知道如何应用?