私は同じ問題を抱えていたと私はv3のドキュメントでこれを見つけるために、1時間程度かかった:
サービスは
自動/オフライン/ための有用な
アカウント自分のアカウントのGoogleアナリティクスデータへの定期的なアクセス。たとえば、自分のGoogleアナリティクスデータのライブダッシュボードを作成し、他のユーザーと共有することができます。
あなたは、Googleアナリティクスで動作するようにサービスアカウントを設定するには従う必要があるいくつかのステップがあります。
- APIコンソールでプロジェクトを登録します。
- Google APIコンソールの[APIアクセス]ペインで、[アプリケーションタイプ]を[サービスアカウント]に設定してクライアントIDを作成します。
- Googleアナリティクスにログインし、[管理]セクションに移動します。
- アプリケーションにアクセスさせるアカウントを選択します。
- ステップ2のAPIコンソールで作成したクライアントIDから、選択したGoogleアナリティクスアカウントのユーザーとしてメールアドレスを追加します。
- サービスアカウントの手順に従って、Googleアナリティクスのデータにアクセスします。
ここで続きを読む: https://developers.google.com/analytics/devguides/reporting/core/v3/gdataAuthorization
PUH、私は)= APIは、Googleがそれを簡単に文書化問題を抱えているので、大きいと思い
は、その後、私は、コードを見て
plus-serviceaccount-cmdline-sampleおよび
analytics-cmdline-sampleです。このことができます
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
private static final JsonFactory JSON_FACTORY = new JacksonFactory();
public static Result index() {
GoogleCredential credential = null;
try {
credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[email protected]")
.setServiceAccountScopes(Arrays.asList(AnalyticsScopes.ANALYTICS_READONLY))
.setServiceAccountPrivateKeyFromP12File(new File("/your/path/to/privatekey/privatekey.p12"))
.build();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// Set up and return Google Analytics API client.
Analytics analytics = new Analytics.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(
"Google-Analytics-Hello-Analytics-API-Sample").build();
String profileId = "";
try {
profileId = getFirstProfileId(analytics);
} catch (IOException e) {
e.printStackTrace();
}
GaData gaData = null;
try {
gaData = executeDataQuery(analytics, profileId);
} catch (IOException e) {
e.printStackTrace();
}
printGaData(gaData);
return ok(index.render("Your new application is ready."));
}
private static String getFirstProfileId(Analytics analytics) throws IOException {
String profileId = null;
// Query accounts collection.
Accounts accounts = analytics.management().accounts().list().execute();
if (accounts.getItems().isEmpty()) {
System.err.println("No accounts found");
} else {
String firstAccountId = accounts.getItems().get(0).getId();
// Query webproperties collection.
Webproperties webproperties =
analytics.management().webproperties().list(firstAccountId).execute();
if (webproperties.getItems().isEmpty()) {
System.err.println("No Webproperties found");
} else {
String firstWebpropertyId = webproperties.getItems().get(0).getId();
// Query profiles collection.
Profiles profiles =
analytics.management().profiles().list(firstAccountId, firstWebpropertyId).execute();
if (profiles.getItems().isEmpty()) {
System.err.println("No profiles found");
} else {
profileId = profiles.getItems().get(0).getId();
}
}
}
return profileId;
}
/**
* Returns the top 25 organic search keywords and traffic source by visits. The Core Reporting API
* is used to retrieve this data.
*
* @param analytics the analytics service object used to access the API.
* @param profileId the profile ID from which to retrieve data.
* @return the response from the API.
* @throws IOException tf an API error occured.
*/
private static GaData executeDataQuery(Analytics analytics, String profileId) throws IOException {
return analytics.data().ga().get("ga:" + profileId, // Table Id. ga: + profile id.
"2012-01-01", // Start date.
"2012-01-14", // End date.
"ga:visits") // Metrics.
.setDimensions("ga:source,ga:keyword")
.setSort("-ga:visits,ga:source")
.setFilters("ga:medium==organic")
.setMaxResults(25)
.execute();
}
/**
* Prints the output from the Core Reporting API. The profile name is printed along with each
* column name and all the data in the rows.
*
* @param results data returned from the Core Reporting API.
*/
private static void printGaData(GaData results) {
System.out.println("printing results for profile: " + results.getProfileInfo().getProfileName());
if (results.getRows() == null || results.getRows().isEmpty()) {
System.out.println("No results Found.");
} else {
// Print column headers.
for (GaData.ColumnHeaders header : results.getColumnHeaders()) {
System.out.printf("%30s", header.getName());
}
System.out.println();
// Print actual data.
for (List<String> row : results.getRows()) {
for (String column : row) {
System.out.printf("%30s", column);
}
System.out.println();
}
System.out.println();
}
}
希望:これは上記の例のように、System.outに 印刷物ことPlayframework2のJavaアプリに実装され、非常に基本的なバージョンです!
あなたの投稿は本当に私を助けます。 3.0バージョンのドキュメントはとても混乱して無駄です。これは、client_secrets.jsonをコンパイルする方法などの重要なステップを多く逃し、そのような 'what !!'を指摘しています。リンク。再度、ありがとうございます。 –
そのページがGoogleによって削除されました。私は過去20日間この問題に直面しています.Googleアナリティクスデータにアクセスするために正確に何が使用されているかコードを共有できますか。 –