.NETアプリケーションからGoogleAnalyticsAPIに接続しようとしています。これが私が思いついたコードです:
Public Function GetData() As String
Dim client As AssertionFlowClient = New AssertionFlowClient(GoogleAuthenticationServer.Description,
New X509Certificate2("C:\Users\xxxxx\privatekey.p12", "notasecret",
X509KeyStorageFlags.Exportable Or X509KeyStorageFlags.MachineKeySet)) With {
.Scope = "analytics.readonly",
.ServiceAccountId = "xxxxx@developer.gserviceaccount.com"}
Dim authenticator As OAuth2Authenticator(Of AssertionFlowClient) = New OAuth2Authenticator(Of AssertionFlowClient)(client, AddressOf AssertionFlowClient.GetState)
Dim service As AnalyticsService = New AnalyticsService(authenticator)
Dim profileId As String = "ga:xxxxx"
Dim startDate As String = "2013-02-15"
Dim endDate As String = "2013-02-20"
Dim metrics As String = "ga:visitors"
Dim request As DataResource.GaResource.GetRequest = service.Data.Ga.Get(profileId, startDate, endDate, metrics)
Dim data As GaData = request.Fetch()
Return data.ToString()
End Function
私の問題は、このメソッドを押すrequest.Fetch()
と、「ダイレクトメッセージの送信中または応答の取得中にエラーが発生しました」という例外が表示されることです。内部例外は、「リモートサーバーがエラーを返しました:(400)不正な要求」です。
このエラーは明らかにかなりあいまいです。Googleのエラーコードのドキュメントによると、400 Bad Requestは、入力パラメータがどういうわけか意味をなさないことを示しています。誰かが私のコードのパラメータを見て問題を診断できますか?そうでなければ、どうすれば自分が間違っていることを追跡し始めることができますか?エラーに表示される情報は事実上ありません。
(少なくとも、認証段階を通過しました...私は思います。)