Beklemedeki erişim tekliflerini yönetme

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 ile role=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.