iT邦幫忙

1

Line bot php sdk傳送flex message方式

小弟為Line@使用的新手,但是想要用line php sdk傳送由"flex message simulator"產生的json程式碼,請問各位可以幫一把嗎?

我也嘗試新建一個關鍵字回覆的flex.php,但是那碼不知道該如何寫,是把json改成php array還是直接帶入呢?

1 個回答

1
最佳解答

可以參考 GitHub 上 SendFlexTest.php 裡面的用法

使用方式主要分為兩種 RawMessageBuilderFlexMessageBuilder

  • RawMessageBuilder
new RawMessageBuilder(
    [
        'type' => 'flex',
        'altText' => 'alt test',
        'contents' => [
            'type' => 'bubble',
            'body' => [
                'type' => 'box',
                'layout' => 'vertical',
                'contents' => [
                    [
                        'type' => 'text',
                        'text' => 'Hello,'
                    ],
                    [
                        'type' => 'text',
                        'text' => 'World!'
                    ]
...
  • FlexMessageBuilder
FlexMessageBuilder::builder()
    ->setAltText('alt test')
    ->setContents(
        BubbleContainerBuilder::builder()
            ->setBody(
                BoxComponentBuilder::builder()
                    ->setLayout(ComponentLayout::VERTICAL)
                    ->setContents([
                        new TextComponentBuilder('Hello,'),
                        new TextComponentBuilder('World!')
                    ])
            )
    )
...

選一個喜歡的即可。


FlexMessageConvert

如果喜歡第二種,我寫了一個轉換器,可以直接把 JSON 轉成 PHP Code。

線上測試

JSFiddle 網址:
https://jsfiddle.net/q95z6t3e

結果

https://ithelp.ithome.com.tw/upload/images/20200906/20106865wuyNfUKcox.jpg

GitHub 網址:

https://github.com/fysh711426/FlexMessageConvert

不過這原來是 C# 版的,臨時改成 PHP 還沒有真正使用過,可能會有一些 Bug。

/images/emoticon/emoticon16.gif

我要發表回答

立即登入回答