1

Google アナリティクス API を使用して、CMS のユーザーに訪問者データを表示していました。すべてのプロファイルは自分のアカウントの下にあるため、clientlogin といくつかの Google .net ライブラリを使用して、アカウントのすべての Web ID を取得してデータをクエリすることができました。API が廃止されたため、アカウントのすべてのリクエストは 404 を返します。

2.4 にアップデートするためにあらゆることを試みましたが、成功しませんでした。私にとって行くべき道は何でしょうか?ユーザーをリダイレクトしてアプリを受け入れるのではなく、自分のアカウントで一度ログインするだけでよいため..

サービス アカウントを使用していますか? サーバー API キーも持っていますが、新しい API を実装する方法がわかりません。残念ながら、.net ライブラリはまだありません。どんなアドバイスでも大歓迎です!

4

2 に答える 2

2

webrequest と clientlogin を使用して、新しい分析 API 管理フィードからテーブル ID を取得する必要がある場合。これが私の(簡単な)コードです(ベンゲルに感謝します):

string queryString = String.Format("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email={0}&Passwd={1}&service=analytics&source={2}", __username, __pass, "yourlog");
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(queryString);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    string responseContent = new StreamReader(response.GetResponseStream()).ReadToEnd();
    string authCode = responseContent.Substring(responseContent.LastIndexOf("Auth=") + 5);

    queryString = "https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles";
    request = (HttpWebRequest)WebRequest.Create(queryString);
    request.Headers.Add("Authorization", String.Format("GoogleLogin auth={0}", authCode));
    response = (HttpWebResponse)request.GetResponse();
    XDocument doc = XDocument.Load(new StreamReader(response.GetResponseStream()));

    var entries = (from item in doc.Root.Elements("{http://www.w3.org/2005/Atom}entry")
                   select new
                   {
                       tableid = item.Elements("{http://schemas.google.com/analytics/2009}property").ElementAt(4).Attribute("value").Value,
                       profileid = item.Elements("{http://schemas.google.com/analytics/2009}property").ElementAt(1).Attribute("value").Value
                  });
于 2012-08-31T11:21:36.290 に答える
1

発生している主な問題は、APIのバージョン2.3に含まれていたアカウントフィードが削除されたことです。つまり、アカウント、Webプロパティ、プロファイル、および目標に関するあらゆる種類の情報は、古いクライアントライブラリを使用しても機能しません。残りの部分、別名データクエリは引き続き機能するはずであり、移行ドキュメントに従ってアップグレードする必要があります

プロファイルを取得している問題を修正するには、管理APIに切り替える必要があります。最も簡単な修正は、プロファイルを取得する古い方法を根絶し、それを管理APIの単純で安らかな実装に置き換えることです。ライブラリの残りの部分(訪問者/訪問の取得など)は引き続き正常に機能するはずです。

ここに少し例があります:

1)ClientLoginを使用して認証トークンを取得します。

2)GETリクエストをhttps://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profilesに送信して、プロファイルxmlを取得します。リクエストには必ず認証ヘッダーを含めてくださいrequest.Headers.Add("Authorization", String.Format("GoogleLogin auth={0}", clientLoginAuthToken));

3)XDocumentを使用して結果を解析します!

于 2012-08-28T20:23:33.060 に答える