Day 09 回覆emoji讯息

Line上可用的emojis有两种一种是Unicode emojis,另一种是LINE emojis。

LINE emojis是line bot sdk python近期才更新,在回覆TextSendMessage()时可加上emojis参数传送带有LINE emoji属性的讯息。可惜的是Message event获得讯息在Android上还接收不到emoji参数,希望之後可以支援。
https://developers.line.biz/en/reference/messaging-api/#message-event
https://ithelp.ithome.com.tw/upload/images/20210921/20140165mNcz332Gmy.png

Unicode emojis

Android和IOS原生emojis,现在大多数网页和APP中都能使用。
https://zh.wikipedia.org/wiki/%E7%B9%AA%E6%96%87%E5%AD%97

LINE emojis

为LINE专属的表情贴,预设就有上千款免费表情贴可以任意使用,与贴图不同的地方是它可以单独做为贴图使用,也可以如Android和IOS原生emojis一样跟文字讯息一起使用。https://ithelp.ithome.com.tw/upload/images/20210921/20140165llnUlBClW2.jpg

回覆LINE emoji讯息

这边一样参考line bot sdk python
https://github.com/line/line-bot-sdk-python#textsendmessage-emoji

emoji = [
    {
        "index": 0,
        "productId": "5ac1bfd5040ab15980c9b435",
        "emojiId": "001"
    },
    {
        "index": 13,
        "productId": "5ac1bfd5040ab15980c9b435",
        "emojiId": "002"
    }
]
text_message = TextSendMessage(text='$ LINE emoji $', emojis=emoji)

index为emoji放置位置,index由0开始算0,1,2,3,...
放置位置文字会打上$,如果index位置不是$讯息回覆会报错并被拒绝
LINE emojis的Product ID与emoji ID对照表
https://developers.line.biz/en/docs/messaging-api/emoji-list/#line-emoji-definitions

程序

@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    emoji = [
        {
            "index": 0,
            "productId": "5ac21a8c040ab15980c9b43f",
            "emojiId": "004"
        },
        {
            "index": 1,
            "productId": "5ac21a8c040ab15980c9b43f",
            "emojiId": "001"
        },
        {
            "index": 2,
            "productId": "5ac21a8c040ab15980c9b43f",
            "emojiId": "025"
        },
    ]         
    if(event.message.text=="Day 07"):
        message=TextSendMessage("Day 07 line bot sdk python范例程序在做什麽")
    elif(event.message.text=="Day 08"):
        message=TextSendMessage("Day 08让Linebot回覆特定讯息")
    elif(event.message.text=="Unicode emoji"):
        message=TextSendMessage("\U0001F449Unicode emoji\U0001F448")
    elif(event.message.text=="LINE emoji"):
        message=TextSendMessage(text='$$$ 09 回覆emoji讯息', emojis=emoji)
    else:
        message=TextSendMessage(event.message.text)

    print(event)
    line_bot_api.reply_message(
        event.reply_token,
        message)

message=TextSendMessage("\U0001F449Unicode emoji\U0001F448")

可以在上方的Wiki连结上看到emoji Unicode对照表
?U+1F449 ?U+1F448
在程序中表现为\U0001F449与\U0001F448

def handle_message(event):
emoji = [
{
"index": 0,
"productId": "5ac21a8c040ab15980c9b43f",
"emojiId": "004"
},
{
"index": 1,
"productId": "5ac21a8c040ab15980c9b43f",
"emojiId": "001"
},
{
"index": 2,
"productId": "5ac21a8c040ab15980c9b43f",
"emojiId": "025"
},
]
message=TextSendMessage(text='$$$ 09 回覆emoji讯息', emojis=emoji)

这边定好你要的LINE emoji跟位置
'$$$ 09 回覆emoji讯息'
https://ithelp.ithome.com.tw/upload/images/20210921/201401653YF3o0VBqi.jpg
参考:
https://developers.line.biz/en/docs/messaging-api/emoji-list
https://developers.line.biz/en/reference/messaging-api/#message-event
https://github.com/line/line-bot-sdk-python


<<:  【C language part 2】变数&资料型态、输入输出、运算子&运算式

>>:  C# LINQ

[Day 27] - 新手也能懂的Arduino! – (4)如何看懂电路图Part.2

17King 制造中,订阅一下吧(*´∀`)~♥ 今日影片长度:07 分 20 秒 本集重点条列: ...

{CMoney战斗营} 的第十二周 # 认识SQL

开始进入分组授课的第二周, 这周的课程包括共同领域的资料结构Stack & Queue及後端...

总结

本系列文章经过重新编排和扩充,已出书为ECMAScript关键30天。原始文章因当时准备时程紧迫,...

Day 12 Self-attention(六) Multi-Head Self-attention

Multi-Head Self-attention 前面介绍的方法是one head的方法,这边要来...

[ Day 10 ] - 传值与传址

传值与传址 先来看案例 案例一 let a = 50; let b = a; console.log...