2

私はC#からGoogle Analyticsデータを取得するために単純なAPIキーを使用しようとしていますが、ログインに必要なエラーが発生しています。 OAuthやサービスアカウントタイプの認証情報を使用せずに単純なAPIキーを使用してGoogle Analyticsデータを取得する方法を教えてください。C#で "Simple API key"を使用してGoogleアナリティクスデータを取得するにはどうすればよいですか?

public AnalyticsService Service { get; set; } 

[ActionName("GetAnalyticsData")] 
[HttpGet] 
public AnalyticDataPoint GetAnalyticsData() 
{ 
    Service = new AnalyticsService(new BaseClientService.Initializer() 
     { 
      ApplicationName = "TU-SME Dashboard", 
      ApiKey = "AIzaSyBfHuyRHd7Dy4Go_zF3ebjnKB4h3ybiJFk", 
     }); 

    AnalyticDataPoint data = new AnalyticDataPoint(); 

    GaData response = null; 
    var request = Service.Data.Ga.Get("ga:3169903", "30daysAgo","yesterday", "ga:sessions"); 
    response = request.Execute(); 

    data.ColumnHeaders = response.ColumnHeaders; 
    data.Rows.AddRange(response.Rows);    

    return data; 
} 

public class AnalyticDataPoint 
{ 
    public AnalyticDataPoint() 
    { 
     Rows = new List<IList<string>>(); 
    } 

    public IList<GaData.ColumnHeadersData> ColumnHeaders { get; set; } 
    public List<IList<string>> Rows { get; set; } 
} 

答えて

0

APIキーが公開データにアクセスするために使用されます。ここでは

は、私がこれまでに一緒に入れているコードです。パブリックデータは、誰にも所有されていないデータです。 YouTubeでの検索などのGoogleブックスは、公開データへのリクエストの例です。

Googleアナリティクスアカウントの情報にアクセスしてGoogleドライブアカウントにファイルをリストします。プライベートユーザデータの例です。

秘密のユーザーデータにアクセスするには、そのデータの所有者は、まず認証を介してそのデータにアクセスする許可を与える必要があります。

アンサー:Oauth2またはサービスアカウントを使用して、プライベートGoogleアナリティクスデータにアクセスできます。 APIキーを使用してGoogleアナリティクスデータにアクセスすることはできません。

サービスアカウント認証:

(コメントから)、Googleのデベロッパーコンソールからサービスアカウントのメールアドレスを取り、私たちは、Googleアナリティクスのデータに、この電子メールアドレスへのアクセスを与える必要があります。 Googleアナリティクスウェブサイトの管理セクションの他のユーザーと同じように追加します。アカウントレベルでユーザーとしてサービスアカウントの電子メールアドレスを追加します。アカウントレベルでなければなりません。これにより、問題のGoogleアナリティクスアカウントへのサービスアカウントのアクセスが可能になります。私はそれがアカウントレベルにある必要があると言いましたか? (V4)あなたのコードは、古いAPI(V3)を使用しているあなたが変更する必要がありますコードは、しかし、それをGoogleアナリティクスAPIの新しいバージョンを使用して、私のGoogle Analytics tutorial seriesそれの更新版がここにありGoogle Service Account with Json fileからリッピング

string[] scopes = new string[] {AnalyticsService.Scope.Analytics}; // view and manage your Google Analytics data 

var keyFilePath = @"c:\file.p12" ; // Downloaded from https://console.developers.google.com 
var serviceAccountEmail = "[email protected]"; // found https://console.developers.google.com 

//loading the Key file 
var certificate = new X509Certificate2(keyFilePath, "notasecret", X509KeyStorageFlags.Exportable); 
var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail) { 
                Scopes = scopes}.FromCertificate(certificate)); 

それはv3で使用するためのものです。サービスアカウントの資格情報を、私は私のウェブサイトのためのGoogle Analyticsのデータを取得し、内部目的のためのダッシュボードの上にそれを表示する必要が

+0

Google Developer console service accountを作成する方法

。我々はこれを外部に見せているわけではない。 c-sharp .netからgoogleのデータにログイン情報を与え、アクセスするにはapiキーを使用してアクセスできますか? –

+0

サービスアカウントを使用することをお勧めします。ログインとパスワード(クライアントのログイン)を使用してGoogle APIにアクセスすることはできません。 – DaImTo

+0

私はサービスアカウントを使用しようとしていますが、私はアカウントの所有者ですが、管理者になってユーザー管理(唯一のクリック可能オプション、残りはグレー表示)をクリックすると、メッセージが表示されます: *ユーザー管理:このアカウントのユーザーを変更するための十分な権限がありません。 もちろん、私はプロパティの列では何もできません(すべて淡色表示されています)。 これで私を助けてもらえますか? –

関連する問題