Beklemedeki erişim tekliflerini yönetme

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. accessproposalskaynağı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. roleTekrarlanan 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 yerine role=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.