Microsoft Teams: How to send a Message/Card to a User from an external App without an Bot












0















we have an external ASP.NET 4.7 App (in Azure App Service), which should send Messages/Cards to one specific User in Teams (without an Bot).



I managed to send Cards to Channels via the Connector/WebHook, but cannot target an specific User.



How can i do this / which Services are needed?



please as simple as possible :-)



thank you



==========================



update: Sample Code:



Private Shared Sub SendToTeams(ChannelPath As AppSettingsKey, Card As TeamsCard)

If String.IsNullOrWhiteSpace(ChannelPath) Then Return

Dim Channel = AppSettings.GetAppSetting(ChannelPath)
If String.IsNullOrWhiteSpace(Channel) Then Return

Dim ChannelWebHook = "https://outlook.office.com"

Dim Client = New RestClient(ChannelWebHook)

Dim Req = New RestRequest(Method.POST) With {
.Resource = Channel,
.RequestFormat = DataFormat.Json
}

Dim JSON = Card.SaveJSON(False)

Req.AddParameter("application/json; charset=utf-8", JSON, ParameterType.RequestBody)

Dim Erg = Client.Execute(Req)

Logger.Info("Teams:", Erg.StatusCode)
End Sub


And some Helpers:



Friend Class TeamsCard
<JsonProperty(PropertyName:="@context")> Public Property context As String = "https://schema.org/extensions"
<JsonProperty(PropertyName:="@type")> Public Property type As String = "MessageCard"
Public Property themeColor As String = "ff6100"
Public Property title As String = "Title"
Public Property summary As String = "Summary"
Public Property text As String = "Text"
Public Property potentialAction As New List(Of TeamsCardAction)
End Class


Friend Class TeamsCardAction
<JsonProperty(PropertyName:="@type")> Public Property type As String = "OpenUri"
Public Property name As String = "ButtonText"
Public Property targets As New List(Of TeamsCardButtonTarget)
Public Sub New(Text As String, URI As String)
name = Text
targets.Add(New TeamsCardButtonTarget With {.uri = URI})
End Sub
End Class


Friend Class TeamsCardButtonTarget
Public Property os As String = "default"
Public Property uri As String = "https://google.com"
End Class









share|improve this question

























  • Can you post your current code?

    – Matthew Evans
    2 days ago
















0















we have an external ASP.NET 4.7 App (in Azure App Service), which should send Messages/Cards to one specific User in Teams (without an Bot).



I managed to send Cards to Channels via the Connector/WebHook, but cannot target an specific User.



How can i do this / which Services are needed?



please as simple as possible :-)



thank you



==========================



update: Sample Code:



Private Shared Sub SendToTeams(ChannelPath As AppSettingsKey, Card As TeamsCard)

If String.IsNullOrWhiteSpace(ChannelPath) Then Return

Dim Channel = AppSettings.GetAppSetting(ChannelPath)
If String.IsNullOrWhiteSpace(Channel) Then Return

Dim ChannelWebHook = "https://outlook.office.com"

Dim Client = New RestClient(ChannelWebHook)

Dim Req = New RestRequest(Method.POST) With {
.Resource = Channel,
.RequestFormat = DataFormat.Json
}

Dim JSON = Card.SaveJSON(False)

Req.AddParameter("application/json; charset=utf-8", JSON, ParameterType.RequestBody)

Dim Erg = Client.Execute(Req)

Logger.Info("Teams:", Erg.StatusCode)
End Sub


And some Helpers:



Friend Class TeamsCard
<JsonProperty(PropertyName:="@context")> Public Property context As String = "https://schema.org/extensions"
<JsonProperty(PropertyName:="@type")> Public Property type As String = "MessageCard"
Public Property themeColor As String = "ff6100"
Public Property title As String = "Title"
Public Property summary As String = "Summary"
Public Property text As String = "Text"
Public Property potentialAction As New List(Of TeamsCardAction)
End Class


Friend Class TeamsCardAction
<JsonProperty(PropertyName:="@type")> Public Property type As String = "OpenUri"
Public Property name As String = "ButtonText"
Public Property targets As New List(Of TeamsCardButtonTarget)
Public Sub New(Text As String, URI As String)
name = Text
targets.Add(New TeamsCardButtonTarget With {.uri = URI})
End Sub
End Class


Friend Class TeamsCardButtonTarget
Public Property os As String = "default"
Public Property uri As String = "https://google.com"
End Class









share|improve this question

























  • Can you post your current code?

    – Matthew Evans
    2 days ago














0












0








0








we have an external ASP.NET 4.7 App (in Azure App Service), which should send Messages/Cards to one specific User in Teams (without an Bot).



I managed to send Cards to Channels via the Connector/WebHook, but cannot target an specific User.



How can i do this / which Services are needed?



please as simple as possible :-)



thank you



==========================



update: Sample Code:



Private Shared Sub SendToTeams(ChannelPath As AppSettingsKey, Card As TeamsCard)

If String.IsNullOrWhiteSpace(ChannelPath) Then Return

Dim Channel = AppSettings.GetAppSetting(ChannelPath)
If String.IsNullOrWhiteSpace(Channel) Then Return

Dim ChannelWebHook = "https://outlook.office.com"

Dim Client = New RestClient(ChannelWebHook)

Dim Req = New RestRequest(Method.POST) With {
.Resource = Channel,
.RequestFormat = DataFormat.Json
}

Dim JSON = Card.SaveJSON(False)

Req.AddParameter("application/json; charset=utf-8", JSON, ParameterType.RequestBody)

Dim Erg = Client.Execute(Req)

Logger.Info("Teams:", Erg.StatusCode)
End Sub


And some Helpers:



Friend Class TeamsCard
<JsonProperty(PropertyName:="@context")> Public Property context As String = "https://schema.org/extensions"
<JsonProperty(PropertyName:="@type")> Public Property type As String = "MessageCard"
Public Property themeColor As String = "ff6100"
Public Property title As String = "Title"
Public Property summary As String = "Summary"
Public Property text As String = "Text"
Public Property potentialAction As New List(Of TeamsCardAction)
End Class


Friend Class TeamsCardAction
<JsonProperty(PropertyName:="@type")> Public Property type As String = "OpenUri"
Public Property name As String = "ButtonText"
Public Property targets As New List(Of TeamsCardButtonTarget)
Public Sub New(Text As String, URI As String)
name = Text
targets.Add(New TeamsCardButtonTarget With {.uri = URI})
End Sub
End Class


Friend Class TeamsCardButtonTarget
Public Property os As String = "default"
Public Property uri As String = "https://google.com"
End Class









share|improve this question
















we have an external ASP.NET 4.7 App (in Azure App Service), which should send Messages/Cards to one specific User in Teams (without an Bot).



I managed to send Cards to Channels via the Connector/WebHook, but cannot target an specific User.



How can i do this / which Services are needed?



please as simple as possible :-)



thank you



==========================



update: Sample Code:



Private Shared Sub SendToTeams(ChannelPath As AppSettingsKey, Card As TeamsCard)

If String.IsNullOrWhiteSpace(ChannelPath) Then Return

Dim Channel = AppSettings.GetAppSetting(ChannelPath)
If String.IsNullOrWhiteSpace(Channel) Then Return

Dim ChannelWebHook = "https://outlook.office.com"

Dim Client = New RestClient(ChannelWebHook)

Dim Req = New RestRequest(Method.POST) With {
.Resource = Channel,
.RequestFormat = DataFormat.Json
}

Dim JSON = Card.SaveJSON(False)

Req.AddParameter("application/json; charset=utf-8", JSON, ParameterType.RequestBody)

Dim Erg = Client.Execute(Req)

Logger.Info("Teams:", Erg.StatusCode)
End Sub


And some Helpers:



Friend Class TeamsCard
<JsonProperty(PropertyName:="@context")> Public Property context As String = "https://schema.org/extensions"
<JsonProperty(PropertyName:="@type")> Public Property type As String = "MessageCard"
Public Property themeColor As String = "ff6100"
Public Property title As String = "Title"
Public Property summary As String = "Summary"
Public Property text As String = "Text"
Public Property potentialAction As New List(Of TeamsCardAction)
End Class


Friend Class TeamsCardAction
<JsonProperty(PropertyName:="@type")> Public Property type As String = "OpenUri"
Public Property name As String = "ButtonText"
Public Property targets As New List(Of TeamsCardButtonTarget)
Public Sub New(Text As String, URI As String)
name = Text
targets.Add(New TeamsCardButtonTarget With {.uri = URI})
End Sub
End Class


Friend Class TeamsCardButtonTarget
Public Property os As String = "default"
Public Property uri As String = "https://google.com"
End Class






asp.net api webhooks microsoft-teams






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 days ago







Christoph

















asked 2 days ago









ChristophChristoph

52511020




52511020













  • Can you post your current code?

    – Matthew Evans
    2 days ago



















  • Can you post your current code?

    – Matthew Evans
    2 days ago

















Can you post your current code?

– Matthew Evans
2 days ago





Can you post your current code?

– Matthew Evans
2 days ago












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54252789%2fmicrosoft-teams-how-to-send-a-message-card-to-a-user-from-an-external-app-witho%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54252789%2fmicrosoft-teams-how-to-send-a-message-card-to-a-user-from-an-external-app-witho%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Liquibase includeAll doesn't find base path

How to use setInterval in EJS file?

Petrus Granier-Deferre