Erişim teklifi, istek sahibinin bir alıcıya Google Drive öğesine erişim izni vermesi için onaylayana gönderdiği tekliftir.
Onaylayan kullanıcılar, Drive dosyalarındaki çözümlenmemiş tüm erişim tekliflerini inceleyebilir ve bunlarla ilgili işlem yapabilir. Bu sayede, erişim tekliflerini programatik olarak sorgulayıp çözerek onay sürecini hızlandırabilirsiniz. Ayrıca, onaylayanlar tarafından tekliflerin toplu olarak görüntülenmesine olanak tanır.
Google Drive API, bekleyen erişim tekliflerini görüntüleyip çözebilmeniz için accessproposals
kaynağını sağlar. accessproposals
kaynağının yöntemleri dosyalarda, klasörlerde ve ortak Drive'daki dosyalarda çalışır ancak ortak Drive'da çalışmaz.
Aşağıdaki terimler erişim tekliflerine özeldir:
- İsteyen: Drive öğesine erişim teklifini başlatan kullanıcı.
- Alıcı: Erişim teklifi kabul edilirse bir dosyada ek izinleri alan kullanıcı. Alıcı genellikle istek gönderenle aynıdır ancak her zaman aynı değildir.
- Onaylayıcı: Erişim teklifini onaylama (veya reddetme) ile sorumlu kullanıcı. Bunun nedeni genellikle dokümanın sahibi olmaları veya dokümanı paylaşabilmeleridir.
Beklemedeki erişim tekliflerini listeleme
Bir Drive öğesindeki bekleyen tüm erişim tekliflerini listelemek için accessproposals
kaynağında list()
yöntemini çağırın ve fileId
yol parametresini ekleyin.
Yalnızca bir dosyanın onaylayıcıları, dosyada bekleyen teklifleri listeleyebilir. Onaylayan, dosyada can_approve_access_proposals
yetkisi olan bir kullanıcıdır. İstekte bulunan kullanıcı onaylayan değilse boş bir liste döndürülür. capabilities
hakkında daha fazla bilgi için Dosya özelliklerini anlama başlıklı makaleyi inceleyin.
Yanıt gövdesi, dosyadaki çözülmemiş erişim tekliflerinin listesini temsil eden bir AccessProposal
nesnesinden oluşur.
AccessProposal
nesnesi, her teklifle ilgili istek sahibi, alıcı ve istek sahibinin eklediği mesaj gibi bilgileri içerir. Ayrıca, istek sahibinin önerdiği role
öğesini bir view
ile gruplandıran bir AccessProposalRoleAndView
nesnesi de içerir. role
Tekrarlanan bir alandır. Bu nedenle, her teklif için birden fazla role
olabilir. Örneğin, bir teklifte role=reader
ve view=published
değerlerinin yer aldığı bir AccessProposalRoleAndView
nesnesi ve yalnızca role=writer
değerini içeren ek bir AccessProposalRoleAndView
nesnesi olabilir. Daha fazla bilgi için Görüntüleme sayısı bölümüne bakın.
Erişim tekliflerinin sayfalandırmasını özelleştirmek veya filtrelemek için aşağıdaki sorgu parametrelerini iletin:
pageToken
: Önceki bir liste çağrısından alınan sayfa jetonu. Sonraki sayfayı almak için bu jetonu sağlayın.pageSize
: Sayfa başına döndürülecek maksimum erişim teklifi sayısı.
Beklemedeki erişim tekliflerini çözüme ulaştırın
Bir Drive öğesindeki bekleyen tüm erişim tekliflerini çözmek için accessproposals
kaynağında resolve()
yöntemini çağırın ve fileId
ile proposalId
yol parametrelerini ekleyin.
resolve()
yöntemi, teklifle ilgili yapılacak işlemi belirten bir action
sorgu parametresi içerir. Action
nesnesi, teklifin kabul edilip edilmediğini bilmemiz için teklifin durum değişikliğini izler.
resolve()
yöntemi, role
ve view
isteğe bağlı sorgu parametrelerini de içerir. Yalnızca writer
, commenter
ve reader
rolleri desteklenir. Rol belirtilmezse varsayılan olarak reader
olur. send_notification
isteğe bağlı ek sorgu parametresi, teklif kabul edildiğinde veya reddedildiğinde istek sahibine e-posta bildirimi göndermenize olanak tanır.
list()
yönteminde olduğu gibi, teklifi çözen kullanıcıların dosyada can_approve_access_proposals
yeteneğine sahip olması gerekir. capabilities
hakkında daha fazla bilgi için Dosya özelliklerini anlama başlıklı makaleyi inceleyin.
Öneriler, Drive kaynaklarını paylaşma senaryoları bölümünde listelenen aynı kalıplar kullanılarak çözülür. Aynı kullanıcı için farklı rollere sahip birden fazla teklif varsa aşağıdakiler geçerlidir:
- Bir teklif kabul edilir ve diğeri reddedilirse kabul edilen rol Drive öğesi için geçerli olur.
- Her iki teklif de aynı anda kabul edilirse daha yüksek izine sahip teklif (örneğin,
role=writer
yerinerole=reader
) uygulanır. Diğer erişim teklifi öğeden kaldırılır.
resolve()
yöntemine bir teklif gönderildikten sonra paylaşım işlemi tamamlanır. AccessProposal
artık list()
yöntemi üzerinden döndürülmemektedir. Teklif kabul edildikten sonra kullanıcı, bir dosya veya klasördeki izinleri güncellemek için permissions
koleksiyonunu kullanmalıdır. Daha fazla bilgi için İzinleri güncelleme başlıklı makaleyi inceleyin.