首页 > 解决方案 > 如何修复:“从连接器收到错误”与 Microsoft Teams

问题描述

我正在为个人应用程序中的团队开发自定义连接器。当我保存它时,我有这个错误:“无法保存”“连接器配置”,
这在控制台中: 控制台错误 我遵循 Microsoft 示例,这里是 setup.cshtml:

"microsoftTeams.settings.registerOnSaveHandler(function (saveEvent) {
    microsoftTeams.getContext(function (context) {
        url = "https://mydomain.azurewebsites.net/Connector/Setup.cshtml";
        entity = 'connector-officedev-' + context.teamId + '-' + context.channelId;

        microsoftTeams.settings.setSettings({
            entityId: entity,
            contentUrl: url,
            configName: entity
        });
    });
    microsoftTeams.settings.getSettings(function (settings) {
        //var webhookUrl = settings.webhookUrl;
        $.ajax({
            url: 'Save',
            type: 'POST',
            contentType: 'application/json',
            data:  JSON.stringify({ urlwebhook :settings.webhookUrl }),
            success: function (data) {
                $("#webhookUrl").text(data);
                console.log('webhook created successfully.');
            },
            error: function (errorThrown) {
                $("#webhookUrl").text("Error");
                console.log('error', errorThrown);
            }
        });

    });

    saveEvent.notifySuccess();
});
microsoftTeams.settings.registerOnRemoveHandler(function (removeEvent) {
    var removeCalled = true;
});"

我在连接器开发人员仪表板的有效域中有“ https://mydomain.azurewebsites.net/Connector/Setup.cshtml ”我不知道为什么它不起作用谢谢您的帮助

更新 1 在“保存”的第一个 clic 上,有错误,但在第二个 clic 上它正在工作,我可以向 webhook 发送消息

更新解决方案 我找到了解决方案 saveEvent.notifySucess(); 必须在ajax调用的成功函数中,像这样:

$.ajax({
        url: 'Save',
        type: 'POST',
        contentType: 'application/json',
        data:  JSON.stringify({ urlwebhook :settings.webhookUrl }),
        success: function (data) {
            $("#webhookUrl").text(data);
            console.log('webhook created successfully.');
            saveEvent.notifySuccess();
        },
        error: function (errorThrown) {
            $("#webhookUrl").text("Error");
            console.log('error', errorThrown);
            saveEvent.notifyFailure("error");
        }
    });

您还需要像这样在 RemoveHandler 中放置一个 notifySuccess :

microsoftTeams.settings.registerOnRemoveHandler(function (removeEvent) {
    var removeCalled = true;
    removeEvent.notifySuccess();
});

标签: c#razormicrosoft-teams

解决方案


推荐阅读