Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

where can i find ServiceAccountCredential

I am working in google api with asp.net c#, My goal is access google api using service account.

I have imported all needed dlls to create service account to access admin features(admin sdk).

But i couldn't find ServiceAccountCredential.

How can i implement this in my project?

like image 798
chandran Avatar asked May 27 '14 07:05

chandran


2 Answers

ServiceAccountCredential is part of Google.Apis.Auth.OAuth2

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",
            });


        }
    }
}
like image 117
DaImTo Avatar answered Oct 08 '22 09:10

DaImTo


Here's how you do it in 2017:

  • Go to the Service Accounts page

  • Create a private key for the service account as a JSON file

  • Put the downloaded file in your project (for development) or bake it in your build process

  • Reference the Google.Apis.Auth package in your code

      using (var stream = new FileStream("key.json", FileMode.Open, FileAccess.Read))
      {
          var credential = GoogleCredential.FromStream(stream)
                                           .CreateScoped(scopes)
                                           .UnderlyingCredential as ServiceAccountCredential;
    
          //profit
      }
    
like image 24
Ufuk Hacıoğulları Avatar answered Oct 08 '22 09:10

Ufuk Hacıoğulları