Onayları yönetme

Bu belgede, Google Drive API'sinde onayların nasıl yönetileceği açıklanmaktadır.

Kullanıcılar, Google Drive'daki dokümanları resmi onay sürecine gönderebilir. Bu süreçten, sözleşme incelemelerini veya resmi belgeleri yayınlanmadan önce onaylatmak için yararlanabilirsiniz. Onay, hem incelemenin (ör. Devam Ediyor, Onaylandı veya Reddedildi) hem de incelemeye katılan kişilerin durumunu takip eder. Onaylar, içerikleri doğrulamak ve inceleme yapan kullanıcıların kaydını tutmak için mükemmel bir yöntemdir.

Drive'da içerik onayları oluşturup yönetebilirsiniz. Google Drive API, dosya onaylarıyla çalışmak için approvals kaynağını sağlar. approvals kaynağının yöntemleri; Drive, Google Dokümanlar ve diğer Google Workspace düzenleyicilerindeki öğelerde çalışır. İncelemeciler, dokümanları doğrudan onaylayabilir, reddedebilir veya bu dokümanlara geri bildirim ekleyebilir.

Başlamadan önce

  1. Dosyanızda canStartApproval özelliği bulunmalıdır . Dosya özelliklerini kontrol etmek için files kaynağında fileId yol parametresiyle get yöntemini çağırın ve fields parametresinde canStartApproval özellik alanını kullanın. Daha fazla bilgi için Dosya özelliklerini anlama başlıklı makaleyi inceleyin.

    Boole canStartApproval özelliği şu durumlarda false olur:

    • Yönetici ayarları nedeniyle özelliğe erişim kısıtlanmıştır.
    • Google Workspace sürümünüz uygun değil.
    • Dosya, alanınızın dışındaki bir kullanıcıya ait.
    • Kullanıcının dosya üzerinde role=writer izni yok.
  2. Hedef dosyayı incelemecilerle manuel olarak paylaştığınızdan emin olun. Drive bunu otomatik olarak yapmaz. İncelemecinin dosya erişimi yoksa onay isteği başarılı olur ancak incelemeci bildirim almaz veya dosyayı görüntüleyemez.

Kavramlar

Aşağıdaki temel kavramlar, onayların temelini oluşturur.

Onay durumu

Doküman onayı istediğinizde onay süreci, her incelemecinin içeriğin aynı sürümünü onaylamasını sağlar. İncelemeci isteği onayladıktan sonra ve istek tamamlanmadan önce dosya düzenlenirse incelemecinin onayları sıfırlanır ve incelemecilerin yeni sürümü onaylaması gerekir. İçerik nihai onaydan sonra düzenlenirse dokümanda, mevcut sürümün onaylı sürümden farklı olduğunu belirten bir banner görünür.

approvals kaynağı, kaynak istendiğinde onayın durumunu ayrıntılı olarak açıklayan bir Status nesnesi içerir. Ayrıca, belirli yorumcuların yaptığı onaylara verilen yanıtları ayrıntılı olarak açıklayan ReviewerResponse nesnesini de içerir. Her yorumcunun yanıtı Response nesnesiyle gösterilir.

Onay sürecindeki her işlem, başlatıcıya (onay isteyen kullanıcı) ve tüm inceleme uzmanlarına gönderilen e-posta bildirimleri oluşturur. Ayrıca onay etkinliği günlüğüne de eklenir.

Tüm incelemecilerin onayı onaylaması gerekir. Onayı reddeden her incelemeci, tamamlanma durumunu DECLINED olarak ayarlar.

Onay tamamlandıktan sonra (durum APPROVED, CANCELLED veya DECLINED olduğunda) tamamlanmış durumda kalır ve başlatıcı ya da inceleme uzmanları tarafından kullanılamaz. Durumu IN_PROGRESS olan bir dosyada mevcut onay olmadığı sürece tamamlanmış bir onaya yorum ekleyebilirsiniz.

Onayların yaşam döngüsü

Onayların yaşam döngüsü.
Şekil 1. Onayların yaşam döngüsü.

Bir onay, yaşam döngüsü boyunca çeşitli durumlardan geçer. Şekil 1'de onay yaşam döngüsünün üst düzey adımları gösterilmektedir:

  1. Onay sürecini başlatın. Onay isteğini başlatmak için start numaralı telefonu arayın. status, IN_PROGRESS olarak ayarlanır.

  2. Onay bekleniyor. Onay beklenirken (status, IN_PROGRESS olarak ayarlanmışken) hem başlatıcı hem de inceleyenler onay isteğiyle etkileşimde bulunabilir. İnceleme isteğine comment ekleyebilir, incelemeyi başlatan kişi reassign incelemeciler ekleyebilir ve bir veya daha fazla incelemeci isteği approve.

  3. Onay tamamlanmış durumdadır. Bir onay, tüm incelemeciler isteği onayladığında, isteği başlatan kişi isteği cancel seçtiğinde veya herhangi bir incelemeci isteği decline seçtiğinde tamamlandı durumuna (status, APPROVED, CANCELLED veya DECLINED olarak ayarlanır) geçer.

Alanlar parametresini kullanma

Yanıt içinde döndürülecek alanları belirtmek istiyorsanız fields sistem parametresini approvals kaynağının herhangi bir yöntemiyle ayarlayabilirsiniz. fields parametresini atlarsanız sunucu, yönteme özgü varsayılan bir alan kümesi döndürür. Farklı alanlar döndürmek için Belirli alanları döndürme başlıklı makaleye bakın.

Onay başlatma ve yönetme

approvals kaynağı, Drive API'yi kullanarak onayları başlatmak ve yönetmek için kullanılabilir. Bu yöntemler, dosya meta verilerinin yazılmasına izin veren mevcut OAuth 2.0 Drive API kapsamlarından herhangi biriyle çalışır. Daha fazla bilgi için Google Drive API kapsamlarını seçme başlıklı makaleyi inceleyin.

Onay başlatma

Bir dosyada yeni bir onay başlatmak için approvals kaynağında start yöntemini kullanın ve fileId yol parametresini ekleyin.

İstek metni, dosyayı incelemekle görevlendirilen inceleme uzmanlarının e-posta adreslerini içeren bir diziden oluşan zorunlu reviewerEmails alanını içerir. Her incelemeci e-posta adresi bir Google Hesabı ile ilişkilendirilmelidir. Aksi takdirde istek başarısız olur. Ayrıca üç isteğe bağlı alan sunulur:

  • dueTime: RFC 3339 biçiminde onay için son tarih.
  • lockFile: Onay başlatıldığında dosyanın kilitlenip kilitlenmeyeceğini belirten bir Boole değeri. Bu işlem, kullanıcıların onay süreci sırasında dosyayı değiştirmesini engeller. role=writer iznine sahip herhangi bir kullanıcı bu kilidi kaldırabilir.
  • message: İnceleme uzmanlarına gönderilen özel mesaj.

Yanıt gövdesinde approvals kaynağının bir örneği bulunur ve bu örnek, onayı isteyen kullanıcı olan initiator alanını içerir. Status onayı IN_PROGRESS olarak ayarlanır.

Status değeri IN_PROGRESS olan mevcut bir onay varsa start yöntemi başarısız olur. Yalnızca dosyada mevcut bir onay yoksa veya mevcut onay tamamlanmış durumdaysa (durum APPROVED, CANCELLED veya DECLINED) onay başlatabilirsiniz.

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals:start' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "reviewerEmails": [
     "reviewer1@example.com",
     "reviewer2@example.com"
    ],
    "dueTime": "2026-04-01T15:01:23Z",
    "lockFile": true,
    "message": "Please review this file for approval."
 }'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Onayla ilgili yorum yapma

Bir onayı yorumlamak için approvals kaynağında comment yöntemini kullanın ve fileId ile approvalId yol parametrelerini ekleyin.

İstek gövdesi, onaya eklemek istediğiniz yorumu içeren bir dize olan zorunlu bir message alanından oluşur.

Yanıt metni, approvals kaynağının bir örneğini içerir. İleti, onay başlatıcıya ve inceleyenlere bildirim olarak gönderilir ve onay etkinliği günlüğüne de eklenir.

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:comment' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The required comment on the approval."
 }'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • APPROVAL_ID: Onayın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Onayda inceleme ekibini yeniden atama

Bir onaydaki incelemecileri yeniden atamak için approvals kaynağında reassign yöntemini kullanın ve fileId ile approvalId yol parametrelerini ekleyin.

reassign yöntemi, onay başlatıcının (veya role=writer iznine sahip bir kullanıcının) approvals kaynağının ReviewerResponse nesnesine inceleyenler eklemesine veya inceleyenleri değiştirmesine olanak tanır. role=reader iznine sahip bir kullanıcı yalnızca kendisine atanmış bir onayı yeniden atayabilir. Bu sayede kullanıcı, isteği daha yetkin bir incelemeciye yeniden atayabilir.

İncelemeciler yalnızca Status IN_PROGRESS durumundayken ve yeniden atanan incelemecinin response alanı NO_RESPONSE olarak ayarlanmışken yeniden atanabilir.

Onaylarda incelemeci kaldıramayacağınızı unutmayın. Bir incelemeciyi kaldırmanız gerekiyorsa onayı iptal edip yeni bir onay başlatmanız gerekir.

İstek gövdesi, isteğe bağlı addReviewers ve replaceReviewers alanlarından oluşur. Her alan, AddReviewer ve ReplaceReviewer için tekrarlanan bir nesneye sahiptir. Bu nesnelerin her biri, eklenecek tek bir incelemeci veya değiştirilecek bir çift incelemeci içerir. Yeni inceleme uzmanlarına göndermek istediğiniz yorumu içeren isteğe bağlı message alanını da ekleyebilirsiniz.

Yanıt metni, approvals kaynağının bir örneğini içerir. Mesaj, yeni inceleme uzmanlarına bildirim olarak gönderilir ve onay etkinliği günlüğüne de eklenir.

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:reassign' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "addReviewers": [
    {
        "addedReviewerEmail": "new_reviewer@example.com"
    }
    ],
    "replaceReviewers": [
    {
        "addedReviewerEmail": "replacement_reviewer@example.com",
        "removedReviewerEmail": "old_reviewer@example.com"
    }
    ],
    "message": "Reassigning reviewers for this approval request."
 }'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • APPROVAL_ID: Onayın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Onayı iptal etme

Bir onayı iptal etmek için approvals kaynağında cancel yöntemini kullanın ve fileId ile approvalId yol parametrelerini ekleyin.

cancel yöntemi yalnızca onay başlatıcı (veya role=writer iznine sahip bir kullanıcı) tarafından Status onayı IN_PROGRESS durumundayken çağrılabilir.

İstek gövdesi, onayın iptal edilmesine eşlik edecek mesajı içeren bir dize olan isteğe bağlı message alanından oluşur.

Yanıt metni, approvals kaynağının bir örneğini içerir. İleti, bildirim olarak gönderilir ve onay etkinliği günlüğüne de eklenir. Onay Status, CANCELLED olarak ayarlanmış ve tamamlanmış durumda.

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:cancel' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for cancelling this approval request."
 }'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • APPROVAL_ID: Onayın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Onayı reddetme

Bir onayı reddetmek için approvals kaynağında decline yöntemini kullanın ve fileId ile approvalId yol parametrelerini ekleyin.

decline yöntemi yalnızca onay Status IN_PROGRESS durumundayken çağrılabilir.

İstek gövdesi, onayın reddedilmesine eşlik edecek mesajı içeren bir dize olan isteğe bağlı message alanından oluşur.

Yanıt metni, approvals kaynağının bir örneğini içerir. İleti, bildirim olarak gönderilir ve onay etkinliği günlüğüne de eklenir. İstek gönderen kullanıcının response alanı, ReviewerResponse nesnesinde DECLINED olarak ayarlanır. Ayrıca, onay Status, DECLINED olarak ayarlanır ve tamamlanmış durumdadır.

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:decline' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for declining this approval request."
 }'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • APPROVAL_ID: Onayın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Onayı onayla

Bir onayı onaylamak için approvals kaynağında approve yöntemini kullanın ve fileId ile approvalId yol parametrelerini ekleyin.

approve yöntemi yalnızca onay Status IN_PROGRESS durumundayken çağrılabilir.

İstek gövdesi, onaya eşlik edecek mesajı içeren bir dize olan isteğe bağlı message alanından oluşur.

Yanıt metni, approvals kaynağının bir örneğini içerir. İleti, bildirim olarak gönderilir ve onay etkinliği günlüğüne de eklenir. İstek gönderen kullanıcının response alanı, ReviewerResponse nesnesinde APPROVED olarak ayarlanır. Ayrıca, bu son gerekli inceleme yanıtıysa onay Status, APPROVED olarak ayarlanır ve tamamlanmış durumda olur.

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:approve' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for approving this approval request."
 }'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • APPROVAL_ID: Onayın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Mevcut onayları bulma

approvals kaynağı, Drive API'yi kullanarak onaylarınızın durumunu almak ve listelemek için de kullanılabilir.

Bir dosyayla ilgili onayları görüntülemek için dosyanın meta verilerini okuma izniniz olmalıdır. Daha fazla bilgi için Roller ve izinler başlıklı makaleyi inceleyin.

Onay alma

Bir dosyayla ilgili onay almak için get yöntemini approvals kaynağında fileId ve approvalId yol parametreleriyle birlikte kullanın. Onay kimliğini bilmiyorsanız list yöntemini kullanarak onayları listeleyebilirsiniz.

Yanıt metni, approvals kaynağının bir örneğini içerir.

curl

curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Accept: application/json'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • APPROVAL_ID: Onayın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.

Onayları listeleme

Bir dosyayla ilgili onayları listelemek için approvals kaynağında list yöntemini çağırın ve fileId yol parametresini ekleyin.

Yanıt gövdesi, dosyadaki onayların listesinden oluşur. items alanı, approvals kaynağı biçiminde her onay hakkında bilgi içerir.

Ayrıca, onayların sayfalara ayrılmasını özelleştirmek veya onayları filtrelemek için aşağıdaki sorgu parametrelerini de iletebilirsiniz:

  • pageSize: Sayfa başına döndürülecek maksimum onay sayısı. pageSize değerini ayarlamazsanız sunucu en fazla 100 onay döndürür.

  • pageToken: Önceki bir liste çağrısından alınan sayfa jetonu. Bu jeton, sonraki sayfayı almak için kullanılır. Önceki yanıttaki nextPageToken değerine ayarlanmalıdır.

curl

curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals?pageSize=10' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Accept: application/json'

Aşağıdakini değiştirin:

  • FILE_ID: Onayın bulunduğu dosyanın kimliği.
  • ACCESS_TOKEN: Uygulamanızın OAuth 2.0 jetonu.