0

我正在使用服務帳戶訪問我們的域用戶的Google雲端硬盤,這種方式就像一種魅力!不過,我現在試圖使用相同的服務帳戶來獲取Google驅動器中的用戶活動。Google活動api服務帳戶403

我已授予服務帳戶的API訪問https://www.googleapis.com/auth/activityhttps://www.googleapis.com/auth/drive

,並啓用API!

但是我總是得到錯誤403,禁止!

static AppsactivityService BuildService(String userEmail) 
    { 
     X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 
      "notasecret", X509KeyStorageFlags.Exportable); 
     ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer(SERVICE_ACCOUNT_EMAIL) 
      { 
       Scopes = new[] { AppsactivityService.Scope.Drive }, 
       User = userEmail 
      }.FromCertificate(certificate)); 

     // Create the service. 
     var service = new AppsactivityService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = "mytest app", 
     }); 

     return service; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     var service = BuildService("[email protected]"); 

     ActivitiesResource.ListRequest listRequest = service.Activities.List(); 
     listRequest.Source = "drive.google.com"; 
     listRequest.DriveAncestorId = "root"; 

     listRequest.PageSize = 10; 

     IList<Activity> activities = listRequest.Execute().Activities; 

     Console.WriteLine("Activities:"); 
    } 

也許需要一些時間來使https://www.googleapis.com/auth/activity

+0

找到答案...只是服務中的一個愚蠢的錯字將AppsactivityService.ScopeDrive更改爲AppsactivityService.Scope.Activity thx! – markus

+0

Markus,隨時可以添加修復程序作爲解決方案,這樣我們就可以感受到這個問題已經得到解決,其他人可以看到你是如何解決它的。 – peleyal

回答

0

找到了答案......只是個愚蠢的錯字在服務

變化

AppsactivityService.Scope.Drive 
to 
AppsactivityService.Scope.Activity 

THX!

相關問題