Erişim önerisi, bir Google Drive öğesine erişim izni verilmesi için istekte bulunan kullanıcıdan onaylayana gönderilen öneridir.
Onaylayan, Drive dosyalarındaki tüm çözümlenmemiş erişim önerilerini inceleyip bunlarla ilgili işlem yapabilir. Bu sayede, erişim tekliflerini programatik olarak sorgulayıp ardından bunları çözerek onay sürecini hızlandırabilirsiniz. Ayrıca, tekliflerin onaylayan kişi tarafından toplu olarak görüntülenmesine de olanak tanır.
Google Drive API, bekleyen erişim önerilerini görüntüleyip çözebilmeniz için
accessproposals
kaynağını sağlar. accessproposals
kaynağının yöntemleri dosyalar, klasörler ve ortak drive'daki dosyalar üzerinde çalışır ancak ortak drive üzerinde çalışmaz.
Aşağıdaki terimler erişim tekliflerine özgüdür:
- İstekte bulunan: Bir Drive öğesine erişim önerisini başlatan kullanıcı.
- Alıcı: Erişim teklifi kabul edilirse bir dosyada ek izinleri alan kullanıcı. Alıcı çoğu zaman istekte bulunan kullanıcıyla aynıdır ancak bu her zaman geçerli değildir.
- Onaylayan: Erişim önerisini onaylamaktan (veya reddetmekten) sorumlu kullanıcı. Bunun nedeni genellikle kullanıcının dokümanın sahibi olması veya dokümanı paylaşabilmesidir.
Beklemedeki erişim tekliflerini listeleme
Bir Drive öğesindeki tüm bekleyen erişim önerilerini listelemek için list()
yöntemini accessproposals
kaynağında çağırın ve fileId
yol parametresini ekleyin.
Yalnızca bir dosyadaki onaylayanlar, dosyadaki bekleyen önerileri listeleyebilir. Onaylayan, dosyada can_approve_access_proposals
özelliğine sahip bir kullanıcıdır. İstekte bulunan kişi 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, dosyada çözümlenmemiş erişim önerilerinin listesini temsil eden bir AccessProposal
nesnesinden oluşur.
AccessProposal
nesnesi, her teklifle ilgili bilgileri (ör. talep eden, alıcı ve talep edenin eklediği ileti) içerir. Ayrıca, talep sahibinin önerdiği role
'yi view
ile gruplandıran bir AccessProposalRoleAndView
nesnesi de içerir. role
yinelenen bir alan olduğundan her teklif için birden fazla değer olabilir. Örneğin, bir teklifte AccessProposalRoleAndView
nesnesi role=reader
ve view=published
değerlerini, ayrıca yalnızca role=writer
değerini içeren ek bir AccessProposalRoleAndView
nesnesini içerebilir. Daha fazla bilgi için Görünümler başlıklı makaleyi inceleyin.
Erişim tekliflerinin sayfalandırmasını özelleştirmek veya teklifleri 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 önerisi sayısı.
Bekleyen erişim önerilerini çözme
Bir Drive öğesindeki bekleyen tüm erişim tekliflerini çözmek için resolve()
yöntemini accessproposals
kaynağında çağırın ve fileId
ile proposalId
yol parametrelerini ekleyin.
resolve()
yöntemi, teklif üzerinde yapılacak işlemi belirten bir action
sorgu parametresi içerir. Action
nesnesi, teklifin durum değişikliğini izler. Böylece teklifin kabul edilip edilmediğini anlayabiliriz.
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
parametresinin isteğe bağlı ek bir sorgusu, teklif kabul edildiğinde veya reddedildiğinde istekte bulunan kişiye e-posta bildirimi göndermenize olanak tanır.
list()
yönteminde olduğu gibi, öneriyi çözümleyen kullanıcıların dosyada can_approve_access_proposals
özelliğ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 birden fazla teklif varsa ancak farklı rollerle teklifler gönderilmişse aşağıdakiler geçerlidir:
- Bir teklif kabul edilirken diğeri reddedilirse kabul edilen rol, Drive öğesi için geçerli olur.
- Her iki teklif de aynı anda kabul edilirse daha yüksek izne sahip teklif (örneğin,
role=writer
ilerole=reader
karşılaştırması) uygulanır. Diğer erişim teklifi öğeden kaldırılır.
resolve()
yöntemine teklif gönderildikten sonra paylaşım işlemi tamamlanır. AccessProposal
artık list()
yöntemiyle döndürülmüyor. Öneri kabul edildikten sonra kullanıcının, dosya veya klasördeki izinleri güncellemek için permissions
koleksiyonunu kullanması gerekir. Daha fazla bilgi için İzinleri güncelleme başlıklı makaleyi inceleyin.