【问题标题】:Google API v3 .Net client Unauthorized client or scope in requestGoogle API v3 .Net 客户端未经授权的客户端或请求范围
【发布时间】:2015-07-06 06:45:33
【问题描述】:

我收到错误消息“请求中未经授权的客户端或范围”。当下面的代码执行时。如果我删除 .User = myUserEmail 参数,我会收到“权限不足 [403]”错误消息。如果我不得不猜测,我猜问题是我正在使用的 .user 参数。但是,我不知道我在那里做错了什么。我使用的电子邮件地址与我通常用来登录 Google Analytics 的 Google 帐户相关联。

    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()

【问题讨论】:

    标签: google-analytics-api google-oauth


    【解决方案1】:

    我发现我的方式有错误...

    我无意中将范围更改为“drive.readonly”。当我尝试使用“analytics.readonly”时。

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 2016-10-13
      • 2015-10-11
      • 2022-09-19
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多