[ACCEPTED]-where can i find ServiceAccountCredential-google-api-dotnet-client

Accepted answer
Score: 26

Here's how you do it in 2017:

  • Go to the Service Accounts page

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

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

  • Reference the Google.Apis.Auth package 1 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
      }
    
Score: 12

ServiceAccountCredential is part of Google.Apis.Auth.OAuth2

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


        }
    }
}
Score: 1

I am using Xamarin Studio and I have an 8 NUnit test library project (PCL) working 7 on my Mac using ServiceAccountCredential. I 6 just tried to move it to an Android test 5 project (MonoDroid), and ServiceAccountCredential 4 does not exist. ServiceAccount does exist 3 (its ancestral class). So this problem may 2 be related to the compile target, and ServiceAccountCredential 1 not being implemented for your target.

More Related questions