defineConnectionProvider({ type: 'oauth', ... }) kullanan uygulamaların geçiş yapması gerekmeyecek.
defineConnectionProvider
Uygulamanızın bağlantılarının nasıl elde edildiğini belirtin
defineConnectionProvider
Uygulamanızın bağlantılarının nasıl elde edildiğini belirtin
ConnectedAccount satırı oluşturulur.Çalışan bir kurulum iki dosya gerektirir — bağlantı sağlayıcısı ve OAuth istemci kimlik bilgilerini tutan defineApplication üzerindeki eşleşen bir serverVariables bildirimi.name,listConnections({ providerName })içinde kullanılan benzersiz tanımlayıcı dizedir (kebab-case,^[a-z][a-z0-9-]*$ile eşleşmelidir).displayNameuygulama başına ayarlar sekmesinde ve Yapay Zeka araç listesinde gösterilir.clientIdVariable/clientSecretVariabledeğer değil, isimdir —defineApplication.serverVariablesiçinde bildirilen anahtarlarla eşleşmelidir. Gerçekclient_idveclient_secret, sunucu yöneticisi tarafından uygulama kayıt arayüzü üzerinden girilir; deponuza asla commit edilmez.serverVariableskullanın (applicationVariablesdeğil) — OAuth kimlik bilgileri sunucu genelidir ve her Twenty sunucusu için bir OAuth uygulaması vardır.- Her iki
serverVariablesda doldurulana kadar, uygulama başına ayarlar sekmesi “sunucu yöneticisine ihtiyaç var” ipucunu gösterir ve “Bağlantı ekle” düğmesi devre dışı bırakılır. type: 'oauth'bugün desteklenen tek değerdir. Ayırt edici alan ileriye dönük uyumludur: gelecekteki türler ('pat','api-key', …)oauthyanında yeni alt yapılandırma blokları eklenecektir.
Bağlanıldığında bir mantık fonksiyonu çalıştırın
Bir bağlantı kurulur kurulmaz tepki verin
Bağlanıldığında bir mantık fonksiyonu çalıştırın
Bir bağlantı kurulur kurulmaz tepki verin
team_id bilgisini sağlar. onConnectLogicFunction değerini, aynı uygulamadaki bir mantık fonksiyonuna (onun universalIdentifier değeriyle) referans verecek şekilde ayarlayın; böylece ConnectedAccount oluşturulduktan hemen sonra çalışır.getConnection(connectedAccountId) kullanarak yeni erişim belirtecini okuyun ve sağlayıcının API’sini (ör. Slack auth.test) çağırın veya key-value store ile bir eşleme kalıcı hale getirin.Bağlantı kesildiğinde bir mantık fonksiyonu çalıştırın
Bir bağlantı kaldırıldığında temizleme işlemi yapın
Bağlantı kesildiğinde bir mantık fonksiyonu çalıştırın
Bir bağlantı kaldırıldığında temizleme işlemi yapın
team_id talep eden bir Slack entegrasyonu, başka bir çalışma alanının aynı Slack ekibini bağlayabilmesi için bu talebi serbest bırakmak zorundadır. Aynı uygulamadaki bir mantık fonksiyonuna referans vermesi için onDisconnectLogicFunction değerini ayarlayın; böylece ConnectedAccount silindikten hemen sonra çalışır.ConnectedAccount zaten kaldırılmıştır, bu yüzden getConnection(connectedAccountId) artık sonuç döndürmez. Temizliğin ihtiyaç duyduğu her şey (team_id, harici abonelik kimliği gibi) bağlanma sırasında, connectedAccountId anahtarıyla key-value store içine yazılmış olmalıdır.Kanca, bir bağlantı kendi başına kaldırıldığında tetiklenir. Uygulamanın kaldırılması, bağlantılarını bunun yerine bir veritabanı zincirleme silme işlemiyle kaldırır, bu nedenle kanca burada çalışmaz. Bu yol için defineApplication üzerinde bir uninstallLogicFunction bildirin: bu işlev, uygulamanın meta verileri silinmeden önce çalışır, böylece hâlâ listConnections çağırabilir ve geride kalan her şeyi temizleyebilir.listConnections / getConnection
Bir mantık işlevinden bağlantıları kullanın
listConnections / getConnection
Bir mantık işlevinden bağlantıları kullanın
listConnections({ providerName }), verilen sağlayıcı için bu uygulamanın ConnectedAccount satırlarını, yenilenmiş erişim belirteçleriyle döndürür.- Sağlayıcıya göre filtrelemek için
{ providerName }iletin; bu uygulamanın tüm sağlayıcılardaki tüm bağlantılarını almak için bunu atlayın. - Sunucu, döndürmeden önce erişim belirtecini şeffaf bir şekilde yeniler. İşleyiciniz her zaman kullanılabilir bir belirteç görür (veya
authFailedAtayarlanmıştır). getConnection(id), tek satırlık karşılığıdır.
Kullanıcıya özel ve çalışma alanı paylaşımlı görünürlük
Kullanıcıların özel ve paylaşılan kimlik bilgileri arasında nasıl seçim yaptığı
Kullanıcıya özel ve çalışma alanı paylaşımlı görünürlük
Kullanıcıların özel ve paylaşılan kimlik bilgileri arasında nasıl seçim yaptığı
- Yalnızca benim için — kimlik bilgisi, bağlanan kullanıcıya özeldir. Adlarına çağrılan herhangi bir mantık işlevi (
isAuthRequired: trueile HTTP rota tetikleyicisi) bunu görür; cron tetikleyicileri ve veritabanı olayları görmez. - Çalışma alanı paylaşımlı — herhangi bir çalışma alanı üyesi bu kimlik bilgisini kullanabilir. Cron / veritabanı tetikleyicileri de görür, çünkü istek kullanıcısı yoktur.
Tek seferlik sağlayıcı kurulumu
OAuth uygulamanızı üçüncü taraf hizmete kaydedin
Tek seferlik sağlayıcı kurulumu
OAuth uygulamanızı üçüncü taraf hizmete kaydedin
- Sağlayıcının geliştirici ayarlarına gidin (örn. https://linear.app/settings/api/applications/new).
- Redirect URI’yi
\<SERVER_URL>/auth/apps/callbackolarak ayarlayın. - Oluşturulan Client ID ve Client Secret’ı kopyalayın.
- Yüklü uygulamayı Twenty’de bir sunucu yöneticisi olarak açın → karşılık gelen
serverVariablesüzerinde değerleri ayarlayın. - Ardından çalışma alanı üyeleri, uygulama başına Bağlantılar bölümünden bağlantılar ekleyebilir.