-2

First of all, its even possible? I have been trying Microsoft.Graph and Microsoft.Bot.Connector I dont want to send message on channel, i want it as private chat Some code example:

private readonly string appId = "id";
private readonly string appPassword = "pass";

public async Task<IActionResult> SendMessage(string userId ="id-test", string message ="test")
{
    var connector = new ConnectorClient(new Uri("https://smba.trafficmanager.net/pl-pl/"), new MicrosoftAppCredentials(appId, appPassword));

    var conversationParameters = new ConversationParameters
    {
        Bot = new ChannelAccount(appId),
        Members = new List<ChannelAccount>
        {
            new ChannelAccount(userId)
        },
        ChannelData = new TeamsChannelData
        {
            Tenant = new TenantInfo
            {
                Id = "tent-id"
            }
        }
    };

    var conversationResource = await connector.Conversations.CreateConversationAsync(conversationParameters);
    var conversationId = conversationResource.Id;

    var messageActivity = new Microsoft.Bot.Schema.Activity
    {
        Type = ActivityTypes.Message,
        From = new ChannelAccount(appId),
        Text = message,
        ChannelData = new TeamsChannelData
        {
            Tenant = new TenantInfo
            {
                Id = "tent-id"
            }
        }
    };

    await connector.Conversations.SendToConversationAsync(conversationId, messageActivity);

    return Ok();
}

Or

private const string ClientId = "id";
    private const string ClientSecret = "cs";
    private const string TenantId = "id";


    [HttpPost]
    public async Task<ActionResult> SendMessage(string recipientId = "id", string message = "test")
    {
        IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
            .Create(ClientId)
            .WithClientSecret(ClientSecret)
            .WithRedirectUri("https://localhost:44333/Test/SignInComplete")
            .WithAuthority($"https://login.microsoftonline.com/{TenantId}")
            .Build();

        string[] scopes = new string[] { "User.Read", "Chat.ReadWrite" }; 

        var authResult = await confidentialClientApplication.AcquireTokenByAuthorizationCode(scopes, "WSTAW_KOD_AUTORYZACJI").ExecuteAsync(); 

        GraphServiceClient graphClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
        {
            requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", authResult.AccessToken);
            return Task.CompletedTask;
        }));

        var chatMessage = new ChatMessage
        {
            Body = new ItemBody
            {
                Content = message
            }
        };

        try
        {
            await graphClient.Users[recipientId].Chats["id_chat"].Messages
                .Request()
                .AddAsync(chatMessage);

            return Content(" ");
        }
        catch (ServiceException ex)
        {
            return Content($" : {ex.Message}");
        }
    }

Any Ideas or other sugestions? /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters /extra letters

Kamil
  • 1
  • 1
  • 2
    If you find you have to pad-out your question to a minimum length perhaps consider you've not put enough effort into explaining your question. – Stu Jun 28 '23 at 12:01

1 Answers1

0

I posted an answer yesterday that is relevant to you as well - please see my answer to this question: How to Send Large Text Messages to a User or Channel in Microsoft Teams Using Teams JS SDK v2?

Hilton Giesenow
  • 9,809
  • 2
  • 10
  • 24