Bots 机器人是否可能在Slack中有一个动态名称?

Bots 机器人是否可能在Slack中有一个动态名称?,bots,slack-api,Bots,Slack Api,是否可以在slack中创建一个具有动态名称的bot,或者根据给定的情况谁以不同的名称发布?是的,下面是一个perl示例,它使用主机名和pid生成bot的名称 sub slack { my ( $message ) = @_; use LWP::UserAgent; use HTTP::Request; use Sys::Hostname; my $uri = "https://hooks.slack.com/services/" . "this-is-your-a

是否可以在slack中创建一个具有动态名称的bot,或者根据给定的情况谁以不同的名称发布?

是的,下面是一个perl示例,它使用主机名和pid生成bot的名称

sub slack {
  my ( $message ) = @_;

  use LWP::UserAgent;
  use HTTP::Request;
  use Sys::Hostname;

  my $uri = "https://hooks.slack.com/services/"
    . "this-is-your-api-key";

  my $json = '{"channel": "#example_channel", '
    . '"username": "' . hostname . "." . $$ . '", '
    . '"text": "' . $message . '", '
    . '"icon_emoji": ":trollface:"}' ;

  my $request = HTTP::Request->new( 'POST', $uri );
  $request->header( 'Content-Type' => 'application/json' );
  $request->content( $json );

  my $agent = LWP::UserAgent->new;

  my $result = $agent->request( $request );
}

当通过传入webhook发送消息时,您可以选择发送参数username,该参数指定将出现的名称,即

{
    "text": "the message i'm sending",
    "username": "whatever-name-you-want"
}
您还可以使用icon_url参数在每条消息上指定不同的图标,该参数的值为所需图像的url是的,这是可能的

Javascript示例:

    await client.chat.postMessage({
        channel: "C12345",
        text: "Random message",
        username: "John Doe",
        icon_url: "https://upload.wikimedia.org/wikipedia/commons/1/12/Profile_avatar_generic.png"
    });
更全面的实现可能类似于:

const triggerRegExp = new RegExp('^(Hello).*', 'i');

app.message(triggerRegExp, async (payload) => {
    ({ message, client } = payload);

    await client.chat.postMessage({
        channel: message.channel,
        text: "Random message",
        username: "John Doe",
        icon_url: "https://upload.wikimedia.org/wikipedia/commons/1/12/Profile_avatar_generic.png"
    });
});