Başla

Bu doküman, kitaplığı kullanmaya başlamak için ihtiyacınız olan tüm temel bilgileri sağlar. Kitaplık kavramlarını içerir, çeşitli kullanım alanları için örnekleri gösterir ve daha fazla bilgiye bağlantı verir.

Kurulum

Bu kitaplığı kullanmadan önce tamamlamanız gereken birkaç kurulum adımı vardır:

  1. Google hesabınız yoksa kaydolun.
  2. Daha önce Google API Konsolu projesi oluşturmadıysanız Projeleri Yönetme sayfasını okuyun ve Google API Konsolu'nda proje oluşturun.
  3. Üzerinde çalışmak istediğiniz NuGet paketini yükleyin.

Kimlik doğrulama ve yetkilendirme

API kimlik doğrulamasının ve yetkilendirmesinin nasıl işlendiğine dair temel bilgileri anlamak önemlidir. Tüm API çağrıları basit veya yetkili erişim izni kullanmalıdır (aşağıda tanımlanmıştır). Birçok API yöntemi için yetkili erişim gerekir ancak bazı yöntemlerden bazıları kullanılabilir. Basit veya yetkili erişim kullanıp kullanmadığınıza bağlı olarak, kullanabileceğiniz bazı API yöntemleri farklı şekilde davranabilir. Uygun erişim türünü belirlemek için API'nin yöntem dokümanlarına bakın.

1. Basit API erişimi (API anahtarları)

Bu API çağrıları hiçbir gizli kullanıcı verisine erişmez. Uygulamanız, Google API Konsolu projenize ait bir uygulama olarak kimliğini doğrulamalıdır. Bu, muhasebe amacıyla proje kullanımını ölçmek için gereklidir.

API anahtarı: Uygulamanızın kimliğini doğrulamak için API Console projenizde bir API anahtarı kullanın. Uygulamanızın yaptığı her basit erişim çağrısı bu anahtarı içermelidir.

2. Yetkili API erişimi (OAuth 2.0)

Bu API çağrıları gizli kullanıcı verilerine erişir. Özel kişi erişimini arayabilebilmeniz için özel verilere erişimi olan kullanıcının uygulamanıza erişim izni vermesi gerekir. Bu nedenle, uygulamanızın kimliği doğrulanmalıdır, kullanıcının uygulamanıza erişim izni vermesi ve erişim izni vermek için kullanıcının kimliği doğrulanmalıdır. Tüm bunlar OAuth 2.0 ve bunlar için yazılan kitaplıklarla sağlanır.

Kapsam: Her API, izin verilen işlem gruplarını tanımlayan bir veya daha fazla kapsam tanımlar. Örneğin, bir API salt okunur ve okuma-yazma kapsamlarına sahip olabilir. Uygulamanız kullanıcı verilerine erişim isteğinde bulunduğunda isteğin bir veya daha fazla kapsam içermesi gerekir. Kullanıcının uygulamanızın istediği erişim kapsamını onaylaması gerekiyor.

Yenileme ve erişim jetonları: Bir kullanıcı, uygulamanıza erişim izni verdiğinde OAuth 2.0 yetkilendirme sunucusu, uygulamanıza yenileme ve erişim jetonları sağlar. Bu jetonlar yalnızca istenen kapsam için geçerlidir. Uygulamanız, API çağrılarını yetkilendirmek için erişim jetonları kullanır. Erişim jetonlarının süresi dolar ancak yenileme jetonların süresi dolmaz. Uygulamanız yeni bir erişim jetonu almak için yenileme jetonu kullanabilir.

İstemci kimliği ve istemci gizli anahtarı: Bu dizeler uygulamanızı benzersiz şekilde tanımlar ve jeton almak için kullanılır. Projeniz için API Konsolu'nda oluşturulurlar. Üç tür müşteri kimliği vardır. Bu nedenle uygulamanız için doğru türü aldığınızdan emin olun:

Örnekler

Bu bölümde, yetkilendirme olmadan basit API kullanımı örnekleri verilmiştir. Yetkilendirme çağrıları hakkında daha fazla bilgi için .NET için OAuth 2 .0 sayfasına bakın.

Basit API örneği

Bu örnekte, komut satırı uygulaması için basit API erişimi kullanılmaktadır. Tüm Google API'lerini listelemek için Google Discovery API'yi çağırır.

Örneğin, kurulum

Basit API anahtarınızı alın. Uygulamanızın API anahtarını bulmak için aşağıdakileri yapın:

  1. API Konsolu'nda Kimlik bilgileri sayfası'nı açın.
  2. Bu API iki tür kimlik bilgisini destekler. Projeniz için uygun kimlik bilgilerini oluşturun:
    • OAuth 2.0: Uygulamanız gizli kullanıcı verileri istediğinde, istekle birlikte bir OAuth 2.0 jetonu göndermelidir. Uygulamanız, önce jeton almak için bir istemci kimliği ve muhtemelen bir istemci gizli anahtarı gönderir. Web uygulamaları, hizmet hesapları veya yüklü uygulamalar için OAuth 2.0 kimlik bilgileri oluşturabilirsiniz.

      Daha fazla bilgi için OAuth 2.0 dokümanlarına bakın.

    • API anahtarları: OAuth 2.0 jetonu sağlamayan bir istek API anahtarı göndermelidir. Anahtar, projenizi tanımlar ve API erişimi, kotası ve raporları sağlar.

      API, API anahtarlarıyla ilgili çeşitli kısıtlama türlerini destekler. İhtiyacınız olan API anahtarı henüz mevcut değilse Kimlik bilgisi oluştur > API anahtarı'nı tıklayarak Console'da bir API anahtarı oluşturun. Anahtarı, üretimde kullanmadan önce Anahtarı kısıtla'yı tıklayıp Kısıtlamalar'dan birini seçerek kısıtlayabilirsiniz.

API anahtarlarınızı güvende tutmak için API anahtarlarını güvenli bir şekilde kullanmakla ilgili en iyi uygulamaları takip edin.

Örneğin kod

using System;
using System.Threading.Tasks;

using Google.Apis.Discovery.v1;
using Google.Apis.Discovery.v1.Data;
using Google.Apis.Services;

namespace Discovery.ListAPIs
{
    /// <summary>
    /// This example uses the discovery API to list all APIs in the discovery repository.
    /// https://developers.google.com/discovery/v1/using.
    /// <summary>
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Discovery API Sample");
            Console.WriteLine("====================");
            try
            {
                new Program().Run().Wait();
            }
            catch (AggregateException ex)
            {
                foreach (var e in ex.InnerExceptions)
                {
                    Console.WriteLine("ERROR: " + e.Message);
                }
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }

        private async Task Run()
        {
            // Create the service.
            var service = new DiscoveryService(new BaseClientService.Initializer
                {
                    ApplicationName = "Discovery Sample",
                    ApiKey="[YOUR_API_KEY_HERE]",
                });

            // Run the request.
            Console.WriteLine("Executing a list request...");
            var result = await service.Apis.List().ExecuteAsync();

            // Display the results.
            if (result.Items != null)
            {
                foreach (DirectoryList.ItemsData api in result.Items)
                {
                    Console.WriteLine(api.Id + " - " + api.Title);
                }
            }
        }
    }
}

API anahtarlarını kullanmayla ilgili ipuçları:

  • Belirli bir hizmeti kullanmak için söz konusu hizmete referans eklemeniz gerekir. Örneğin, Tasks API'yi kullanmak istiyorsanız NuGet paketini yüklemeniz gerekir: Google.Apis.Tasks.v1.
  • Bir hizmetin örneğini oluşturmak için oluşturucuyu çağırmanız yeterlidir. Örneğin: new TasksService(new BaseClientService.Initializer {...});".
  • Hizmetin tüm yöntemleri, hizmet nesnesinin kendi kaynaklarında bulunur. Discovery hizmetinde List yöntemi içeren bir Apis kaynağı var. service.Apis.List(..) yöntemini çağırdığınızda, bu yöntemi hedefleyen bir istek nesnesi döndürülür.
    Bir isteği yürütmek için istekteki Execute() veya ExecuteAsyc() yöntemini çağırın.
  • API örneğini BaseClientService.Initializer örneğindeki ApiKey özelliğini kullanarak ayarlayın.

API'ler hakkında bilgi bulma

Desteklenen API'ler sayfasında, bu kitaplık kullanılarak erişilebilen tüm API'ler ve belgelerin bağlantıları listelenir.

Ayrıca, API'lere göz atmak, kullanılabilir yöntemleri listelemek ve hatta tarayıcınızdan API çağrılarını denemek için API Gezgini'ni kullanabilirsiniz.