gpt4 book ai didi

java - 在 JAVA 中无需 Web 浏览器即可验证 Google Analytics

转载 作者:行者123 更新时间:2023-11-30 03:36:00 24 4
gpt4 key购买 nike

我目前有一个 Google 分析程序,可以从我的网站中提取一些分析数据。目前它位于我的本地计算机上并且工作正常。不过,我想将该程序移至我们的 Oracle 云服务器中,该服务器托管我的 Web 文件。它是一个基于 Linux 的服务器,几乎没有浏览器支持。我尝试在服务器上运行该程序,但像往常一样,它提示我转到网站来验证 Oauth..ect.ect

( https://accounts.google.com/o/oauth2/auth?client_id=658818029220-701kg25os6dqq1ua577cpn8drujjuvl8.apps.googleusercontent.com&redirect_uri=http://localhost:23100/Callback&response_type=code&scope=https://www.googleapis.com/auth/analytics.readonly )

我尝试在服务器上使用网络浏览器...效果不太好。我想知道是否有人有解决方案可以让我使用此应用程序而无需使用网络浏览器进行身份验证。

编辑:在 Service Acc 事情上遇到困难

所以...我当前的应用程序中有这个来进行身份验证...

     /** Authorizes the installed application to access user's protected data. */
private static Credential authorize() throws Exception {
// load client secrets
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(
JSON_FACTORY, new InputStreamReader(
extractanalyticsgoogleapi.class.getResourceAsStream("/client_secrets.json")));
if (clientSecrets.getDetails().getClientId().startsWith("Enter")
|| clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
System.out.println(
"Enter Client ID and Secret from https://code.google.com/apis/console/?api=analytics "
+ "into analytics-cmdline-sample/src/main/resources/client_secrets.json");
System.exit(1);
}
// set up authorization code flow
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets,
Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY)).setDataStoreFactory(
dataStoreFactory).build();
// authorize
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}

我不确定将服务 Acc 代码放入何处

最佳答案

您想要做的是设置一个有权访问您的 Google Analytics(分析)数据的 service account。这允许您的服务器代码访问您的 Google Analytics(分析)信息。

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.analytics.AnalyticsScopes;

// ...

String emailAddress = "123456789000-abc123def456@developer.gserviceaccount.com";
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(emailAddress)
.setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12"))
.setServiceAccountScopes(Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY))
.build();

关于java - 在 JAVA 中无需 Web 浏览器即可验证 Google Analytics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27864994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com