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
Dosyanızda
canStartApprovalözelliği bulunmalıdır . Dosya özelliklerini kontrol etmek içinfileskaynağındafileIdyol parametresiylegetyöntemini çağırın vefieldsparametresindecanStartApprovalözellik alanını kullanın. Daha fazla bilgi için Dosya özelliklerini anlama başlıklı makaleyi inceleyin.Boole
canStartApprovalözelliği şu durumlardafalseolur:- 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=writerizni yok.
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ü
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:
Onay sürecini başlatın. Onay isteğini başlatmak için
startnumaralı telefonu arayın.status,IN_PROGRESSolarak ayarlanır.Onay bekleniyor. Onay beklenirken (
status,IN_PROGRESSolarak ayarlanmışken) hem başlatıcı hem de inceleyenler onay isteğiyle etkileşimde bulunabilir. İnceleme isteğinecommentekleyebilir, incelemeyi başlatan kişireassignincelemeciler ekleyebilir ve bir veya daha fazla incelemeci isteğiapprove.Onay tamamlanmış durumdadır. Bir onay, tüm incelemeciler isteği onayladığında, isteği başlatan kişi isteği
cancelseçtiğinde veya herhangi bir incelemeci isteğideclineseçtiğinde tamamlandı durumuna (status,APPROVED,CANCELLEDveyaDECLINEDolarak 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=writeriznine 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ı.pageSizedeğ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ıttakinextPageTokendeğ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.