Where can I find ServiceAccountCredential

I work in google api with asp.net c #. My goal is to use google api using a service account.

I imported all the necessary DLLs to create a service account to access the administrator functions (admin sdk).

But I could not find ServiceAccountCredential.

How can I implement this in my project?

+4
source share
3 answers

ServiceAccountCredential is part of Google.Apis.Auth.OAuth2

A simple example using BigQuery:

using System;
using Google.Apis.Auth.OAuth2;
using System.Security.Cryptography.X509Certificates;
using Google.Apis.Bigquery.v2;
using Google.Apis.Services;

//Install-Package Google.Apis.Bigquery.v2
namespace GoogleBigQueryServiceAccount
{
    class Program
    {

        static void Main(string[] args)
        {

            Console.WriteLine("BigQuery API - Service Account");
            Console.WriteLine("==========================");

            String serviceAccountEmail = "539621478854-imkdv94bgujcom228h3ea33kmkoefhil@developer.gserviceaccount.com";

            var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);

            ServiceAccountCredential credential = new ServiceAccountCredential(
               new ServiceAccountCredential.Initializer(serviceAccountEmail)
               {
                   Scopes = new[] { BigqueryService.Scope.DevstorageReadOnly }
               }.FromCertificate(certificate));

            // Create the service.
            var service = new BigqueryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "BigQuery API Sample",
            });


        }
    }
}
+9
source

Here's how you do it in 2017:

  • JSON
  • ( )
  • Google.Apis.Auth

    using (var stream = new FileStream("key.json", FileMode.Open, FileAccess.Read))
    {
        var credential = GoogleCredential.FromStream(stream)
                                         .CreateScoped(scopes)
                                         .UnderlyingCredential as ServiceAccountCredential;
    
        //profit
    }
    
+7

I am using Xamarin Studio and I have a NUnit library library project (PCL) running on my Mac using ServiceAccountCredential. I just tried moving it to an Android test project (MonoDroid), and ServiceAccountCredential does not exist. ServiceAccount exists (its generic class). Therefore, this problem may be related to the compilation goal, and the ServiceAccountCredential is not implemented for your purpose.

+1
source

Source: https://habr.com/ru/post/1542131/


All Articles