v2.3からv3に変わるGoogle C#API
-
26-12-2019 - |
質問
C#v2.3 APIを使用してGoogle Analyticsをクエリするための次のコードがあります。
string username = "SAMPLE@SAMPLE.COM";
string pass = "PASS";
string gkey = "?key=XXXXXXXXXXXXXXXXXXXXXXXXXXX";
string dataFeedUrl = "https://www.google.com/analytics/feeds/data" + gkey;
AnalyticsService service = new AnalyticsService("API Sample");
service.setUserCredentials(username, pass);
DataQuery query1 = new DataQuery(dataFeedUrl);
query1.Ids = "ga:34197921";
query1.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
query1.Metrics = "ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue";
query1.Sort = "ga:date,ga:hour";
query1.NumberToRetrieve = 50;
query1.GAStartDate = new DateTime(2012, 1, 2).ToString("yyyy-MM-dd");
query1.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
query1.StartIndex = 1;
DataFeed dataFeedVisits = service.Query(query1);
foreach (DataEntry entry in dataFeedVisits.Entries)
{
....
}
.
新しいV3 APIをアップグレードしたいが、誰かがGoogle OAuthを使用して認証してからGoogle Analyticsデータを問い合わせることができる単純な例をオンラインで見ることが難しいと思います。
次のNUGETパッケージをインストールします。install-package google.apis.analytics.v3 -pre 新しいC#ソリューションでは、次の追加参照をお知らせします。
- google.apis
- google.apis.analytics.v3
- google.apis.auth
- google.apis.auth.platformservices
- google.apis.platformservices
- log4net
- newtownsoft.json
- zlib.portable
この記事を見ました。これは、私が実行する必要があるものにも同様のコードを実行するようです。 グーグルの送信方法ASP.NETを使用したアナリティックレポートクエリGoogle Analytic APIバージョン3(google.apis.analytics.v3.dll)?
しかし、この記事のコードのどれもNUGETで参照されている場所でGoogleライブラリを使用して解決されません。
私は何が足りないのか、そして私はどのように私は写真を完成させることができます。認証方法とGoogle Analyticsへの照会の実行方法
GoogleからTutorialに追従できないために、彼らの.NET Libraryをサポートするためにオンラインでフォローすることはできません!
あらゆるアドバイスのために事前にありがとう!
解決
v3クライアントライブラリでGoogleアナライティクスへのアクセスは本当に素晴らしいTBHです。私が取り出した唯一のものは、データベースに保存したRefreshTokenを送信する方法です。imは私のために私のために保存するものと一緒に立ち往生しています。
request antification:すべてのクライアントスクレットのものがclient_secret.jsonに保存されている.Google APIS Consolからファイルをダウンロードできます。承認がない場合はブラウザウィンドウがポップアップされます。
private void Form1_Load(object sender, EventArgs e)
{
UserCredential credential;
using (var stream = new System.IO.FileStream("client_secret.json", System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { AnalyticsService.Scope.AnalyticsReadonly },
"user", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result;
}
.
}
今すぐGoogle Analyticsにアクセスするには、分析サービスを作成する必要があります。
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = "Analytics API sample",
});
.
あなたのすべての電話はそれに対して実行されるようになります。
あなたは次のようなものであるべきです:
DataResource.GaResource.GetRequest request = service.Data.Ga.Get(ga:34197921, new DateTime(2012, 1, 2).ToString("yyyy-MM-dd"), DateTime.Now.ToString("yyyy-MM-dd"), ""ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue");
request.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
.
私はあなたが作ることができるほとんどの違反呼び出しのうち、走るブログ記事を持っています。 http://daimto.com/google-analytics-api-v3-with-C /
他のヒント
私は同じ問題を抱えていました。NUGETパッケージをインストールしましたが、同じエラーが表示されますが、「ファイルやアセンブリ」のMicrosoft.Threading.Tasks.extensions.desktop、version= 1.0.16.0、culture= neutral、publickeykeke= B03F5F7F11D50A3A 'またはその依存関係の1つ。 システムは、指定されたファイルを見つけることができません。"NUGETパッケージを無効にすることなく取り外して再インストールしてみました。そのため、Microsoft.threading.tasks.extensions.desktop.dllファイルを検索したばかりで、Net40フォルダにありました。私はそれを私のbinフォルダにコピーしてからそれを処理しました。