Belgelere geç
SDK

Üyeler

`members.list`, `get`, `add`, `update`, `remove`, `grantAddress` ve `revokeAddress`.

Tüm metotlar

members.ts
const people = await openemail.members.list()const member = await openemail.members.get(people[0]!.userId) const sam = await openemail.members.add({  email: '[email protected]',  roleId: support.id,  addressIds: ['2b81de07-…'],  access: 'member',}) await openemail.members.update(sam.userId, { roleId: viewerRoleId }) await openemail.members.grantAddress(sam.userId, {  addressId: 'c40a95f2-…',  access: 'viewer',})await openemail.members.revokeAddress(sam.userId, 'c40a95f2-…') await openemail.members.remove(sam.userId)

Kişi başına iki yetki vardır ve bunlar birleştirilmemelidir. role ne yapabilecekleridir; addresses ise bunu neye yapabilecekleridir. İkisinin de uyuşması gerekir: invoices@ üzerinde access: "viewer" varken emails:send içeren bir rol tutan kişi, posta gönderebilen ama o adresten gönderemeyen biridir.

Her metot e-postayı değil userId değerini alır. Tek istisna add'dir ve istisnanın nedeni de budur: onu çağıranın elinde bir e-posta adresi vardır, henüz bir kullanıcı id'si yoktur; o çağrının yaptığı işin ilk yarısı da tam olarak budur.

implied: true, rolü kimsenin seçmediği anlamına gelir. Kişinin adresleri vardır ama rol satırı yoktur; dolayısıyla rol, sahip olduğu en geniş yetkiden çıkarılmıştır. Bunu “henüz karara bağlanmadı” olarak ele alın; çıkarımı bir karara dönüştüren şey update'tir. O zamana kadar, adres erişimini genişletmek ne yapabileceklerini de sessizce genişletir.

Çalışma alanı sahibi ilk satırdır ve isOwner: true ile işaretlenir; buna karşın add, update ve remove onu member_is_owner ile reddetmeyi sürdürür. Paylaşılmamış bir çalışma alanı sıfır değil bir üye bildirir; dolayısıyla koltuk sayarken isOwner olanı dışarıda bırakın.

remove her iki ekseni birden alır: rolü VE bu çalışma alanındaki her adres yetkisini; ardından addressesRevoked değerini bildirir. revokeAddress ise dar olanıdır; ayrılan biri için değil, ekip değiştiren biri içindir.

Parametreler

emailstringzorunlu
Kimin davet edileceği; kırpılır ve küçük harfe çevrilir. Henüz bir hesabının olması gerekmez: herkes davet edilir, rol ve yetkiler daveti kabul ettiklerinde yerine oturur. Çalışma alanında zaten bulunan biri `member_is_owner` (422) verir.
roleIdstringzorunlu
Tutacakları rol, 1 ila 128 karakter; bu çalışma alanında var olan bir rol olmalıdır: bilinmeyen bir id `role_not_found` (404) verir. Owner rolü dağıtılamaz ve `role_immutable` (409) döner, çünkü birini sahip yapmak bir çalışma alanı devridir ve bunun için burada bir çağrı yoktur.
addressIdsstring[]
Aynı çağrıda devredilecek adresler; her biri 1 ila 128 karakter olan en fazla 64 id. Bu çalışma alanında adres olmayan bir id reddedilir. Önce rol yazılır, yetkiler ise tek tek onu izler; dolayısıyla hatalı bir id, üyenin istediğinizden daha az adresle oluşturulmasına yol açar. Çözüm aynı gövdeyi yeniden göndermektir, çünkü iki yazma da upsert'tir.
access'member' | 'viewer'
`addressIds` içindeki her id ile ne yapabilecekleri: `member` adresi okur ve o adresten gönderir, `viewer` yalnızca okur. Varsayılan `member`'dır; konsolun ve eski paylaşım yolunun hep kullandığı düzeydir, böylece aynı çağrı bir betikten de bir ekrandan da aynı anlama gelir. Karışık yetki vermek için farklı olanlara sonradan `grantAddress` çağırın.

Yanıt

object'member'
Her zaman `member`. Bir kaldırma işlemi de aynı değerle, kişinin `userId` değeri, `deleted: true` ve `addressesRevoked` ile yanıt verir; aşağıdaki diğer alanların hiçbiriyle değil.
userIdstring
Kişinin hesap id'si; diğer tüm üye çağrılarının yolda aldığı tanıtıcıdır: get, update, remove ve iki adres çağrısı. Birini eklemek, e-posta ile çalışan tek çağrıdır; çünkü bir iş arkadaşını ekleyen kişi onun adresini bilir, id'sini değil.
emailstring
Hesaplarındaki e-posta, o satırın sakladığı hâliyle yansıtılır. Bu kaynak onu asla yazmaz ve `add` üzerindeki küçük harfe çevirme, geri dönen değere değil arama için gönderdiğiniz adrese uygulanır. Sahipten sonra üye listesi, kimin ne zaman katıldığına göre değil bu alana göre sıralanır; çünkü liste neyin değiştiğini görmek için değil bir kişiyi bulmak için okunur.
namestring | null
Görünen adları; sütunun NOT NULL olduğu hesaplarından alınır. Tipteki null, bu API'nin ürettiği görülmüş bir durum değil, savunma amaçlıdır. Ad çalışma alanına değil kendilerine aittir; dolayısıyla bu kaynaktaki hiçbir şey onu ayarlayamaz.
imagestring | null
Avatarları; hesaplarından alınır ve ayarlamadılarsa null.
role.idstring | null
Tuttukları rolün id'si ya da rolü kimse seçmediyse null. `implied` alanına bakın. Buradaki null, `role` alanının birinin verdiği bir kararı değil bir çıkarımı bildirdiği tek durumdur.
role.namestring
Rolün adı. Çıkarımsal bir üyede bu, erişimlerinin çözümlendiği yerleşik şablonun adıdır; bu çalışma alanındaki bir satır değil.
role.builtin'owner' | 'admin' | 'member' | 'viewer' | 'developer' | 'billing' | null
Rolün hangi yerleşik rol olduğu ya da özel bir rolse null. `owner` yalnızca sahibin kendi satırında, `isOwner: true` ile birlikte görünür; bu rolü herhangi birine atamak `role_immutable` (409) ile reddedilir.
isOwnerboolean
Tam olarak bir satırda true olur: çalışma alanının bağlı olduğu hesap. Rol satırları ne derse desin her izne sahiptirler, ilk sırada yer alırlar ve `add`, `update` ve `remove` üçü de onları `member_is_owner` ile reddeder. Koltuk sayarken onları hariç tutun.
impliedboolean
Bu kişinin adres yetkileri olup üye satırı yoksa true olur; yani rolü seçilmemiş, çıkarılmıştır: herhangi bir `member` yetkisi yerleşik Member rolüne, aksi hâlde Viewer'a çözümlenir. Sahip için asla true olmaz. Bunu “erişimden çıkarıldı” olarak gösterin. Bir PATCH çıkarımı bir karara dönüştürene kadar, adres erişimlerini genişletmek ne yapabileceklerini de sessizce genişletir.
permissionsPermission[]
Rolün izinlerinin üyenin üzerine düzleştirilmiş hâli; böylece tek bir okuma, rolü getirmeden “yapabilir mi?” sorusunu yanıtlar. Çıkarımsal bir üyede bu izinler, bu çalışma alanının rol satırından değil yerleşik ŞABLONDAN gelir; dolayısıyla yerleşik Member rolünü düzenlemek, çıkarımsal bir üyenin sahip olduklarını değiştirmez.
addressesMemberAddress[]
Kendilerine verilen adresler, adrese göre sıralı, her biri kendi erişim düzeyiyle. Rolü olup hiç yetkisi olmayan biri için boştur; bir adres verilene kadar yeni bir üye böyle görünür ve ne görmeleri gerektiğine hâlâ karar verirken olması gereken doğru başarısızlık budur.
addresses[].addressIdstring
Adresin id'si; `grantAddress` ve `revokeAddress` çağrılarının aldığı değerdir. Bu çalışma alanında adres olmayan bir id, hiç gerçekleşmemiş bir iptali bildirmek yerine her ikisinde de reddedilir.
addresses[].addressstring
Tam adres, küçük harfli; local part'ı ve alan adından yeniden kurulur.
addresses[].access'member' | 'viewer'
Bu tek adresle ne yapabilecekleri: `member` adresi okur ve o adresten gönderir, `viewer` yalnızca okur. Bir gönderimin gerçekleşmesi için hem bu hem de rol izin vermelidir; dolayısıyla `viewer` yetkisi üzerinde `emails:send` içeren bir rol hiçbir yerden gönderim yapamaz. Saklanan sütunun adı `role`'dür ve tek bir nesnenin iki farklı sözlükten gelen iki `role` taşımaması için burada yeniden adlandırılmıştır.
createdAtstring | null
Üye satırlarının ne zaman yazıldığı, ISO-8601; hiç üye satırı yoksa null. Bu null, `implied: true` ile aynı kitleyi tanımlar: roller var olmadan önceki dönemden adres tutan ve o zamandan beri kimsenin rol vermediği kişiler.