İlk 100 dosyayı göster & Google Drive'ınızdaki klasörler

1. Google Workspace API'lerini kullanma

Bu codelab, Google Workspace'in (eski adıyla G Suite) HTTP tabanlı RESTful API'lerini kullanmaya başlamanıza yardımcı olur. Örnek, kısa olması ve kullanılabilirliği nedeniyle Python'da yapılacaktır ancak tercih ettiğiniz geliştirme dilini de kullanabilirsiniz. Geliştirici konsolunu kullanarak proje oluşturma/yönetme, yetkilendirme kimlik bilgilerini edinme ve API istemci kitaplıklarını yükleme gibi başlangıç konuları hakkında bilgi edineceksiniz. Gerekli işlemler tamamlandıktan sonra, Google Drive'daki ilk 100 dosya ve klasörü API'sini kullanarak görüntüleyen bir uygulama yazacaksınız.

Neler öğreneceksiniz?

  • Google/Cloud Developers Console'u kullanarak proje oluşturma
  • Uygulamanızda OAuth2 uygulama kimlik bilgilerini edinme ve kullanma
  • Google API'leri İstemci Kitaplıkları'nı kullanma hakkında bilgi edinin.
  • Google ve Google Workspace API'lerini kullanarak uygulamalar yazma
  • Google Drive API ile dosya ve klasör bilgilerini edinme

İhtiyacınız olanlar

  • İnternet erişimi ve web tarayıcısı
  • Google Hesabı (Google Workspace hesapları için yönetici onayı gerekebilir)
  • Linux ve Mac OS X gibi POSIX uyumlu sistemler hakkında bilgi sahibi olma
  • Kod düzenleyici veya kabuk komutlarıyla kaynak dosyalar oluşturabilme.
  • Python (2 veya 3) konusunda temel beceriler. Ancak desteklenen herhangi bir dili kullanabilirsiniz.
  • Google Drive'ınızdaki bazı dosyalar ve/veya klasörler

2. Anket

Bu codelab eğitimini nasıl kullanacaksınız?

Yalnızca okuyun Okuyun ve alıştırmaları tamamlayın

Google Workspace geliştirici araçları ve API'leriyle ilgili deneyiminizi nasıl değerlendirirsiniz?

Başlangıç Orta İleri

3. Genel Bakış

Bu codelab'de şunları öğreneceksiniz:

  1. Python için Google API'leri istemci kitaplığını indirin.
  2. Google/Cloud Developers Console'da yeni bir proje oluşturun.
  3. Uygulamanız için gerekli kimlik bilgilerini alın
  4. Google Drive API'ye erişmek için bu kimlik bilgilerini kullanın.

Python kullanmak istemiyorsanız codelab'i tercih ettiğiniz geliştirme aracında (desteklenen dillerin istemci kitaplıkları burada mevcuttur) uygulayabilir ve Python örneklerini (yürütülebilir) sözde kod olarak değerlendirebilirsiniz.

4. Python ortamını onaylama

Bu codelab'de Python dilini kullanmanız gerekir (Google API'leri istemci kitaplıkları birçok dili desteklese de en sevdiğiniz geliştirme aracında eşdeğer bir şey oluşturabilir ve Python'u yalnızca sözde kod olarak kullanabilirsiniz). Bu codelab özellikle Python 2 ve 3'ü destekler ancak en kısa sürede 3.x'e geçmenizi öneririz.

Cloud Shell, kullanıcıların doğrudan Cloud Console'dan erişebileceği bir kolaylıktır ve yerel geliştirme ortamı gerektirmez. Bu nedenle, bu eğitim bir web tarayıcısıyla tamamen bulutta yapılabilir. Cloud Shell, özellikle GCP ürünleri ve API'leriyle geliştirme yapıyorsanız veya yapmaya devam etmeyi planlıyorsanız çok kullanışlıdır. Bu codelab'de Cloud Shell'e her iki Python sürümü de önceden yüklenmiştir.

Cloud Shell'de IPython da yüklüdür. Bu, özellikle veri bilimi veya makine öğrenimi topluluğunun bir parçasıysanız önerdiğimiz daha üst düzey bir etkileşimli Python yorumlayıcısıdır. Bu durumda, IPython, Google Research tarafından barındırılan Colab'in yanı sıra Jupyter Notebooks'un da varsayılan yorumlayıcısıdır.

IPython, öncelikle Python 3 yorumlayıcısını tercih eder ancak 3.x sürümü kullanılamıyorsa Python 2'ye geri döner. IPython'a Cloud Shell'den erişilebilir ancak yerel bir geliştirme ortamına da yüklenebilir. ^D (Ctrl-d) ile çıkın ve çıkma teklifini kabul edin. ipython ile başlayan örnek çıkış şu şekilde görünür:

$ ipython
Python 3.7.3 (default, Mar 4 2020, 23:11:43)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

IPython'ı tercih etmiyorsanız standart bir Python etkileşimli yorumlayıcı (Cloud Shell veya yerel geliştirme ortamınız) kullanmanız da uygundur (^D ile de çıkabilirsiniz):

$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python3
Python 3.7.3 (default, Mar 10 2020, 02:33:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Bu codelab'de pip yükleme aracının (Python paket yöneticisi ve bağımlılık çözümleyici) yüklü olduğu da varsayılır. pip, 2.7.9 veya sonraki sürümler ya da 3.4 veya sonraki sürümlerle birlikte gelir. Daha eski bir Python sürümünüz varsa yükleme talimatları için bu kılavuza bakın. İzinlerinize bağlı olarak sudo veya süper kullanıcı erişimine sahip olmanız gerekebilir ancak genellikle bu durum geçerli değildir. Ayrıca, belirli Python sürümleri için pip komutunu çalıştırmak üzere pip2 veya pip3 komutunu açıkça kullanabilirsiniz.

Bu codelab'in geri kalanında Python 3 kullandığınız varsayılır. 3.x'ten önemli ölçüde farklılık gösteren Python 2'ye özel talimatlar verilir.

*Sanal ortamlar oluşturma ve kullanma

Bu bölüm isteğe bağlıdır ve yalnızca bu codelab için sanal ortam kullanması gerekenler (yukarıdaki uyarı kenar çubuğunda belirtildiği gibi) için gereklidir. Bilgisayarınızda yalnızca Python 3 varsa my_env adlı bir sanal ortam oluşturmak için bu komutu verebilirsiniz (isterseniz başka bir ad da seçebilirsiniz):

virtualenv my_env

Ancak bilgisayarınızda hem Python 2 hem de 3 varsa -p flag ile yapabileceğiniz bir Python 3 sanal ortamı yüklemenizi öneririz:

virtualenv -p python3 my_env

Yeni oluşturduğunuz virtualenv'yi şu şekilde "etkinleştirerek" girin:

source my_env/bin/activate

Kabuk isteminizin artık ortam adınızla başladığını gözlemleyerek ortamda olduğunuzu doğrulayın. Örneğin:

(my_env) $ 

Artık gerekli paketleri pip install, bu ortamda kod yürütebilirsiniz vb. Bir diğer avantajı da her şeyi tamamen berbat ederseniz, Python kurulumunuzun bozulduğu bir duruma gelirseniz vb. sisteminizin geri kalanını etkilemeden bu ortamın tamamını silebilirsiniz.

5. Python için Google API'leri istemci kitaplığını yükleme

Bu codelab'de Python için Google API'leri istemci kitaplığının kullanılması gerekir. Bu nedenle, basit bir yükleme işlemi yapmanız veya hiçbir şey yapmamanız gerekebilir.

Daha önce kolaylık sağlaması için Cloud Shell'i kullanmanızı önermiştik. Eğitimin tamamını buluttaki bir web tarayıcısından yapabilirsiniz. Cloud Shell'i kullanmanın bir diğer nedeni de birçok popüler geliştirme aracı ve gerekli kitaplığın zaten önceden yüklenmiş olmasıdır.

*İstemci kitaplıklarını yükleme

(İsteğe bağlı) Cloud Shell'i veya istemci kitaplıklarını daha önce yüklediğiniz bir yerel ortamı kullanıyorsanız bu adım atlanabilir. Bunu yalnızca yerel olarak geliştirme yapıyorsanız ve bunları yüklemediyseniz (veya yüklediğinizden emin değilseniz) yapmanız gerekir. Yükleme işlemini (gerekirse pip'yı güncelleme dahil) yapmanın en kolay yolu pip (veya pip3) kullanmaktır:

pip install -U pip google-api-python-client oauth2client

Kurulumu onaylama

Bu komut, istemci kitaplığının yanı sıra bağlı olduğu tüm paketleri yükler. Cloud Shell'i veya kendi ortamınızı kullanıyor olsanız da gerekli paketleri içe aktararak istemci kitaplığının yüklendiğini doğrulayın ve içe aktarma hatası (veya çıkış) olmadığını onaylayın:

python3 -c "import googleapiclient, httplib2, oauth2client"

Bunun yerine Python 2'yi (Cloud Shell'den) kullanırsanız desteğinin sonlandırıldığına dair bir uyarı alırsınız:

*******************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunset

To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in seconds or on any key.
*******************************************************************************

İçe aktarma "test" komutunu başarıyla çalıştırabildiğinizde (hata/çıkış yok) Google API'leriyle iletişim kurmaya başlayabilirsiniz.

Özet

Bu bir başlangıç seviyesi codelab olduğundan Google ve Google Workspace API'lerini yeni kullanmaya başladığınız varsayılır. Daha önce proje oluşturma ve kullanıcı yetkilendirme "OAuth istemci kimlikleri" oluşturma konusunda deneyiminiz varsa. Bu durumda, yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın, yeni bir OAuth istemci kimliği oluşturun veya mevcut bir OAuth istemci kimliğini yeniden kullanın ve sonraki iki modülü atlayıp doğrudan "Drive dosyalarınızı ve klasörlerinizi görüntüleme uygulaması" bölümüne gidin ya da bu adımları daha az rehberlikle incelemek için "Gelişmiş geliştirici konsolu kullanımı" bölümüne atlayın.

6. Cloud Console'da projeyi belirtin

Google API'lerini kullanan bir uygulama için proje gerekir. Bunlar Google Cloud Developers Console'da veya kısaca "devconsole"da yönetilir. Bu codelab'de yalnızca Google Drive API'yi kullanacağımız için aşağıdaki sihirli bağlantıyı (1. adımda) kullanacağız:

  • Sizi devconsole'a yönlendirir.
  • Yeni bir proje oluşturma (veya mevcut bir projeyi seçme) konusunda size yol gösterir.
  • Drive API'yi otomatik olarak etkinleştirir.

Hadi başlayalım!

  1. console.developers.google.com/start/api?id=drive adresine gidip Google Hesabınızda oturum açın.
  2. Henüz projeniz yoksa Google API'leri Hizmet Şartları'nı kabul etmek için bu ekranı görürsünüz:

e3b2076ba58a7cd7.png Şartları kabul ettiğinizde "Projem" adlı yeni bir proje oluşturulur ve Drive API otomatik olarak etkinleştirilir. 3. Bunun yerine, daha önce bir proje oluşturduysanız (örneğin, önceki codelab'iniz) şu ekranı görürsünüz: 50b3b8ace6721f1f.png Proje oluştur açılır listesini tıkladığınızda mevcut bir projeyi seçin veya yeni bir proje oluşturun. 69db3867445ad9e5.png Seçiminizi (yeni veya mevcut proje) yaptıktan sonra Drive API sizin için otomatik olarak etkinleştirilir. 4. Drive API'nin etkinleştirildiğini şu onay mesajıyla anlarsınız: 365e7de1377493bb.png 5. Sonraki adıma geçmek için Kimlik bilgilerine git'i tıklayın.

7. *API isteklerini yetkilendirme (kullanıcı yetkilendirmesi)

Daha önce kullanıcı hesabı yetkilendirme kimlik bilgileri oluşturduysanız ve süreci biliyorsanız bu bölümü atlayabilirsiniz. Bu, tekniği farklı olan hizmet hesabı yetkilendirmesinden farklıdır. Lütfen aşağıdan devam edin.

Yetkilendirmeye giriş (ve biraz kimlik doğrulama)

API'lere istek gönderebilmek için uygulamanızın uygun yetkilendirmeye sahip olması gerekir. Benzer bir kelime olan kimlik doğrulama, giriş kimlik bilgilerini ifade eder. Google Hesabınıza giriş yaparken kullanıcı adı ve şifreyle kimliğinizi doğrularsınız. Kimlik doğrulama tamamlandıktan sonraki adım, veriye erişmek için yetkili olup olmadığınızı (daha doğrusu kodunuzun yetkili olup olmadığını) belirlemektir. Bu veriler, Cloud Storage'daki blob dosyaları veya Google Drive'daki kullanıcının kişisel dosyaları gibi veriler olabilir.

Google API'leri çeşitli yetkilendirme türlerini destekler ancak bu codelab'deki örnek uygulama son kullanıcılara ait verilere eriştiği için Google Workspace API kullanıcıları için en yaygın olanı kullanıcı yetkilendirmesidir. Bu tür son kullanıcılar, uygulamanızın verilerine erişmesine izin vermelidir. Bu nedenle, kodunuzun kullanıcı hesabı OAuth2 kimlik bilgilerini alması gerekir.

Kullanıcı yetkilendirmesi için OAuth2 kimlik bilgilerini almak üzere API yöneticisine geri dönün ve sol gezinme çubuğunda "Kimlik bilgileri" sekmesini seçin:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

İlgili sayfaya ulaştığınızda tüm kimlik bilgilerinizi üç ayrı bölümde görürsünüz:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

Birincisi API anahtarları, ikincisi OAuth 2.0 istemci kimlikleri ve sonuncusu OAuth2 hizmet hesapları içindir. Ortadaki seçeneği kullanıyoruz.

Kimlik bilgisi oluşturma

Kimlik Bilgileri sayfasında, üst kısımdaki + Kimlik Bilgileri Oluştur düğmesini tıklayın. Bu işlem, "OAuth istemci kimliği:" seçeneğini belirleyeceğiniz bir iletişim kutusu açar.

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

Sonraki ekranda 2 işlem yapabilirsiniz: Uygulamanızın yetkilendirme "kullanıcı rızası ekranını" yapılandırma ve uygulama türünü seçme:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

Kullanıcı rızası ekranı ayarlamadıysanız konsolda uyarıyı görürsünüz ve şimdi ayarlamanız gerekir. (Kullanıcı rızası ekranınız zaten ayarlandıysa sonraki adımları atlayın.)

"Kullanıcı rızası ekranını yapılandır"ı tıklayın. Burada "Harici" bir uygulama seçersiniz (veya Google Workspace [eski adıyla "Google Workspace"] müşterisiyseniz "Dahili"yi seçersiniz):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

Bu alıştırma kapsamında, codelab örneğinizi yayınlamadığınız için hangisini seçtiğinizin önemli olmadığını unutmayın. Çoğu kişi daha karmaşık bir ekrana yönlendirilmek için "Harici"yi seçer ancak aslında yalnızca en üstteki "Uygulama adı" alanını doldurmanız gerekir:

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

Şu anda ihtiyacınız olan tek şey bir uygulama adı. Bu nedenle, yaptığınız codelab'i yansıtan bir ad seçin ve Kaydet'i tıklayın.

OAuth istemci kimliği oluşturma (kullanıcı hesabı yetkilendirme)

Şimdi OAuth2 istemci kimliği oluşturmak için Kimlik Bilgileri sekmesine geri dönün. Burada oluşturabileceğiniz çeşitli OAuth istemci kimliklerini görürsünüz:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

Diğer kategorisinde bir komut satırı aracı geliştiriyoruz. Bu nedenle, bu seçeneği belirleyip Oluştur düğmesini tıklayın. Oluşturduğunuz uygulamayı yansıtan bir istemci kimliği adı seçin veya genellikle "Diğer istemci N" olan varsayılan adı kullanın.

Kimlik bilgilerinizi kaydetme

  1. Yeni kimlik bilgilerini içeren bir iletişim kutusu gösterilir. Kapatmak için Tamam'ı tıklayın.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. Kimlik Bilgileri sayfasına geri dönün, "OAuth2 İstemci Kimlikleri" bölümüne gidin ve yeni oluşturduğunuz istemci kimliğinizin en sağ alt kısmındaki indirme simgesini aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ tıklayın. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. Bu işlem, client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json adlı bir dosyayı kaydetmek için bir iletişim kutusu açar. Bu dosya, büyük olasılıkla İndirilenler klasörünüze kaydedilir. client_secret.json gibi daha kolay bir adla kısaltmanızı (örnek uygulamada kullanılan ad) ve ardından bu codelab'de örnek uygulamayı oluşturacağınız dizine/klasöre kaydetmenizi öneririz.

Özet

Kimlik bilgilerini edindikten sonra, OAuth istemci kimliğinin amacının, kullanıcılarınızın Google Drive'daki verilerine erişmek için uygulamanıza izin vermesi olduğunu unutmadan uygulamanızdan Drive API'ye erişmeye hazırsınız.

NOTE: Proje oluşturma, API'leri etkinleştirme ve kimlik bilgilerini manuel olarak (yani yukarıdaki "sihirbaz" kullanılmadan) edinme hakkında daha fazla bilgi edinmek için bu codelab'in sonunda ek kaynaklara göz atabilirsiniz.

8. Drive dosya ve klasörleri uygulamanızı görüntüleme

İster yerel geliştirme ortamınızda ister Cloud Shell'de client_id.json kimlik bilgileri dosyanızın bulunduğu dizinde drive_list.py adlı yeni bir Python dosyası oluşturun ve aşağıdaki kod satırlarını ekleyin:

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])

Uygulama yapısı

Bu uygulamanın üç ana bölümü vardır:

  1. Kitaplık işlevlerini kullanmak için Python içe aktarmaları
  2. Uygulama kimlik bilgilerini edinme
  3. Kullanıcının Google Drive'ındaki dosya ve klasör adlarını ve MIME türlerini getirme ve görüntüleme

NOTE: Bu Codelab'in sonunda, daha ayrıntılı inceleme için kodun daha derinlemesine incelenmesi ve satır satır açıklanması sağlanır.

Uygulamayı çalıştırma

Bu dosyayı drive_list.py gibi bir adla kaydedin. Komut dosyasını ilk kez çalıştırdığınızda, kullanıcının Drive'daki (sizin) dosyalarına erişme yetkisi olmaz. Yürütme duraklatıldığında çıkış şu şekilde görünür:

$ python3 ./drive_list.py
/usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Your browser has been opened to visit:
  https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

Yerel geliştirme ortamından

Bir tarayıcı penceresi açılıp OAuth2 izinleri iletişim kutusu gösterildiğinde komut satırı komut dosyası duraklatılır:

c2648f37bcb7a0c1.png

Uygulama, kodun istediği izinleri (SCOPES değişkeni aracılığıyla) kullanıcıdan bu noktada ister. Bu durumda, kullanıcının Google Drive'ındaki dosya meta verilerini görüntüleme özelliği söz konusudur. Evet, kodunuzda bu izin kapsamları URI olarak görünür ancak OAuth2 akışı iletişim kutusu penceresinde yerel ayarınız tarafından belirtilen dile çevrilir. Kullanıcı, istenen izinler için açıkça yetki vermelidir. Aksi takdirde kodun "akışı çalıştırma" bölümü istisna oluşturur ve komut dosyası daha fazla ilerlemez.

NOTE: Bazı kullanıcıların birden fazla tarayıcısı vardır ve yetkilendirme isteği, tercih edilmeyen bir tarayıcıda açılıyor olabilir. Bu durumda, kullanmak istemediğiniz tarayıcı penceresindeki URL'nin tamamını kopyalayıp kullanmak istediğiniz bir tarayıcının adres çubuğuna yapıştırın.

Cloud Shell'den

Dikkatinizi vermeden programı Cloud Shell'de çalıştırdıysanız tarayıcı penceresi açılmadığı için takılıp kalırsınız. En alttaki teşhis mesajının sizin için olduğunu fark edin. Bu mesaj:

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

Bu şekilde çalıştırdığınızda bunun yerine aşağıdaki çıkışı alırsınız:

$ python3 drive_list.py --noauth_local_webserver
/usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Go to the following link in your browser:

  https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

Enter verification code:

Talimatları uygulayıp bu URL ile farklı bir tarayıcı sekmesine gittiğinizde, yerel geliştirme ortamları için yukarıda açıklanan deneyime neredeyse tamamen benzer bir deneyim elde edersiniz. Temel fark, Cloud Shell'e girilecek doğrulama kodunun yer aldığı bir ekranın daha gösterildiği son aşamada ortaya çıkar:

f6da2c335fb7c6a.png

Bu kodu kesip terminal penceresine yapıştırın.

Özet

Kullanıcı izin ver'i tıkladıktan ve/veya doğrulama kodu isteme yapıştırıldıktan sonra uygulama (çalışmaya devam eder). Bu nedenle, Drive dosyaları/klasörleri ve bunların MIME türlerinden oluşan bir çıktı görmeyi bekleyebilirsiniz. Test hesaplarımızdan birinde yer alan örneği aşağıda görebilirsiniz:

$ python3 ./drive_list.py
Travel expenses application/vnd.google-apps.spreadsheet
Gmail Add-ons codelab application/vnd.google-apps.script
Google Workspace Developer Intro application/vnd.google-apps.presentation
Baseball Sheets application/vnd.google-apps.folder
My Resume application/vnd.google-apps.document
  . . .

Birbirini izleyen yürütmelerde, yetkilendirme kitaplıkları tarafından önbelleğe alındığı için artık yetkilendirme istemiyle karşılaşmadığınızı ve doğrudan çıkışa gittiğinizi fark edeceksiniz. Dokümanlarınızı ilk kez bir terminalde görmek heyecan verici değil mi? Biz de öyle düşünüyoruz.

9. Sonuç

Artık Drive API'nin diğer özellikleri hakkında daha fazla bilgi edinmeye veya diğer Google Workspace (Gmail, Google Dokümanlar, E-Tablolar, Slaytlar, Takvim) ve diğer Google API'lerini (Haritalar, Analytics, YouTube vb.) keşfetmeye hazırsınız. Sonuna kadar geldiğiniz için tebrikler.

Bu codelab'de gösterilen kodlar, github.com/googlecodelabs/gsuite-apis-intro adresindeki ilgili GitHub kod deposunda da bulunabilir. (Bu Codelab'i, kod deposuyla senkronize tutmayı amaçlıyoruz.) Devam etmeye hazır mısınız? Bu codelab'de ele alınan materyalleri daha ayrıntılı bir şekilde incelemenize veya zihninizi zorlayıp Google teknolojilerine programatik olarak erişmenin diğer yollarını keşfetmenize yardımcı olacak çeşitli kaynaklara aşağıdan erişebilirsiniz.

Daha önce de belirttiğimiz gibi, düzenli bir Python geliştiricisi değilseniz bu codelab örneğini en sevdiğiniz geliştirme dilinde yeniden yapmaya davet ediyoruz. Desteklenen diller için istemci kitaplıklarını burada bulabilirsiniz.

Ek Çalışma

Drive API ile ilgili biraz deneyim kazandığınıza göre becerilerinizi daha da geliştirmek için aşağıdaki alıştırmaları yapmanızı öneririz:

  1. ZIP dosyaları: Birden fazla ZIP arşivini Drive'a yedekleyen, bunları anında açan ve her ZIP dosya adının, dosyaların içine yerleştirildiği klasörün adı olduğu bir uygulama yazın. EKSTRA KREDİ: Drive klasörlerinin diğer klasörlere yerleştirildiği durumlarda, diğer ZIP dosyaları içindeki yinelemeli ZIP arşivlerini destekleyin. Pes ederseniz bu Node.js örnek uygulamasına bakın.
  2. Fotoğraf albümleri: Birden fazla resmi Google Drive'a yükleyip zaman damgası ve coğrafi konuma göre ayrı klasörler halinde düzenleyen bir fotoğraf albümü oluşturma aracının başlangıcını yaz. EKSTRA KREDİ: Açık kaynaklı bir görüntü işleme kitaplığı bulun ve her klasördeki tüm fotoğrafları birleştirerek yaşadığınız etkinlikleri (ör. gezi, akşam yemeği) temsil edin.
  3. GCP'yi keşfedin: Google Workspace ile Google Cloud Platform'u (GCP) birbirine bağlayan bir uygulama yazın. Google Drive'daki resim dosyalarını Google Cloud Storage'a (GCS) yedekleyen bir araç yazın. GCS, "bulutta dosya depolama" çözümlerinden biridir. GCS'nin gelişmiş istemci kitaplıkları sayesinde Drive'dan daha kolay kullanılacağını biliyor muydunuz?
  4. Analiz etme ve kaydetme: Google Cloud Vision API'ye ileterek ve API'nin bu resimlerde gördüğü en iyi (3, 5, 10) "etiketleri" alarak yedeklenen her resmi analiz ederek çözümünüzü 3. adıma taşıyın. Her görüntü için, Cloud Vision'dan alınan analizi ve GCS'deki yedeklenen konumunu içeren bir Google E-Tablosu satırı yazın. Pes ederseniz bu Python codelab'ine göz atın.

10. Ek Kaynaklar

Belgeler

Haberler ve güncellemeler

Diğer Codelab'ler

Giriş

Orta düzey

Gelişmiş

Referans uygulamalar

11. *Uygulama ayrıntılı açıklaması

Bu isteğe bağlı bölüm, oturum sona erdikten sonra ortaya çıkmış olabilecek eksiklikleri gidermek veya daha fazla araştırma yapmak için kendi kendine çalışma amacıyla kullanılmalıdır.

Kitaplık işlevlerini kullanmak için Python içe aktarmaları

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
  • İlk import ifadesi, bu kodun Python 2'de çalışmasını sağlar. Yalnızca Python 3 kullanıyorsanız bu ifade tamamen kaldırılabilir.
  • Python stil kurallarından biri, standart kitaplık ve üçüncü taraf modülü içe aktarmalarını ayırmaktır. Boş satır bu amaçla kullanılır.
  • Sonraki üç içe aktarma işlemi, Google API'leri istemci kitaplığından gerekli sınıfları ve işlevleri getirir. Bu uygulamayı yazabilmemiz için bunların tümü gereklidir. Kısaca, bu sınıflar ve işlevler şunları yapar:
  • googleapiclient, Google API'lerine bağlanmaya odaklanır.
  • httplib2, uygulamanın kullanması için bir HTTP istemcisi sağlar
  • oauth2client, OAuth2 kimlik bilgilerini yönetmemize yardımcı olur.

Yetkilendirme ve uygulama kimlik bilgilerini edinme

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
  • Uygulama SCOPES, bir uygulamanın çalıştırılırken kullanıcıdan isteyeceği izinlerdir. Uygulamalar, kullanıcı verilerinin güvenliğini sağlamak için izin verilmeden çalışamaz.
  • En iyi uygulama, uygulamanızın çalışması için gereken en kısıtlayıcı izinleri kullanmaktır. Neden?
  • Bir uygulamayı yüklediğinizde veya çalıştırdığınızda çok sayıda izin istemesi can sıkıcı değil mi? Bil bakalım ne oldu? Artık madalyonun diğer tarafındasınız ve kullanıcılarınızdan tüm bu izinleri istiyorsunuz. Daha kısıtlayıcı kapsamlar kullanmak, daha az erişim istediğiniz için kullanıcıların uygulamanızı yükleme konusunda kendilerini daha iyi hissetmelerini sağlar.
  • Kapsamların çoğu uzun URL'ler gibi görünür ve Drive meta verileri kapsamı da bu duruma dahildir.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
  • Uygulamaların Google sunucularıyla iletişim kurması için jeton gerekir. Google'dan gelen geçerli jetonlar, jeton depolama dosyasına (storage.json) kaydedilir. Bu jetonları kaydetmezseniz uygulamanızı her çalıştırdığınızda yeniden yetkilendirmeniz gerekir.
store = file.Storage('storage.json')
  • Bu uygulama, öncelikle depolama alanında geçerli kimlik bilgilerinin olup olmadığını kontrol eder (if koşullu ifadesine bakın).
creds = store.get()
if not creds or creds.invalid:
  • Kimlik bilgileriniz yoksa veya süresi dolmuşsa, indirdiğiniz client_id.json dosyasındaki OAuth istemci kimliğiniz ve gizli anahtarınızdan [oauth2client.client.flow_from_clientsecrets() aracılığıyla] yeni bir yetkilendirme akışı oluşturulmalıdır.
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
  • Uygulamanızda bir akış olduğunda, yukarıda açıklanan ve gösterilen [oauth2client.tools.run_flow()] aracılığıyla OAuth2 izin ekranını kullanıcıya sunmak için bu akışın yürütülmesi gerekir.
    creds = tools.run_flow(flow, store)
  • Kullanıcılar İzin ver'i tıklayarak uygulamanızın Google Drive dosya meta verilerine erişmesine izin verir ve Google sunucuları, API'ye erişmek için jeton döndürür. Bunlar creds olarak döndürülür ve storage.json dosyasına önbelleğe alınır.
  • Bu noktada uygulamanız artık API çağrıları yapmak için geçerli kimlik bilgilerine sahip. googleapiclient.discovery.build() çağrısı, kullandığınız API için bir hizmet uç noktası oluşturur.
  • build() kullanmak için API adını ('drive') ve istenen sürümü (şu anda 'v3') iletin.
  • Son parametre, şifrelenmiş API çağrıları için kullanılacak bir HTTP istemcisidir.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

İlk 100 Drive dosyasını/klasörünü ve MIME türünü getirme ve görüntüleme

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])
  • Bir sonraki kod satırı, isteği oluşturmak için Drive API'nin files() koleksiyonundaki list() yöntemini çağırır. Bu istek, execute() ile hemen çağrılır. Kullanıcının Google Drive'ındaki 100 dosya ve klasör adını (daha az dosyanız varsa daha az) almak için 'files' anahtarını istediğimiz bir Python dict döndürülür.
  • Neden 100? Bu, DRIVE.files().list()'daki varsayılan ayardır. Bu sayıyı değiştirmek (ör. yalnızca 10 dosya veya 1.000 dosya) istiyorsanız isteğinize pageSize parametresini ekleyin: DRIVE.files().list(pageSize=10). Diğer seçenekler için dokümanları inceleyin.
  • Komut dosyasının son bölümü, her dosyayı döngüye alır ve adlarını ile dosya MIME türlerini gösterir.

Google REST API'yi kullanan ilk uygulamanızı yazdınız. Tebrikler! İçe aktarma ve yetkilendirme kodu dışında bu komut dosyası aslında yalnızca birkaç satır koddan (yukarıda gördüğünüz) oluşur. Çoğu Google API'si benzer şekilde çalışır ve yalnızca kullanmak istediğiniz her API için hizmet uç noktaları oluşturmanız gerekir.

Bir uygulamada birden fazla Google API'si kullanma

Evet, aynı uygulamada birden fazla API kullanabilirsiniz. Aynı HTTP istemcisini yeniden kullanan ve üç Google API'si için hizmet uç noktaları oluşturan bir uygulama için Python kod snippet'i (evet, 3 farklı SCOPES ile birlikte) aşağıda verilmiştir:

SCOPES = (
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/spreadsheets.readonly',
    'https://www.googleapis.com/auth/presentations',
)

    . . .

HTTP   = creds.authorize(Http())
DRIVE  = discovery.build('drive',  'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)

Bu kodun, e-tablo verilerine (Sheets API) dayalı olarak birden fazla slayt destesi (Slides API) oluşturan ve oluşturulan her deste için kopyalanan (Drive API) bir slayt şablonu kullanan bir uygulamanın parçası olabileceğini düşünüyoruz. Böyle bir uygulama olmasa da Google Workspace ekibinin yapı taşı olarak oluşturduğu iki mevcut örneği kullanarak benzer bir uygulama oluşturabilirsiniz:

  • Slaytlardaki metin ve resimleri değiştirme ( blog yayını ve video): Slayt şablonu destesini kopyalamak için Drive API'yi, metin ve resim yer tutucularını değiştirmek için ise Slaytlar API'sini kullanır.
  • E-tablo verilerinden slayt oluşturma ( blog yayını ve video): E-tablodaki verileri (Sheets API) okur ve bu verilere dayalı olarak slaytlar (Slides API) oluşturur.

Yarışma konusu: Bu uygulamayı geliştirin.

12. *Gelişmiş geliştirici konsolu kullanımı

Bu isteğe bağlı bölümde, codelab'deki gibi sihirbazı kullanmadan devconsole'da nasıl proje oluşturacağınız, API'leri nasıl etkinleştireceğiniz ve kimlik bilgilerini nasıl alacağınız açıklanmaktadır. Bu yöntem, manuel olarak yapmaya alışkın olan veya nasıl yapılacağını öğrenmek isteyen orta seviye kullanıcılar içindir.

Cloud Console'da projeyi belirtin

Google API'lerini kullanarak bir uygulama yazdığınız her seferde bir projenizin olması gerekir. Mevcut bir projeyi yeniden kullanabilir veya yeni bir proje oluşturabilirsiniz. Bu işlem Cloud Console'da yapılır. Bazı codelab'ler, gerekli adımların çoğunu atlayarak hızlı bir şekilde başlamanızı sağlayan sihirli bağlantılar (ör. kurulum sihirbazı gibi) sunar. Ancak bu özelliklerin tümü desteklenmez. Bu nedenle, projelerin nasıl oluşturulacağına dair genel talimatlar verilmektedir.

Google kimlik bilgilerinizle giriş yaptığınız ve konsolun üst kısmında bir proje açılır menüsü gördüğünüz sürece Cloud Console'daki çoğu ekrandan proje oluşturabilirsiniz. Buradaki çoğu ekran görüntüsünün API Yöneticisi'nden (diğer adıyla Developers Console) alındığını unutmayın. API Yöneticisi'ne sol gezinme çubuğunda "API yöneticisi"ni tıklayarak veya tarayıcınızı doğrudan console.developers.google.com adresine yönlendirerek kolayca ulaşabilirsiniz.

  1. Henüz projeniz yoksa şuraya yönlendirilebilirsiniz:
  2. Kontrol paneli sayfası: Gwkk2zcSPOHlRzCGsmBDqfdsEMopOgJyJzh6TunpVFOP3R7bN0-iGt81mNueGxoAei6wCqgQBENsamw3v4ozZJtQgKva6v_90dYJ-rvQjUn9U89avlG1tepDYT9HHjZmYixLD0hACQ
  3. Kitaplık sayfası: NqfejNuo6fJfiTXERiCNAFTnno1JGgudf7M2zVyM9DzXP4E6ruoVxHvFQOPW-HFL5SZvm-WohzPTf7njBS9VCwuu4XnwhQ7CB83tNkH0jsYEx31hO6UMBVHPJS1BMjidg5kh-c7MEw
  4. veya tamamen boş bir sayfa: LcJ-wgOFlYa9uZm46fwUkfFTkXIcbhuk607KDaCz8_8NM09RHblz6T5JoWhH7uwSE2q6hKW9XnlutzUqd8yvRAEXFzQjqNNTuscj19yKGkMjbPixeUB8-F1y4Tz7eCpeOEzBUw70yw Bu üçüncü durumla karşılaşırsanız Kitaplık sayfasına yönlendirilmek için tarayıcıyı yenilemeniz yeterlidir.
  5. Kontrol paneli veya Kitaplık sayfalarında olmanız fark etmeksizin sayfanın üst kısmındaki proje seçiciyi tıklayın: 3f5REVgveKDcJ8wG2C9gduFBftJb6RNtdQQJ79vwFmQCMU8_t_vxja8jPGIK-ZrpjSqGkRkY4k02xth-7FWNPj4GZUdcBmKQe97LporGaLvwIFzzR5wtH5mEEoA1a74_fnrh9YAqqg
  6. Ardından, seçici iletişim kutusu gösterilir. Yeni bir proje oluşturmak için sağ taraftaki "+" simgesini tıklayın: jNzs1bp1eWkpJT3S3AGTm9ejYT2mB3rEd1QajOhO0AR3YxcwaCcF4WlMzdmgOFtlIPQfGEMUysM6m7r89_Fc0Dyy--mjPhCEKdLRZjaozLOvoZOzKtIxdMoWFHCVc2N1K-2HES_k4Q
  7. "+"yı tıkladıktan sonra Yeni Proje sayfası görünür. Tüm tüketici hesapları varsayılan olarak 12 proje alır. İlk projenizi oluşturmadan önce Google API'leri Hizmet Şartları'nı kabul etmeniz gerekir: bCB0sQ6k5nfrajlhc-S61MVzyYYBqu6XVNKeRDzXNvKZUNlSeVJSLbkP8sPNi5A-5hWIFzhsQ5R_ER9BBb2bE_B02c1neY2iO5SSe6XDFldppsXbkWm63-0l3ugtSDQS-TeM1d773w

Bu işlemi yaptıktan sonra, gelecekteki projeleri oluştururken e-posta isteği ve Hizmet Şartları soruları gösterilmez:

Pj31ZKoAAnw_JiSz8io7e4yC2Xh3voETusvePf0DS64IMB4aVy9CtANg2r-2NgPxLjbqcfd-Vs33ZNdN7Diz7sZo3j-MKS83SuNXlhGT8ivdhpIvizP1dsYeK1MBQ4HlDZA5aQkIhg 5. Geçmişte en az bir proje oluşturduysanız giriş yaptıktan sonra üzerinde çalıştığınız son projenin kontrol paneline yönlendirilirsiniz. Buradan, Bir proje seçin > +'yı seçerek yeni bir proje oluşturun. 6. Yeni projeniz oluşturulduktan sonra Kontrol paneli sayfasına geri dönersiniz: ana4q1H1Q8KNTBEVb62Cc6NVA8VZbxb6BLgf4-bLqLV-p7n8UWv3WW3FN-49CE0x1kARav3pelxOBwNuUDELmitMRFhUNXuaw9-CH9DO3Lek_ifnaI3ZsxSy67Z1UsBO95SPFqlf8Q

Artık projeyi başarıyla oluşturdunuz ve projenizde kullanmak istediğiniz API'leri seçerek devam etmeye hazırsınız.

Google API'lerini etkinleştirme

Google API'lerini kullanmaya başlamadan önce etkinleştirmeniz gerekir. Aşağıdaki örnekte, Cloud Vision API'yi etkinleştirmek için yapmanız gerekenler gösterilmektedir. Bu codelab'de bir veya daha fazla API kullanabilirsiniz. Bu API'leri kullanmadan önce etkinleştirmek için benzer adımları uygulamanız gerekir.

Cloud Shell'den

Cloud Shell'i kullanarak aşağıdaki komutla API'yi etkinleştirebilirsiniz:

gcloud services enable vision.googleapis.com

Cloud Console'dan

Vision API'yi API Yöneticisi'nden de etkinleştirebilirsiniz. Cloud Console'dan API Yöneticisi'ne gidip "Kitaplık"ı seçin.

mg03by3QV6kco0rVVV_8IA6VobAoMG4Yoyl-PofNM0dHK8IcoDmpoLUwWeiKFFjpxHWlS1td5-0n7kNkfqHVhSsTSW_hUMvRu3D72g3LCFb7u4v4bla_Z4XyonTVK8PpigMLJcE01g

Arama çubuğuna "vision" yazmaya başlayın ve ekranda göründüğünde Vision API'yi seçin. Yazarken şöyle bir şey görebilirsiniz:

B6fWWsVhymufgQx6oGIq4sgukK6JQ1VoguVOrSNf_anQb6Cv6RTLtsjx5Qdeu3-uO8-8PyqwZLYdDDjYW5o56R47cnsd_88RKTMqNkpFeDESW2hmBM_7FK2UAMz1_216yXERYSp_JA

Aşağıdaki iletişim kutusunu almak için Cloud Vision API'yi seçin, ardından "Etkinleştir" düğmesini tıklayın:

D-MONPLi0UWH6Dp607Dod6JF-LJQZIiUQEPQNKM4Y0mSt09KfipbeeXRAE6cokArBYTfL9VQoONc4L0jlnsUYLsNytQIPfSKr9lCDrXmrrx-1w64LeWWa-byDxcyYWZdCI0mAcVzBw

Maliyet

Birçok Google API'si ücretsiz olarak kullanılabilirken GCP (ürünler ve API'ler) kullanımı ücretsiz değildir. Vision API'yi etkinleştirirken (yukarıda açıklandığı gibi) etkin bir faturalandırma hesabı istenebilir. Kullanıcı, özelliği etkinleştirmeden önce Vision API'nin fiyatlandırma bilgilerine başvurmalıdır. Belirli Google Cloud Platform (GCP) ürünlerinde, faturalandırma için aşmanız gereken bir "Daima Ücretsiz" katmanı bulunduğunu unutmayın. Bu codelab'in amaçları doğrultusunda, Vision API'ye yapılan her çağrı ücretsiz katman kapsamında değerlendirilir ve her ay bu katmanın sınırları içinde kaldığınız sürece herhangi bir ücret alınmaz.

Bazı Google API'leri (ör. Google Workspace'in kullanımı aylık abonelikle karşılanır. Bu nedenle, örneğin Gmail, Google Drive, Takvim, Dokümanlar, E-Tablolar ve Slaytlar API'lerinin kullanımı için doğrudan faturalandırma yapılmaz. Farklı Google ürünleri için farklı şekilde faturalandırma yapılır. Bu nedenle, ilgili bilgileri API'nizin belgelerinde bulabilirsiniz.

Özet

Bu codelab'de yalnızca Google Drive API'yi etkinleştirmeniz gerekir. Bu nedenle, yukarıdaki talimatları uygulayın ve "Drive"ı arayın. Etkinleştirildikten sonra devam edin.

API isteklerini yetkilendirme (kullanıcı yetkilendirmesi)

Yetkilendirmeye giriş (ve biraz kimlik doğrulama)

API'lere istek gönderebilmek için uygulamanızın uygun yetkilendirmeye sahip olması gerekir. Benzer bir kelime olan kimlik doğrulama, giriş kimlik bilgilerini ifade eder. Google Hesabınıza giriş yaparken kullanıcı adı ve şifreyle kimliğinizi doğrularsınız. Kimlik doğrulama tamamlandıktan sonraki adım, veriye erişmek için yetkili olup olmadığınızı (daha doğrusu kodunuzun yetkili olup olmadığını) belirlemektir. Bu veriler, Cloud Storage'daki blob dosyaları veya Google Drive'daki kullanıcının kişisel dosyaları gibi veriler olabilir.

Google API'leri çeşitli yetkilendirme türlerini destekler ancak bu codelab'deki örnek uygulama son kullanıcılara ait verilere eriştiği için Google Workspace API kullanıcıları için en yaygın olanı kullanıcı yetkilendirmesidir. Bu tür son kullanıcılar, uygulamanızın verilerine erişmesine izin vermelidir. Bu nedenle, kodunuzun kullanıcı hesabı OAuth2 kimlik bilgilerini alması gerekir.

Kullanıcı yetkilendirmesi için OAuth2 kimlik bilgilerini almak üzere API yöneticisine geri dönün ve sol gezinme çubuğunda "Kimlik bilgileri" sekmesini seçin:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

İlgili sayfaya ulaştığınızda tüm kimlik bilgilerinizi üç ayrı bölümde görürsünüz:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

Birincisi API anahtarları, ikincisi OAuth 2.0 istemci kimlikleri ve sonuncusu OAuth2 hizmet hesapları içindir. Ortadaki seçeneği kullanıyoruz.

Kimlik bilgisi oluşturma

Kimlik Bilgileri sayfasında, üst kısımdaki + Kimlik Bilgileri Oluştur düğmesini tıklayın. Bu işlem, "OAuth istemci kimliği:" seçeneğini belirleyeceğiniz bir iletişim kutusu açar.

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

Sonraki ekranda 2 işlem yapabilirsiniz: Uygulamanızın yetkilendirme "kullanıcı rızası ekranını" yapılandırma ve uygulama türünü seçme:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

Kullanıcı rızası ekranı ayarlamadıysanız konsolda uyarıyı görürsünüz ve şimdi ayarlamanız gerekir. (Kullanıcı rızası ekranınız zaten ayarlandıysa sonraki adımları atlayın.)

"Kullanıcı rızası ekranını yapılandır"ı tıklayın. Burada "Harici" bir uygulama seçersiniz (veya Google Workspace müşterisiyseniz "Dahili"):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

Bu alıştırma kapsamında, codelab örneğinizi yayınlamadığınız için hangisini seçtiğinizin önemli olmadığını unutmayın. Çoğu kişi daha karmaşık bir ekrana yönlendirilmek için "Harici"yi seçer ancak aslında yalnızca en üstteki "Uygulama adı" alanını doldurmanız gerekir:

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

Şu anda ihtiyacınız olan tek şey bir uygulama adı. Bu nedenle, yaptığınız codelab'i yansıtan bir ad seçin ve Kaydet'i tıklayın.

OAuth istemci kimliği oluşturma (kullanıcı hesabı yetkilendirme)

Şimdi OAuth2 istemci kimliği oluşturmak için Kimlik Bilgileri sekmesine geri dönün. Burada oluşturabileceğiniz çeşitli OAuth istemci kimliklerini görürsünüz:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

Diğer kategorisinde bir komut satırı aracı geliştiriyoruz. Bu nedenle, bu seçeneği belirleyip Oluştur düğmesini tıklayın. Oluşturduğunuz uygulamayı yansıtan bir istemci kimliği adı seçin veya genellikle "Diğer istemci N" olan varsayılan adı kullanın.

Kimlik bilgilerinizi kaydetme

  1. Yeni kimlik bilgilerini içeren bir iletişim kutusu gösterilir. Kapatmak için Tamam'ı tıklayın.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. Kimlik Bilgileri sayfasına geri dönün, "OAuth2 İstemci Kimlikleri" bölümüne gidin ve yeni oluşturduğunuz istemci kimliğinizin en sağ alt kısmındaki indirme simgesini aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ tıklayın. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. Bu işlem, client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json adlı bir dosyayı kaydetmek için bir iletişim kutusu açar. Bu dosya, büyük olasılıkla İndirilenler klasörünüze kaydedilir. client_secret.json gibi daha kolay bir adla kısaltmanızı (örnek uygulamada kullanılan ad) ve ardından bu codelab'de örnek uygulamayı oluşturacağınız dizine/klasöre kaydetmenizi öneririz.