Сообщение Proactive Teams - trustServiceUrl Аргумент url должен иметь строковый тип. - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь отправить сообщение проактивной команды в существующий диалог с помощью узла.

Установил бота для пользователя в соответствии с методом, описанным в https://docs.microsoft.com/en-us/microsoftteams/platform/graph-api/proactive-bots-and-messages/graph-proactive-bots-and-messages?tabs=javascript, а также получил беседа chatId.

Моя цель - создать приложение в стиле «консоли», в котором я могу sh проактивное сообщение для этого разговора, но я застрял с передачей действительного URL-адреса в метод trustServiceUrl и наблюдаю за следующая ошибка:

TypeError [ERR_INVALID_ARG_TYPE]: аргумент «url» должен быть строкового типа. Полученный тип undefined

Пример кода:

const path = require('path');
const botbuilder = require('botbuilder');
const ENV_FILE = path.join(__dirname, '.env');
require('dotenv').config({ path: ENV_FILE });

const { MicrosoftAppCredentials } = require('botframework-connector');

const adapter = new botbuilder.BotFrameworkAdapter({
    appId: process.env.MicrosoftAppId,
    appPassword: process.env.MicrosoftAppPassword
});

async function Main() {
    var conversationRef = '[MY TEAMS CONVERSATION REFERENCE]';
    let response = await sendMessage(conversationRef);
}

function sendMessage(conversationRef) {
    var promise = new Promise(function(resolve, reject) {
        adapter.continueConversation(conversationRef, async turnContext => {
            const serviceUrl = 'https://smba.trafficmanager.net/uk/';
            MicrosoftAppCredentials.trustServiceUrl(serviceUrl);
            await turnContext.sendActivity('proactive hello');
        });
    });

    return promise;
}

Main();

Я знаю, что упускаю из виду что-то очевидное, но застрял с указанной выше ошибкой - оцените любое управление.

Спасибо!

След ниже:

(node:16504) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "url" argument must be of type string. Received type undefined
    at validateString (internal/validators.js:118:11)
    at Url.parse (url.js:159:3)
    at Object.urlParse [as parse] (url.js:154:13)
    at Function.trustServiceUrl (C:\dev\demo\botFramework\node_modules\botframework-connector\lib\auth\appCredentials.js:68:25)
    at BotFrameworkAdapter.<anonymous> (C:\dev\demo\botFramework\node_modules\botbuilder\lib\botFrameworkAdapter.js:153:57)
    at Generator.next (<anonymous>)
    at C:\dev\demo\botFramework\node_modules\botbuilder\lib\botFrameworkAdapter.js:14:71
    at new Promise (<anonymous>)
    at __awaiter (C:\dev\demo\botFramework\node_modules\botbuilder\lib\botFrameworkAdapter.js:10:12)
    at BotFrameworkAdapter.continueConversation (C:\dev\demo\botFramework\node_modules\botbuilder\lib\botFrameworkAdapter.js:139:16)
(node:16504) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:16504) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
PS C:\dev\demo\botFramework>

Ответы [ 2 ]

0 голосов
/ 21 августа 2020

См. Комментарии от @mdrichardson - моя ссылка была плохо сформирована и не включала все необходимые свойства.

0 голосов
/ 08 августа 2020

Убедитесь, что ваш conversationRef имеет свойство serviceUrl. Скорее всего, тот же, что вы установили для trustServiceUrl()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...