1

ほんの数日前にうまく機能していたコードで GoogleAnalytics API からデータを取得しようとしているときに、問題に直面しています。

このために、次の DLL を参照しています。

Google.GData.Analytics.dll
Google.GData.Client.dll
Google.GData.Extensions.dll

そして、私は次のコードを使用しています:

Dim visits As String = String.Empty
Dim username As String = "myuser@mydomain.com"
Dim pass As String = "mypassword"

Const dataFeedUrl As String = "https://www.google.com/analytics/feeds/data"
Dim query As AccountQuery = New AccountQuery()
Dim service As AnalyticsService = New AnalyticsService("MyWebAnalyticsService")
service.setUserCredentials(username, pass)
Dim accountFeed As AccountFeed = service.Query(query) ''----------> Exception thrown in this line: GDataRequestException Execution of request failed: https://www.google.com/analytics/feeds/accounts/default

私が使用していたアカウントへのブロックに関係していると思っていましたが、別の分析アカウントにサイトを登録していることを確認したため、そうではありませんでしたが、まだ機能していません.

私が言ったように、このコードは問題なく動作していましたが、昨日突然動作しなくなりました。

何が問題なのかを理解するのを手伝ってもらえますか? ユーザー資格情報の設定方法が変更され、何か不足している可能性があります。

ご助力ありがとうございます。

' ----更新---- どうにかして機能させることができ、目的のドメインへの訪問を照会できるようになりました。コードは次のようになります。

Dim visits As String = String.Empty
Dim username As String = "myuser@mydomain.com" 
Dim pass As String = "mypassword"

' https://developers.google.com/analytics/resources/articles/gdata-migration-guide (Google API コンソールでプロジェクトを作成する)の指示に従ってキーを生成します。 GA サービスをリクエストするためのクエリ文字列

Dim gkey As String = "key=yourkeystring"

'新しい URI を設定してフィード データを取得し、生成されたキーに追加します

Dim dataFeedUrl As String = "https://www.google.com/analytics/feeds/data?" & gkey   

'サービス インスタンスの作成と認証

Dim service As AnalyticsService = New AnalyticsService("MyAnaliticsService")
service.setUserCredentials(username, pass)  

'この訪問を取得したいアカウントのプロファイル ID を使用し
ます。分析アカウントにログインし、リスト (青いリンク) で目的のドメインを選択します。[管理者] ボタンをクリックし、[プロファイル] タブで、 profile
'configuration サブタブ、そこにプロファイル ID が表示されます。この場合、8 文字の ID 12345678 です。

Dim query1 As DataQuery = New DataQuery(dataFeedUrl)
With query1            
    .Ids = "ga:12345678" 
    .Metrics = "ga:visits"
    .Sort = "ga:visits"
    .GAStartDate = DateTime.Now.AddMonths(-1).AddDays(-2).ToString("yyyy-MM-dd")
    .GAEndDate = DateTime.Now.ToString("yyyy-MM-dd")
    .StartIndex = 1
End With

'以前のクエリに基づいて生成されたデータフィードを使用して、訪問を取得します

Dim dataFeedVisits As DataFeed = service.Query(query1)

For Each entry As DataEntry In dataFeedVisits.Entries
    Dim st As String = entry.Title.Text
    Dim ss As String = entry.Metrics(0).Value
    visits = ss
Next
4

2 に答える 2

1

私は同じ問題を抱えており、グーグルが最近フィードをシャットダウンしたようです。別の投稿で回答されています。問題com.google.gdata.util.ResourceNotFoundException:GoogleAnalyticで見つかりません

于 2012-08-24T20:37:41.740 に答える
0

プロジェクトをAPI コンソールに登録し、リクエストで API キーを送信していることを確認してください。

それが問題でない場合は、内部例外を調べると、エラーの詳細が表示されます。別の方法として、Fiddler を使用して HTTP 要求と応答をキャプチャすることもできます。後者には、より説明的なエラー メッセージが含まれます。

于 2012-08-24T16:39:43.590 に答える