Channel adapters for Veriqa: Discord, Slack, LINE, Microsoft Teams, Zalo, KakaoTalk, Threema, VK, UChat, Viber and WeChat — in .NET and Python
Your users sign in and confirm actions in the messaging app they already use: Discord, Slack, LINE, Microsoft Teams, Zalo, KakaoTalk, Threema, VK, or Instagram and Messenger through a UChat bot. Each adapter here adds one messaging app to Veriqa as a channel. Veriqa is an open-source OpenID Connect provider you run yourself, so your app keeps receiving standard OpenID Connect tokens whichever channel the user picks.
The repository also holds Python adapters for Viber and WeChat. Veriqa has these two channels built in; the adapters here show how to connect a messaging app in a language other than .NET.
- In your host —
dotnet/<Channel>/. Each adapter is an assembly,Veriqa.ChannelAdapter.<Channel>, built against theVeriqa.Core.ContractsandVeriqa.Core.ChannelAdapterpackages from nuget.org. You register it in a host that embeds the Veriqa server core; the README of each adapter ends with a minimal host. - Next to Veriqa —
dotnet/UChatService/,python/viber/andpython/wechat/. The adapter runs as a service of its own and plugs in through the HTTP channel of Veriqa by configuration alone: no code in Veriqa and no rebuild of it. See Build a channel in any language.
"Live" means a run against the real platform with a real bot or app. "Stand-in" means a full sign-in against a local double of the platform API, written from the platform documentation: it checks the adapter against our reading of the protocol, not against the platform itself.
| Adapter | Folder | How it plugs in | Verified |
|---|---|---|---|
| Slack | dotnet/Slack |
in your host | live, both outcomes; the start by a sign-in code — unit tests only |
| Discord | dotnet/Discord |
in your host | live, both outcomes, the QR code and the slash command; the start by a sign-in code — unit tests only |
| LINE | dotnet/Line |
in your host | stand-in |
| Microsoft Teams | dotnet/Teams |
in your host | stand-in |
| Zalo | dotnet/Zalo |
in your host | stand-in |
| KakaoTalk | dotnet/KakaoTalk |
in your host | stand-in |
| Threema | dotnet/Threema |
in your host | stand-in |
| VK | dotnet/channel-adapters-ru/adapters/Vk |
in your host, from the Veriqa.ChannelAdapter.Ru.Vk package on nuget.org, or next to Veriqa, as a container image |
live as a container image, over Long Poll and the Callback API; the package form — unit tests only |
| Instagram and Messenger through a UChat bot | dotnet/UChatService |
next to Veriqa, a .NET service | stand-in: the HTTP channel conformance suite passes in full |
| Viber | python/viber |
next to Veriqa, Python | stand-in |
python/wechat |
next to Veriqa, Python | stand-in |
Before you set a platform up, read the README of its adapter: where an adapter was run live, it notes the platform settings and pitfalls the documentation alone does not reveal.
cd dotnet
dotnet build Slack/Veriqa.ChannelAdapter.Slack.Tests
dotnet test Slack/Veriqa.ChannelAdapter.Slack.TestsThe same works for every adapter folder. The core version is pinned once for all of them in dotnet/Directory.Build.props
(VeriqaCoreVersion), and the packages come from nuget.org. The build applies the analyzers of the Veriqa core: banned
APIs (dotnet/build/BannedSymbols.txt), threading rules and strict nullability.
VK builds separately: dotnet/channel-adapters-ru/ holds the VK adapter and the shared host that serves it next to
Veriqa, with their own Directory.Build.props, so run dotnet build Veriqa.ChannelAdapters.Ru.slnx from that folder.
On the core, registering an adapter is not enough for the sign-in page to offer the channel: the host also registers a
CoreChannelDeclaration for the channel type, as the host examples in the adapter READMEs show.
dotnet/UChatService/, dotnet/channel-adapters-ru/adapters/Vk/, python/viber/ and python/wechat/ each have a
compose.yaml that starts Veriqa and the adapter together. The steps, the settings and the platform setup are in the README of the adapter.
- Writing a .NET adapter for your host: Build a channel in C#.
- How the HTTP channel works, for an adapter in another language: Build a channel in any language.
- Veriqa itself — the source, the built-in channels and the documentation: gitlab.com/veriqa/veriqa · veriqa.app.
MIT — see LICENSE. Third-party libraries an adapter uses keep their own licenses: the README of the adapter names them.