上一篇我們用 ImageMessage 來傳送圖片,這一篇我們要來實作傳送婚禮的前導預告片 (回想起來那時候我怎麼那麼閒XD ),我當時自己是從淘寶買一些婚禮的影片範本,買回來用 Adobe Effect 來改,或者是網路上可能會有一些免費的 template 也是可以拿來應用

上傳 Video

Line VideoMessage 一樣要透過URL來發送,我們一樣傳到 Imgur,就能產生一個網址,這是我當時所購買的影片範本 https://i.imgur.com/n8QsXTk.mp4

定義 VideoMessage.cs

public class VideoMessage : IMessage
{

    public LineMessageType Type => LineMessageType.video;

    public string OriginalContentUrl { get; set; }

    public string PreviewImageUrl { get; set; }

}

一樣在 OnMessageAsync 增加一個 前導影片 的實作

實作內容

public class WeddingTrailer : IReplyIntent
{

    private readonly LineReplyMessageUtility lineMessageUtility;

    private readonly LineProfileUtility lineProfileUtility;

    public WeddingTrailer(LineReplyMessageUtility _lineMessageUtility, LineProfileUtility _lineProfileUtility)

    {

    lineMessageUtility = _lineMessageUtility;

    lineProfileUtility = _lineProfileUtility;

    }

    public async Task ReplyAsync(string replyToken)

    {

    var imageMessage = new VideoMessage()

    {

    OriginalContentUrl = "https://i.imgur.com/n8QsXTk.mp4",

    PreviewImageUrl = "https://i.imgur.com/oLvTjtu.png"

    };

    await lineMessageUtility.ReplyMessageAsync(replyToken, new List<IMessage> {

    imageMessage

    });

    }
}

實作效果

實際上沒有回傳那麼慢,會是很順的,只是手機螢幕錄影時,我忘記我有在 Visual Studio 設中斷點,所以卡住了 QQ

AudioMessage

Line 也有提供聲音檔的 Message Type (AudioMessage),因為沒需求這篇就不實作了,但基本上很多程式都是共用的,所以只要:

  1. 定義AudioMessage的Class (JSON to C# Class)
  2. 增加 Intent 的 key
  3. 繼承我們自己定義的 IReplyIntent 介面,並實作 Audio 回覆內容

有啥限制嗎?

ImageMessage 在傳送的時候要注意有以下限制

  • URL 最大 1000 字元
  • 一定要是 HTTPS 且加密規範 TLS 1.2 以上
  • 檔案大小上限 200 MB
  • 如果太寬或太高的影片可能會有裁切掉的風險

懶人包,本次學到了什麼?