登录
首页 >  Golang >  Go问答

使用 Go 驱动程序在 Mattermost 中通过机器人发送私人消息的方法

来源:stackoverflow

时间:2024-02-22 21:03:17 366浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《使用 Go 驱动程序在 Mattermost 中通过机器人发送私人消息的方法》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

使用 mattermost 的 go 驱动程序,是否可以从机器人帐户向用户发送直接消息?我一直在尝试下面的这种方法,但我不断收到错误:“您没有适当的权限。”我已经多次检查了机器人的权限,它应该能够发送消息。我已经确认它也可以将消息发送到公共渠道,那么我做错了什么?

package main

import (
    "github.com/mattermost/mattermost-server/v5/model"
)

func main() {

    client := model.NewAPIv4Client("https://server.name.here")
    client.SetToken("Bots-Token-Here")
    bot, resp := client.GetUserByUsername("NameOf.BotSendingMessage", "")
    if resp.Error != nil {
        return
    }

    user, resp := client.GetUserByUsername("UsernameOf.UserToMessage", "")
    if resp.Error != nil {
        return
    }

    channelId := model.GetDMNameFromIds(bot.Id, user.Id)

    post := &model.Post{}
    post.ChannelId = channelId
    post.Message = "some message"

    if _, resp := client.CreatePost(post); resp.Error != nil {
        return
    }

}

正确答案


这是可能的,但您必须创建频道,而不仅仅是频道 id。执行此操作的代码片段如下所示:

channel, resp := client.createdirectchannel("firstid", "secondid")
if resp.error != nil {
    return
}

可以在此处查看代码的工作版本:

package main

import (
    "github.com/mattermost/mattermost-server/v5/model"
)

func main() {

    client := model.NewAPIv4Client("https://server.name.here")
    client.SetToken("Bots-Token-Here")
    bot, resp := client.GetUserByUsername("NameOf.BotSendingMessage", "")
    if resp.Error != nil {
        return
    }

    user, resp := client.GetUserByUsername("UsernameOf.UserToMessage", "")
    if resp.Error != nil {
        return
    }

    channel, resp := client.CreateDirectChannel(bot.Id, user.Id)
    if resp.Error != nil {
        return
    }
    post := &model.Post{}
    post.ChannelId = channel.Id
    post.Message = "some message"

    if _, resp := client.CreatePost(post); resp.Error != nil {
        return
    }

}

今天关于《使用 Go 驱动程序在 Mattermost 中通过机器人发送私人消息的方法》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>