【发布时间】:2021-01-14 16:08:54
【问题描述】:
我正在使用 ms graph,我需要与 ms 团队集成。在一种情况下,我必须向包含频道提及 (@) 的频道发送消息。目前我已经找到了如何使用 java 标记特定用户,但我不知道如何提及整个频道。在 ms 图中这样做是可能的,如果是的话怎么做?
更具体地说,这里是一个例子。假设我有一个名为 TestTeam 的团队,并且该团队有一个名为 testChannel 的频道。我需要发送一条包含@testChannel 的消息,并向该频道中的每个人发送通知。
同样在 slack api 中,我可以通过在消息中使用“”来执行此操作。
这是我用来标记用户的代码:
static void send_message(String text, String mentionName, String channelName, String teamName, String accessToken) {
ensureGraphClient(accessToken);
Team team = getTeam(accessToken, teamName);
Channel channel = getChannel(accessToken, channelName, team);
User user = getUser(accessToken, mentionName);
if (userInChannel(user, team, channel)) {
ChatMessage chatMessage = new ChatMessage();
ItemBody body = new ItemBody();
body.contentType = BodyType.HTML;
body.content = String.format("%s. <at id=\"1\">%s</at> ", text, mentionName);
chatMessage.body = body;
ChatMessageMention m = new ChatMessageMention();
m.id = 1;
IdentitySet st = new IdentitySet();
Identity ide = new Identity();
ide.id = user.id;
ide.displayName = user.displayName;
st.user = ide;
m.mentioned = st;
m.mentionText = mentionName;
List<ChatMessageMention> cmmt = new LinkedList<>();
cmmt.add(m);
chatMessage.mentions = cmmt;
graphClient.teams(team.id).channels(channel.id).messages()
.buildRequest()
.post(chatMessage);
}
}
我也尝试过类似的方法来标记频道,但没有奏效:
body.contentType = BodyType.HTML;
body.content = String.format("%s. <at id=\"1\">%s</at> ", text, "myChannel");
chatMessage.body = body;
ChatMessageMention m = new ChatMessageMention();
m.id = 1;
IdentitySet st = new IdentitySet();
Identity ide = new Identity();
ide.id = "19%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%40thread.tacv2";
ide.displayName = "myChannel";
st.user = ide;
m.mentioned = st;
m.mentionText = "myChannel";
List<ChatMessageMention> cmmt = new LinkedList<>();
cmmt.add(m);
chatMessage.mentions = cmmt;
graphClient.teams(team.id).channels(channel.id).messages()
.buildRequest()
.post(chatMessage);
【问题讨论】:
-
那个频道是团队中的还是 slack 或者我们在谈论什么样的频道
-
我说的是女士团队中的频道
-
您可能想为您的问题提供更多上下文,最好包括一些代码示例。这会给你更好的答案。
-
当然,让我编辑我的帖子
-
@Pantelisy 你为什么不发布你的代码,到那时你尝试了什么,如果有的话?