예제 #1
0
        private async Task PhotoReceivedAsync(IDialogContext context, IAwaitable <IEnumerable <Attachment> > argument)
        {
            var message = await argument;

            if (message != null && message.Any())
            {
                var attachment = message.First();
                using (HttpClient httpClient = new HttpClient())
                {
                    // Skype & MS Teams attachment URLs are secured by a JwtToken, so we need to pass the token from our bot.
                    if ((context.Activity.ChannelId.Equals("skype", StringComparison.InvariantCultureIgnoreCase) || context.Activity.ChannelId.Equals("msteams", StringComparison.InvariantCultureIgnoreCase)) &&
                        new Uri(attachment.ContentUrl).Host.EndsWith("skype.com"))
                    {
                        var token = await new MicrosoftAppCredentials().GetTokenAsync();
                        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                    }

                    var responseMessage = await httpClient.GetAsync(attachment.ContentUrl);

                    var contentLenghtBytes = responseMessage.Content.Headers.ContentLength;
                    var data    = responseMessage.Content.ReadAsByteArrayAsync().Result;
                    var newname = Guid.NewGuid().ToString().Replace("-", "_");
                    var res     = await Upload(this.StyleId, data);

                    this.ImageSel = res;
                }
            }


            await this.EnsurePhoto(context);
        }
예제 #2
0
 public async Task StartAsync(IDialogContext context)
 {
     this.ImageSel = null;
     await this.EnsurePhoto(context);
 }