Question: 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](https://developers.google.com/accounts/docs/OAuth2ServiceAccount) to access admin features(admin sdk). 

But i couldn't find ServiceAccountCredential. 

How can i implement this in my project?

Answer: 
Here's how you do it in 2017:

* Go to the [Service Accounts page](https://console.cloud.google.com/iam-admin/serviceaccounts)
* 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](https://www.nuget.org/packages/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
  }

```
[ServiceAccountCredential](http://contrib.google-api-dotnet-client.googlecode.com/hg/1.8.0-rc/documentation/classGoogle_1_1Apis_1_1Auth_1_1OAuth2_1_1ServiceAccountCredential.html) 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",
            });

        }
    }
}

```