2015-04-27 1 views
1

Я получаю сообщение об ошибке «Неавторизованный клиент или область в запросе». Когда выполняется следующий код. Если я удалю параметр .User = myUserEmail, я получаю сообщение об ошибке «Недостаточное разрешение [403]». Если бы я должен был догадаться, я бы предположил, что проблема - это параметр .user, который я использую. Но я не делаю то, что я делаю неправильно. Я использую адрес электронной почты, связанный с учетной записью Google, которую я обычно использую для входа в Google Analytics.Google API v3. Net клиент Неавторизованный клиент или область в запросе

Private myClientEmail As String = System.Configuration.ConfigurationManager.AppSettings("clientEmail").ToString() 
    Private myP12Path As String = System.Configuration.ConfigurationManager.AppSettings("p12Path").ToString() 
    Private myP12Password As String = System.Configuration.ConfigurationManager.AppSettings("p12Password").ToString() 
    Private myUserEmail As String = System.Configuration.ConfigurationManager.AppSettings("userEmail").ToString() 
    Private myApplicationName As String = System.Configuration.ConfigurationManager.AppSettings("applicationName").ToString() 

    Dim scopes As IList(Of String) = New List(Of String)() 
    scopes.Add("https://www.googleapis.com/auth/drive.readonly") 

    Dim certificate As X509Certificate2 = New X509Certificate2(myP12Path, myP12Password, X509KeyStorageFlags.Exportable) 

    Dim credential As ServiceAccountCredential = New ServiceAccountCredential(New ServiceAccountCredential.Initializer(myClientEmail) With { 
                       .Scopes = scopes, 
                       .User = myUserEmail 
                       }.FromCertificate(certificate)) 

    Dim service As AnalyticsService = New AnalyticsService(New BaseClientService.Initializer() With { 
                        .HttpClientInitializer = credential, 
                        .ApplicationName = myApplicationName 
                       }) 

    Dim profileId As String = "ga:12345678" 
    Dim startDate As String = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd") 
    Dim endDate As String = DateTime.Today.ToString("yyyy-MM-dd") 
    Dim metrics As String = "ga:visits" 
    Dim request As DataResource.GaResource.GetRequest = service.Data.Ga.Get(profileId, startDate, endDate, metrics) 
    request.Dimensions = "ga:date" 
    Dim data As GaData = request.Execute() 

ответ

0

Я нашел ошибку в моих отношениях ...

Где-то вдоль линий я нечаянно изменил сферу на «drive.readonly». Когда я пытаюсь работать с «analytics.readonly».

Смежные вопросы