Verbinden eines Bots mit WeChatConnect a bot to WeChat

gilt für: SDK v4APPLIES TO: SDK v4

Sie können Ihren Bot für die Kommunikation mit Personen konfigurieren, die die offizielle Kontoplattform von WeChat nutzen.You can configure your bot to communicate with people using the WeChat Official Accounts Platform.

Herunterladen des WeChat-Adapters für Bot FrameworkDownload WeChat Adapter for Bot Framework

Der WeChat-Adapter für Microsoft Bot Framework ist ein Open-Source-Adapter, der auf GitHub verfügbar ist.WeChat adapter for Microsoft Bot Framework is an open source adapter on GitHub. Laden Sie den WeChat-Adapter für Bot Framework herunter.Download WeChat Adapter for Bot Framework.

Erstellen eines WeChat-KontosCreate a WeChat Account

Zum Konfigurieren eines Bots für die Kommunikation mit WeChat müssen Sie auf der offiziellen WeChat-Kontoplattform ein offizielles WeChat-Konto erstellen und den Bot anschließend mit der App verbinden.To configure a bot to communicate using WeChat, you need to create a WeChat official account on WeChat Official Account Platform and then connect the bot to the app. Derzeit wird nur das Dienstkonto unterstützt.Currently we only support Service Account.

Ändern Ihrer bevorzugten SpracheChange Your Prefer Language

Sie können die bevorzugte Anzeigesprache ändern, bevor Sie sich anmelden.You can change the display language you prefer before login.

change_language

Registrieren eines DienstkontosRegister A Service Account

Ein echtes Dienst Konto muss von WeChat überprüft werden. Sie können den webhook nicht aktivieren, bevor das Konto überprüft wird.A real service account must be verified by WeChat, you can't enable webhook before account is verified. Befolgen Sie diese Anleitung, um Ihr eigenes Dienstkonto zu erstellen.To create your own service account, please follow the instruction Here. Klicken Sie zum schnellen Zugreifen einfach oben auf „Jetzt registrieren“, wählen Sie das Dienstkonto aus, und befolgen Sie die Anleitung.For short, just click the Register Now on the top, select the Service Account and follow the instruction.

register_account

SandboxkontoSandbox Account

Falls Sie nur die Integration von WeChat und Bot testen möchten, können Sie ein Sandboxkonto verwenden, anstatt das Dienstkonto zu erstellen.If you just want to test the WeChat and bot integration, you can use a sandbox account instead of creating the service account. Informieren Sie sich über die Erstellung eines Sandboxkontos.Learn more about creating a sandbox account.

Aktivieren des WeChat-Adapters für den BotEnable WeChat Adapter To Bot

Das Botprojekt ist ein reguläres Bot Framework SDK V4-Projekt.The Bot Project is a regular Bot Framework SDK V4 project. Vor dem Starten des Projekts müssen Sie sicherstellen, dass Sie den Bot ausführen können.Before you can launch it, you need to make sure you can run the bot. Laden Sie den WeChat-Adapter für Bot Framework herunter.Download WeChat Adapter for Bot Framework.

VoraussetzungenPrerequisites

  • .Net Core SDK (Version 2.2. x).NET Core SDK (version 2.2.x)

Hinzufügen eines Verweises auf die Quelle des WeChat-AdaptersAdd Reference To WeChat Adapter Source

Verweisen Sie direkt auf das WeChat-Adapterprojekt, oder fügen Sie „~/BotFramework-WeChat/libraries/csharp_dotnetcore/outputpackages“ als lokale NuGet-Quelle hinzu.Please directly reference the WeChat adapter project or add ~/BotFramework-WeChat/libraries/csharp_dotnetcore/outputpackages as local NuGet source.

Einfügen des WeChat-Adapters in die Datei „Startup.cs“ des BotsInject WeChat Adapter In Your Bot Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

    // Create the storage we'll be using for User and Conversation state. (Memory is great for testing purposes.)
    services.AddSingleton<IStorage, MemoryStorage>();

    // Create the User state. (Used in this bot's Dialog implementation.)
    services.AddSingleton<UserState>();

    // Create the Conversation state. (Used by the Dialog system itself.)
    services.AddSingleton<ConversationState>();

    // Load WeChat settings.
    var wechatSettings = new WeChatSettings();
    Configuration.Bind("WeChatSettings", wechatSettings);
    services.AddSingleton<WeChatSettings>(wechatSettings);

    // Configure hosted serivce.
    services.AddSingleton<IBackgroundTaskQueue, BackgroundTaskQueue>();
    services.AddHostedService<QueuedHostedService>();
    services.AddSingleton<WeChatHttpAdapter>();

    // The Dialog that will be run by the bot.
    services.AddSingleton<MainDialog>();

    // Create the bot as a transient. In this case the ASP Controller is expecting an IBot.
    services.AddTransient<IBot, EchoBot>();
}

Aktualisieren Ihres BotcontrollersUpdate Your Bot Controller

[Route("api/messages")]
[ApiController]
public class BotController : ControllerBase
{  
    private readonly IBot _bot;
    private readonly WeChatHttpAdapter _weChatHttpAdapter;
    private readonly string Token;
    public BotController(IBot bot, WeChatHttpAdapter weChatAdapter)
    {
        _bot = bot;
        _weChatHttpAdapter = weChatAdapter;
    }

    [HttpPost("/WeChat")]
    [HttpGet("/WeChat")]
    public async Task PostWeChatAsync([FromQuery] SecretInfo secretInfo)
    {
        // Delegate the processing of the HTTP POST to the adapter.
        // The adapter will invoke the bot.
        await _weChatHttpAdapter.ProcessAsync(Request, Response, _bot, secretInfo);
    }
}

Einrichten von „appsettings.json“Setup appsettings.json

Sie müssen „appsettings.json“ einrichten, bevor Sie den Bot starten. Die erforderlichen Informationen hierfür finden Sie unten.You will need to set up appsettings.json before start up the bot, you can find what you need below.

"WeChatSettings": {
    "UploadTemporaryMedia": true,
    "PassiveResponseMode": false,
    "Token": "",
    "EncodingAESKey": "",
    "AppId": "",
    "AppSecret": ""
}

DienstkontoService Account

Wenn Sie bereits über ein Dienstkonto verfügen und bereit zur Bereitstellung sind, können Sie in der linken Navigationsleiste die grundlegenden Konfigurationsangaben AppID, AppSecret, EncodingAESKey und Token verwenden.If you already have a service account and ready to deploy, then you can find AppID , AppSecret , EncodingAESKey and Token in the basic configurations on the left nav bar, like below.

Vergessen Sie nicht, dass Sie die IP-Zulassungsliste einrichten müssen. andernfalls akzeptiert WeChat Ihre Anforderung nicht.Don't forgot you need to set up the IP allow-list, otherwise WeChat won't accept your request.

serviceaccount_console

SandboxkontoSandbox Account

Wenn das Sandboxkonto keinen EncodingAESKey aufweist und die Nachricht von WeChat nicht verschlüsselt war, können Sie „EncodingAESKey“ einfach leer lassen.Sandbox account don't have EncodingAESKey , message from WeChat was not encrypted just leave EncodingAESKey blank. Sie verwenden hier nur die drei Parameter appID, appsecret und Token.You only have three parameters here, appID , appsecret and Token.

sandbox_account

Starten des Bots und Festlegen der Endpunkt-URLStart Bot And Set Endpoint URL

Nun können Sie Ihr Back-End für den Bot festlegen.Now you can set your bot backend. Sie müssen den Bot zunächst starten, bevor Sie die Einstellungen speichern. Sie erhalten von WeChat eine Anforderung zur Verifizierung der URL.Before you are doing this, you have to start the bot before you save the settings, WeChat will send you a request to verify the URL. Verwenden Sie zum Festlegen des Endpunkts das folgende Muster: https://your_end_point/WeChat . Alternativ können Sie Ihre persönlichen Einstellungen genauso wie in „BotController.cs“ festlegen.Please set the endpoint in such pattern: https://your_end_point/WeChat, or set your personal settings the same with what you have done in BotController.cs

sandbox_account2

Abonnieren Ihres offiziellen KontosSubscribe Your Official Account

Sie können einen QR-Code verwenden, um Ihr Testkonto wie in WeChat zu abonnieren.You can find a QR code to subscribe your test account as in WeChat.

subscribe

Testen über WeChatTest Through WeChat

Sie haben nun alle erforderlichen Schritte ausgeführt und können in Ihrem WeChat-Client einen Test durchführen.Everything is done, you can try it in your WeChat client. Sie können den Beispielbot im Ordner „tests“ ausprobieren.You can try our sample bot under tests folder. Dieser Beispielbot umfasst den WeChat-Adapter und eine Integration eines Echobots und Kartenbots.This sample bot includes wechat adapter and integrated with echo bot and Cards bot.

Chat