Exemplo n.º 1
0
        public static async Task SendTemplates(
            [ActivityTrigger] DurableActivityContext context)
        {
            var input = context.GetInput <(string, List <string>)>();

            // テンプレート作成処理
            await lineMessagingClient.ReplyMessageAsync(input.Item1,
                                                        new List <ISendMessage>
            {
                FlexMessage.CreateBubbleMessage("セリフをタップしてね").SetBubbleContainer(
                    new BubbleContainer()
                    .SetHeader(BoxLayout.Horizontal)
                    .AddHeaderContents(new TextComponent
                {
                    Text    = "セリフをタップしてね",
                    Margin  = Spacing.Xs,
                    Size    = ComponentSize.Sm,
                    Align   = Align.Center,
                    Gravity = Gravity.Bottom,
                    Weight  = Weight.Bold
                })
                    .SetFooter(new BoxComponent(BoxLayout.Vertical)
                {
                    Spacing  = Spacing.Md, Flex = 0,
                    Contents = input.Item2.Select(t => new ButtonComponent {
                        Action = new MessageTemplateAction(t, t)
                    }).ToList <IFlexComponent>()
                }))
            });
        }
        private async Task ReplyFlexWithObjectInitializer(MessageEvent ev)
        {
            var restrant = CreateRestrantWithObjectInitializer();
            var news     = CreateNewsWithExtensions();
            var receipt  = CreateReceiptWithExtensions();

            var bubble = new FlexMessage("Bubble Message")
            {
                Contents = restrant
            };

            var carousel = new FlexMessage("Carousel Message")
            {
                Contents = new CarouselContainer()
                {
                    Contents = new BubbleContainer[]
                    {
                        restrant,
                        news,
                        receipt
                    }
                },
                QuickReply = new QuickReply(new[]
                {
                    new QuickReplyButtonObject(new CameraRollTemplateAction("CameraRoll")),
                    new QuickReplyButtonObject(new CameraTemplateAction("Camera")),
                    new QuickReplyButtonObject(new LocationTemplateAction("Location"))
                })
            };

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new FlexMessage[] { bubble, carousel });
        }
Exemplo n.º 3
0
        public async Task <IList <IRequestMessage> > GetReplyMessagesAsync()
        {
            var json = GetFlexTemplate();

            var msg = new FlexMessage(json);

            await Task.CompletedTask;

            return(new List <IRequestMessage>
            {
                msg
            });
        }
Exemplo n.º 4
0
        public async Task MulticastItemMessagesAsync(IList <ItemLookUpResult.Item> itemList)
        {
            int count = 0;
            List <ISendMessage> messageList = new List <ISendMessage>();

            while (count < itemList.Count)
            {
                messageList.Clear();

                // 한번에 보낼 수 있는 건 5개.
                for (int i = 0; i < 5; ++i)
                {
                    if (count >= itemList.Count)
                    {
                        break;
                    }

                    // 캐러셀 하나에는 10개까지...인데 그럼 한번에 50개 보낼 수 있는건가?
                    string altText = itemList[count].title;
                    if (count < itemList.Count - 1)
                    {
                        altText += " 외";
                    }
                    CarouselContainerFlexMessage carouselMessage = FlexMessage.CreateCarouselMessage(altText);

                    for (int j = 0; j < 10; ++j)
                    {
                        if (count >= itemList.Count)
                        {
                            break;
                        }

                        BubbleContainer container = itemList[count].ToBubbleContainer();
                        carouselMessage.AddBubbleContainer(container);

                        count++;
                    }

                    messageList.Add(carouselMessage);
                }

                if (messageList.Count > 0)
                {
                    await MulticastMessagesAsync(messageList);
                }
            }
        }
Exemplo n.º 5
0
        private async Task ReplyFlexWithMethodChaine(MessageEvent ev)
        {
            var restrant = CreateRestrantBubbleContainer();
            var news     = CreateNewsBubbleContainer();
            var receipt  = CreateReceiptBubbleContainer();

            var flex = FlexMessage.CreateCarouselMessage("Carousel Message")
                       .AddBubbleContainer(restrant)
                       .AddBubbleContainer(news)
                       .AddBubbleContainer(receipt)
                       .SetQuickReply(new QuickReply(new[]
            {
                new QuickReplyButtonObject(new CameraTemplateAction("Camera")),
                new QuickReplyButtonObject(new LocationTemplateAction("Location"))
            }));

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new[] { flex });
        }
        private async Task ReplyFlexWithExtensions(MessageEvent ev)
        {
            var restrant = CreateRestrantWithObjectInitializer();
            var news     = CreateNewsWithExtensions();
            var receipt  = CreateReceiptWithExtensions();

            var bubble = FlexMessage.CreateBubbleMessage("Bubble Message")
                         .SetBubbleContainer(restrant);

            var carousel = FlexMessage.CreateCarouselMessage("Carousel Message")
                           .AddBubbleContainer(restrant)
                           .AddBubbleContainer(news)
                           .AddBubbleContainer(receipt)
                           .SetQuickReply(new QuickReply(new[]
            {
                new QuickReplyButtonObject(new CameraTemplateAction("Camera")),
                new QuickReplyButtonObject(new LocationTemplateAction("Location"))
            }));

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new FlexMessage[] { bubble, carousel });
        }
Exemplo n.º 7
0
        private FlexMessage GetFlexMessage(List <Feature> rankList, int page, decimal latitude, decimal longitude, DateTime?updateTime)
        {
            var flexMessage = new FlexMessage($"口罩數量 {page}")
            {
                Contents = new BubbleContainer
                {
                    Body = new BoxComponent
                    {
                        Layout   = BoxLayout.Vertical,
                        Spacing  = Spacing.Md,
                        Contents = new List <IFlexComponent>
                        {
                            new TextComponent
                            {
                                Text   = $"口罩數量 {page}",
                                Size   = ComponentSize.Lg,
                                Weight = Weight.Bold,
                                Color  = "#000000"
                            },
                            new SeparatorComponent()
                        }
                    }
                }
            };

            var boxs = (flexMessage.Contents as BubbleContainer)
                       .Body.Contents;

            foreach (var item in rankList)
            {
                boxs.Add(new FixFlex.BoxComponent
                {
                    Layout      = BoxLayout.Vertical,
                    Spacing     = Spacing.Sm,
                    OffsetStart = "-2px",
                    Contents    = new List <IFlexComponent>
                    {
                        new BoxComponent
                        {
                            Layout   = BoxLayout.Horizontal,
                            Contents = new List <IFlexComponent>
                            {
                                new FixFlex.BoxComponent
                                {
                                    Layout       = BoxLayout.Vertical,
                                    PaddingStart = "5px",
                                    Spacing      = Spacing.Xs,
                                    Contents     = new List <IFlexComponent>
                                    {
                                        new TextComponent
                                        {
                                            Text     = item.properties.name,
                                            Weight   = Weight.Bold,
                                            Margin   = Spacing.Sm,
                                            Flex     = 0,
                                            Wrap     = true,
                                            MaxLines = 2,
                                            Size     = ComponentSize.Md,
                                            Color    = "#000000"
                                        },
                                        new TextComponent
                                        {
                                            Text   = $"[電話] {item.properties.phone}",
                                            Color  = "#928D8B",
                                            Size   = ComponentSize.Sm,
                                            Weight = Weight.Bold
                                        },
                                        new TextComponent
                                        {
                                            Text   = $"[口罩] 成人: {item.properties.mask_adult}、兒童: {item.properties.mask_child}",
                                            Size   = ComponentSize.Sm,
                                            Color  = "#000000",
                                            Weight = Weight.Bold
                                        },
                                        new TextComponent
                                        {
                                            Text     = $"[地址] {item.properties.address}",
                                            Size     = ComponentSize.Sm,
                                            Color    = "#928D8B",
                                            MaxLines = 2,
                                            Wrap     = true,
                                            Weight   = Weight.Bold
                                        }
                                    }
                                },
                                new FixFlex.BoxComponent
                                {
                                    Layout          = BoxLayout.Vertical,
                                    BackgroundColor = "#905C44",
                                    CornerRadius    = "3px",
                                    Margin          = Spacing.Sm,
                                    Width           = "40px",
                                    Height          = "35px",
                                    Flex            = 0,
                                    OffsetEnd       = "-0px",
                                    OffsetTop       = "30px",
                                    Contents        = new List <IFlexComponent>
                                    {
                                        new FixFlex.TextComponent
                                        {
                                            Text      = "地圖",
                                            Flex      = 0,
                                            Align     = Align.Center,
                                            Size      = ComponentSize.Sm,
                                            Color     = "#ffffff",
                                            OffsetTop = "8px",
                                            Weight    = Weight.Bold,
                                            Action    = new UriTemplateAction("action",
                                                                              $"https://www.google.com/maps/search/?api=1&query={item.geometry.coordinates[1]},{item.geometry.coordinates[0]}")
                                        }
                                    }
                                }
                            }
                        },
                        new SeparatorComponent()
                    }
                });
            }

            boxs.Add(new FixFlex.TextComponent
            {
                Text      = $"更新時間: {updateTime?.ToString("MM/dd HH:mm") ?? ""}",
                Size      = ComponentSize.Sm,
                Weight    = Weight.Bold,
                Color     = "#928D8B",
                Align     = Align.Start,
                OffsetTop = "5px"
            });

            flexMessage.QuickReply = new QuickReply
            {
                Items = new List <QuickReplyButtonObject>
                {
                    new QuickReplyButtonObject(
                        new LocationTemplateAction("查詢")),
                    new QuickReplyButtonObject(
                        new PostbackTemplateAction("重新整理",
                                                   $"type=search&page={page}&latitude={latitude}&longitude={longitude}")),
                    new QuickReplyButtonObject(
                        new PostbackTemplateAction("下一頁",
                                                   $"type=search&page={page+1}&latitude={latitude}&longitude={longitude}")),
                    new QuickReplyButtonObject(
                        new PostbackTemplateAction("口罩地圖",
                                                   $"type=map&page={page}&latitude={latitude}&longitude={longitude}"))
                }
            };

            return(flexMessage);
        }
Exemplo n.º 8
0
        private async Task ReplyFlexWithObjectInitializer(MessageEvent ev)
        {
            var flex = new FlexMessage("Restrant")
            {
                Contents = new BubbleContainer()
                {
                    Hero = new ImageComponent(url: "https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png")
                    {
                        Size        = ComponentSize.Full,
                        AspectRatio = AspectRatio._20_13,
                        AspectMode  = AspectMode.Cover,
                        Action      = new UriTemplateAction(null, "http://linecorp.com/")
                    },
                    Body = new BoxComponent(layout: BoxLayout.Vertical)
                    {
                        Contents = new IFlexComponent[] {
                            new TextComponent("Broun Cafe")
                            {
                                Weight = Weight.Bold,
                                Size   = ComponentSize.Xl
                            },
                            new BoxComponent(layout: BoxLayout.Baseline)
                            {
                                Margin   = Spacing.Md,
                                Contents = new IFlexComponent[]
                                {
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gray_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new TextComponent("4.0")
                                    {
                                        Size   = ComponentSize.Sm,
                                        Margin = Spacing.Md,
                                        Flex   = 0,
                                        Color  = "#999999"
                                    }
                                }
                            },
                            new BoxComponent(BoxLayout.Vertical)
                            {
                                Margin   = Spacing.Lg,
                                Spacing  = Spacing.Sm,
                                Contents = new IFlexComponent[]
                                {
                                    new BoxComponent(BoxLayout.Baseline)
                                    {
                                        Spacing  = Spacing.Sm,
                                        Contents = new IFlexComponent[]
                                        {
                                            new TextComponent("Place")
                                            {
                                                Size  = ComponentSize.Sm,
                                                Color = "#aaaaaa",
                                                Flex  = 1
                                            },
                                            new TextComponent("Miraina Tower, 4-1-6 Shinjuku, Tokyo")
                                            {
                                                Size  = ComponentSize.Sm,
                                                Wrap  = true,
                                                Color = "#666666",
                                                Flex  = 5
                                            }
                                        }
                                    }
                                }
                            },
                            new BoxComponent(BoxLayout.Baseline)
                            {
                                Spacing  = Spacing.Sm,
                                Contents = new IFlexComponent[]
                                {
                                    new TextComponent("Time")
                                    {
                                        Size  = ComponentSize.Sm,
                                        Color = "#aaaaaa",
                                        Flex  = 1
                                    },
                                    new TextComponent("10:00 - 23:00")
                                    {
                                        Size  = ComponentSize.Sm,
                                        Wrap  = true,
                                        Color = "#666666",
                                        Flex  = 5
                                    }
                                }
                            }
                        }
                    },
                    Footer = new BoxComponent(BoxLayout.Vertical)
                    {
                        Spacing  = Spacing.Sm,
                        Flex     = 0,
                        Contents = new IFlexComponent[]
                        {
                            new ButtonComponent(new UriTemplateAction("Call", "https://linecorp.com"))
                            {
                                Style  = ButtonStyle.Link,
                                Height = ButtonHeight.Sm
                            },
                            new ButtonComponent(new UriTemplateAction("WEBSITE", "https://linecorp.com"))
                            {
                                Style  = ButtonStyle.Link,
                                Height = ButtonHeight.Sm
                            },
                            new SpacerComponent(ComponentSize.Sm)
                        }
                    },
                    Styles = new BubbleStyles()
                    {
                        Body = new BlockStyle()
                        {
                            BackgroundColor = ColorCode.FromRgb(192, 200, 200),
                            Separator       = true,
                            SeparatorColor  = ColorCode.DarkViolet
                        },
                        Footer = new BlockStyle()
                        {
                            BackgroundColor = ColorCode.Ivory
                        }
                    }
                }
            };

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new[] { flex });
        }
Exemplo n.º 9
0
        public void RestrantTest()
        {
            FlexMessage flex = FlexMessage.CreateBubbleMessage("Restrant")
                               .SetBubbleContainer(new BubbleContainer()
                                                   .SetHero(imageUrl: "https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png",
                                                            flex: null,
                                                            margin: null,
                                                            align: null,
                                                            gravity: null,
                                                            size: ComponentSize.Full,
                                                            aspectRatio: AspectRatio._20_13,
                                                            aspectMode: AspectMode.Cover)
                                                   .SetHeroAction(new UriTemplateAction(null, "http://linecorp.com/"))
                                                   .SetBody(boxLayout: BoxLayout.Vertical,
                                                            flex: null,
                                                            spacing: null,
                                                            margin: null)
                                                   .AddBodyContents(new TextComponent("Broun Cafe")
            {
                Weight = Weight.Bold, Size = ComponentSize.Xl
            })
                                                   .AddBodyContents(new BoxComponent(BoxLayout.Baseline)
            {
                Margin = Spacing.Md
            }
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gray_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new TextComponent("4.0")
            {
                Size = ComponentSize.Sm, Margin = Spacing.Md, Flex = 0, Color = "#999999"
            }))
                                                   .AddBodyContents(new BoxComponent(BoxLayout.Vertical)
            {
                Margin = Spacing.Lg, Spacing = Spacing.Sm
            }
                                                                    .AddContents(new BoxComponent(BoxLayout.Baseline)
            {
                Spacing = Spacing.Sm
            }
                                                                                 .AddContents(new TextComponent("Place")
            {
                Size = ComponentSize.Sm, Color = "#aaaaaa", Flex = 1
            })
                                                                                 .AddContents(new TextComponent("Miraina Tower, 4-1-6 Shinjuku, Tokyo")
            {
                Size = ComponentSize.Sm, Wrap = true, Color = "#666666", Flex = 5
            }))
                                                                    .AddContents(new BoxComponent(BoxLayout.Baseline)
            {
                Spacing = Spacing.Sm
            }
                                                                                 .AddContents(new TextComponent("Time")
            {
                Size = ComponentSize.Sm, Color = "#aaaaaa", Flex = 1
            })
                                                                                 .AddContents(new TextComponent("10:00 - 23:00")
            {
                Size = ComponentSize.Sm, Wrap = true, Color = "#666666", Flex = 5
            })))
                                                   .SetFooter(new BoxComponent(BoxLayout.Vertical)
            {
                Spacing = Spacing.Sm, Flex = 0
            }
                                                              .AddContents(new ButtonComponent(new UriTemplateAction("Call", "https://linecorp.com", new AltUri("https://linecorp.com/en/")))
            {
                Style = ButtonStyle.Link, Height = ButtonHeight.Sm
            })
                                                              .AddContents(new ButtonComponent(new UriTemplateAction("WEBSITE", "https://linecorp.com", new AltUri("https://linecorp.com/en/")))
            {
                Style = ButtonStyle.Link, Height = ButtonHeight.Sm
            })
                                                              .AddContents(new SpacerComponent(ComponentSize.Sm))));

            var jsonA = JsonConvert.SerializeObject(flex);

            Console.WriteLine(jsonA);
            Console.WriteLine("-----------------------------------------------------");

            flex = new FlexMessage("Restrant")
            {
                Contents = new BubbleContainer()
                {
                    Hero = new ImageComponent(url: "https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png")
                    {
                        Size        = ComponentSize.Full,
                        AspectRatio = AspectRatio._20_13,
                        AspectMode  = AspectMode.Cover,
                        Action      = new UriTemplateAction(null, "http://linecorp.com/")
                    },
                    Body = new BoxComponent(layout: BoxLayout.Vertical)
                    {
                        Contents = new IFlexComponent[] {
                            new TextComponent("Broun Cafe")
                            {
                                Weight = Weight.Bold,
                                Size   = ComponentSize.Xl
                            },
                            new BoxComponent(layout: BoxLayout.Baseline)
                            {
                                Margin   = Spacing.Md,
                                Contents = new IFlexComponent[]
                                {
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gray_star_28.png")
                                    {
                                        Size = ComponentSize.Sm
                                    },
                                    new TextComponent("4.0")
                                    {
                                        Size   = ComponentSize.Sm,
                                        Margin = Spacing.Md,
                                        Flex   = 0,
                                        Color  = "#999999"
                                    }
                                }
                            },
                            new BoxComponent(BoxLayout.Vertical)
                            {
                                Margin   = Spacing.Lg,
                                Spacing  = Spacing.Sm,
                                Contents = new IFlexComponent[]
                                {
                                    new BoxComponent(BoxLayout.Baseline)
                                    {
                                        Spacing  = Spacing.Sm,
                                        Contents = new IFlexComponent[]
                                        {
                                            new TextComponent("Place")
                                            {
                                                Size  = ComponentSize.Sm,
                                                Color = "#aaaaaa",
                                                Flex  = 1
                                            },
                                            new TextComponent("Miraina Tower, 4-1-6 Shinjuku, Tokyo")
                                            {
                                                Size  = ComponentSize.Sm,
                                                Wrap  = true,
                                                Color = "#666666",
                                                Flex  = 5
                                            }
                                        }
                                    }
                                }
                            },
                            new BoxComponent(BoxLayout.Baseline)
                            {
                                Spacing  = Spacing.Sm,
                                Contents = new IFlexComponent[]
                                {
                                    new TextComponent("Time")
                                    {
                                        Size  = ComponentSize.Sm,
                                        Color = "#aaaaaa",
                                        Flex  = 1
                                    },
                                    new TextComponent("10:00 - 23:00")
                                    {
                                        Size  = ComponentSize.Sm,
                                        Wrap  = true,
                                        Color = "#666666",
                                        Flex  = 5
                                    }
                                }
                            }
                        }
                    },
                    Footer = new BoxComponent(BoxLayout.Vertical)
                    {
                        Spacing  = Spacing.Sm,
                        Flex     = 0,
                        Contents = new IFlexComponent[]
                        {
                            new ButtonComponent(new UriTemplateAction("Call", "https://linecorp.com"))
                            {
                                Style  = ButtonStyle.Link,
                                Height = ButtonHeight.Sm
                            },
                            new ButtonComponent(new UriTemplateAction("WEBSITE", "https://linecorp.com"))
                            {
                                Style  = ButtonStyle.Link,
                                Height = ButtonHeight.Sm
                            },
                            new SpacerComponent(ComponentSize.Sm)
                        }
                    }
                }
            };

            var jsonB = JsonConvert.SerializeObject(flex);

            Console.WriteLine(jsonB);
        }
Exemplo n.º 10
0
        public FlexMessageMain SetupFlexMessage(DataTable dt)
        {
            FlexMessageMain               main     = new FlexMessageMain();
            FlexMessage                   messages = new FlexMessage();
            FlexCarousel                  carousel = new FlexCarousel();
            FlexBubble                    bubble   = new FlexBubble();
            FlexBubbleHeader              header   = new FlexBubbleHeader();
            FlexBubbleHeaderContent       hcontent = new FlexBubbleHeaderContent();
            FlexBubbleHero                hero     = new FlexBubbleHero();
            FlexBubbleHeroAction          haction  = new FlexBubbleHeroAction();
            FlexBubbleBody                body     = new FlexBubbleBody();
            FlexBubbleBodyContent         bcontent = new FlexBubbleBodyContent();
            FlexBubbleFooter              footer   = new FlexBubbleFooter();
            FlexBubbleFooterContent       fcontent = new FlexBubbleFooterContent();
            FlexBubbleFooterContentAction fcaction = new FlexBubbleFooterContentAction();

            messages.type    = "flex";
            messages.altText = "Check Status Task";
            carousel.type    = "carousel";


            // for loop for script

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                // header = new FlexBubbleHeader();
                // hcontent = new FlexBubbleHeaderContent();
                hero     = new FlexBubbleHero();
                haction  = new FlexBubbleHeroAction();
                body     = new FlexBubbleBody();
                bubble   = new FlexBubble();
                bcontent = new FlexBubbleBodyContent();
                footer   = new FlexBubbleFooter();
                fcontent = new FlexBubbleFooterContent();
                fcaction = new FlexBubbleFooterContentAction();

                bubble.type = "bubble";
                //// header
                // header.type = "box";
                // header.layout = "horizontal";
                // header.position = "relative";
                // hcontent.contents = new List<object>();
                // hcontent.type = "text";
                // hcontent.text = "25";
                // hcontent.weight = "bold";
                // hcontent.size = "md";
                // hcontent.color = "#000000";
                // header.contents.Add(hcontent);
                // bubble.header = header;
                //// end header

                // hero
                haction.type  = "uri";
                haction.label = "Action";
                haction.uri   = "https://liff.line.me/1656450586-DzJv1LGJ/" + dt.Rows[i]["PageState"].ToString();// + dt.Rows[i]["ActionButton"].ToString(); // **
                // haction.uri = "https://liff.line.me/1656443050-Qg1Lgz9J/" + dt.Rows[i]["PageState"].ToString();// + dt.Rows[i]["ActionButton"].ToString(); // **
                hero.type        = "image";
                hero.url         = "https://www.nextcapital.co.th/uploads/06F1/files/" + dt.Rows[i]["imageName"].ToString(); // **
                hero.size        = "full";
                hero.aspectRatio = "20:13";
                hero.aspectMode  = "cover";
                hero.action      = haction;
                bubble.hero      = hero;
                // end hero

                // body
                body.type         = "box";
                body.layout       = "horizontal";
                body.spacing      = "md";
                bcontent.contents = new List <object>();
                bcontent.type     = "text";
                bcontent.text     = InformationMessage(dt.Rows[i]["TextStatus"].ToString(), dt.Rows[i]["cRecord"].ToString()); // **
                bcontent.weight   = "regular";
                bcontent.wrap     = true;
                bcontent.style    = "normal";
                body.contents.Add(bcontent);
                bubble.body = body;
                // end body

                // footer
                footer.type    = "box";
                footer.layout  = "horizontal";
                fcontent.type  = "button";
                fcaction.type  = "uri";
                fcaction.label = dt.Rows[i]["footerText"].ToString();                                            // **
                // fcaction.uri = "https://synergy.nextcapital.co.th/webtest/DACApps/" + dt.Rows[i]["ActionButton"].ToString(); // **
                fcaction.uri = "https://liff.line.me/1656450586-DzJv1LGJ/" + dt.Rows[i]["PageState"].ToString(); // + dt.Rows[i]["ActionButton"].ToString(); // **
                // fcaction.uri = "https://liff.line.me/1656443050-Qg1Lgz9J/" + dt.Rows[i]["PageState"].ToString();// + dt.Rows[i]["ActionButton"].ToString(); // **
                fcontent.action = fcaction;
                footer.contents.Add(fcontent);
                bubble.footer = footer;
                // end footer

                carousel.contents.Add(bubble);
            }
            messages.contents = carousel;

            main.messages.Add(messages);

            return(main);
        }
Exemplo n.º 11
0
        private async Task ReplyFlexWithMethodChane(MessageEvent ev)
        {
            FlexMessage flex = FlexMessage.CreateBubbleMessage("Restrant")
                               .SetBubbleContainer(new BubbleContainer()
                                                   .SetHero(imageUrl: "https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png",
                                                            flex: null,
                                                            margin: null,
                                                            align: null,
                                                            gravity: null,
                                                            size: ComponentSize.Full,
                                                            aspectRatio: AspectRatio._20_13,
                                                            aspectMode: AspectMode.Cover)
                                                   .SetHeroAction(new UriTemplateAction(null, "http://linecorp.com/"))
                                                   .SetBody(boxLayout: BoxLayout.Vertical,
                                                            flex: null,
                                                            spacing: null,
                                                            margin: null)
                                                   .AddBodyContents(new TextComponent("Broun Cafe")
            {
                Weight = Weight.Bold, Size = ComponentSize.Xl
            })
                                                   .AddBodyContents(new BoxComponent(BoxLayout.Baseline)
            {
                Margin = Spacing.Md
            }
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new IconComponent("https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gray_star_28.png")
            {
                Size = ComponentSize.Sm
            })
                                                                    .AddContents(new TextComponent("4.0")
            {
                Size = ComponentSize.Sm, Margin = Spacing.Md, Flex = 0, Color = "#999999"
            }))
                                                   .AddBodyContents(new BoxComponent(BoxLayout.Vertical)
            {
                Margin = Spacing.Lg, Spacing = Spacing.Sm
            }
                                                                    .AddContents(new BoxComponent(BoxLayout.Baseline)
            {
                Spacing = Spacing.Sm
            }
                                                                                 .AddContents(new TextComponent("Place")
            {
                Size = ComponentSize.Sm, Color = "#aaaaaa", Flex = 1
            })
                                                                                 .AddContents(new TextComponent("Miraina Tower, 4-1-6 Shinjuku, Tokyo")
            {
                Size = ComponentSize.Sm, Wrap = true, Color = "#666666", Flex = 5
            }))
                                                                    .AddContents(new BoxComponent(BoxLayout.Baseline)
            {
                Spacing = Spacing.Sm
            }
                                                                                 .AddContents(new TextComponent("Time")
            {
                Size = ComponentSize.Sm, Color = "#aaaaaa", Flex = 1
            })
                                                                                 .AddContents(new TextComponent("10:00 - 23:00")
            {
                Size = ComponentSize.Sm, Wrap = true, Color = "#666666", Flex = 5
            })))
                                                   .SetFooter(new BoxComponent(BoxLayout.Vertical)
            {
                Spacing = Spacing.Sm, Flex = 0
            }
                                                              .AddContents(new ButtonComponent(new UriTemplateAction("Call", "https://linecorp.com"))
            {
                Style = ButtonStyle.Link, Height = ButtonHeight.Sm
            })
                                                              .AddContents(new ButtonComponent(new UriTemplateAction("WEBSITE", "https://linecorp.com"))
            {
                Style = ButtonStyle.Link, Height = ButtonHeight.Sm
            })
                                                              .AddContents(new SpacerComponent(ComponentSize.Sm))));

            await MessagingClient.ReplyMessageAsync(ev.ReplyToken, new[] { flex });
        }