小编Dam*_*vic的帖子

向 Teams 中的频道发送主动消息

所以,

我进行了广泛的搜索,阅读了我能找到的关于该主题的所有内容,但我仍然没有做到这一点。我已设法向用户发送主动消息、回复团队中的主题等,但我无法在团队频道中发送主动消息(创建新帖子)。

是否有可用的示例(我找不到任何示例)?NodeJS 的 MS Docs 似乎显示了向团队中的每个用户发送消息的示例,但没有显示通道本身。

我探索了源代码,并channelData硬编码到nullinside botFrameworkAdapter.js,这只会增加混乱。

所以,基本代码是:

const builder = require('botbuilder');
const adapter = new builder.BotFrameworkAdapter({
    appId: 'XXX',
    appPassword: 'YYY'
});

const conversation = {
  channelData: {
    //I have all this (saved from event when bot joined the Team)
  },
  ...
  // WHAT THIS OBJECT NEEDS TO BE TO SEND A SIMPLE "HELLO" TO A CHANNEL?
  // I have all the d
};

adapter.createConversation(conversation, async (turnContext) => {
  turnContext.sendActivity('HELLO'); //This may or …
Run Code Online (Sandbox Code Playgroud)

node.js botframework microsoft-teams

6
推荐指数
1
解决办法
1575
查看次数

通过Amazon SQS将压缩文本从PHP发送到NodeJS

我似乎停留在通过Amazon SQS将压缩消息从PHP发送到NodeJS上。

在PHP方面,我有:

$SQS->sendMessage(Array(
    'QueueUrl'    => $queueUrl,
    'MessageBody' => 'article',
    'MessageAttributes' => Array(
        'json' => Array(
            'BinaryValue' => bzcompress(json_encode(Array('type'=>'article','data'=>$vijest))),
            'DataType' => 'Binary'
        )
    )
));
Run Code Online (Sandbox Code Playgroud)

注意1:我也尝试将压缩数据直接放入消息中,但是该库给我一个错误,其中包含一些无效的字节数据

在节点方面,我有:

body = decodeBzip(message.MessageAttributes.json.BinaryValue);
Run Code Online (Sandbox Code Playgroud)

消息来自sqs.receiveMessage()调用,该部分有效,因为它适用于原始(未压缩的消息)

我得到的是TypeError:格式不正确

我也尝试使用:

PHP-节点

gzcompress()-zlib.inflateraw()

gzdeflate()-zlib.inflate()

gzencode()-zlib.gunzip()

这些对中的每对都给了我相同错误的版本(本质上,输入数据是错误的)

考虑到所有这些,我开始怀疑消息传输中存在错误

我究竟做错了什么?

编辑1:似乎错误发生在传输中,因为php中的bin2hex()和Node中的.toString('hex')返回完全不同的值。似乎PHP中的Amazon SQS API使用base64传输BinaryAttribute,但是Node无法对其进行解码。我设法通过关闭Amazon aws配置文件中的自动转换,然后在node中手动解码base64来部分解码它,但是它仍然无法解码。

编辑2:通过在php端使用base64_encode(),并将base64作为messageBody发送(不使用MessageAttributes),我设法完成了同样的事情。在节点侧,我使用了新的Buffer(messageBody,'base64'),然后在其上使用了解码Bzip。一切正常,但是我仍然想知道为什么MessageAttribute无法正常工作。当前的base64增加了开销,我喜欢按预期使用服务,而不是通过变通办法。

php zlib amazon-sqs node.js

5
推荐指数
1
解决办法
1761
查看次数

标签 统计

node.js ×2

amazon-sqs ×1

botframework ×1

microsoft-teams ×1

php ×1

zlib ×1