line bot에서 숫자를 이모티콘으로 표시하고 싶습니다.
소개
line bot상에서 표시하는 숫자를, 이모티콘의 숫자로 표시시켜 보려고 생각 구현.
bot내에서 숫자를 표시하고 싶을 때에 사용할 수 있다고 생각 비망록 메모.
동작 이미지는 이런 느낌입니다, 개행의 문자수 카운트의 거동을 보기 위해(때문에), 한 자리수 때는 감히 개행하도록(듯이) 하고 있습니다.
비망록
기본적인 작법
Visual Studio Code로 구현하고 ngrok에서 터널링하여 실행.
이 부분은 line bot와 상호 작용하는 기본적인 코드입니다.
'use strict';
const express = require('express');
const line = require('@line/bot-sdk');
const PORT = process.env.PORT || 3000;
const config = {
channelSecret: 'チャンネルシークレット',
channelAccessToken: 'アクセストークン'
};
const app = express();
app.get('/', (req, res) => res.send('Hello LINE BOT!(GET)')); //ブラウザ確認用(無くても問題ない)
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
//ここのif分はdeveloper consoleの"接続確認"用なので削除して問題ない。
if(req.body.events[0].replyToken === '00000000000000000000000000000000' && req.body.events[1].replyToken === 'ffffffffffffffffffffffffffffffff'){
res.send('Hello LINE BOT!(POST)');
console.log('疎通確認用');
return;
}
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
async function handleEvent(event) {
//ここに色々書く
}
숫자를 이모티콘으로 변환
여기가 이번 중요한 부분.
숫자를 인수로 사용하여 이모티콘을 반환하는 make_emoji_num 함수를 구현합니다.
index는 text의 왼쪽에서 몇 문자째의 $를 옮겨놓는지의 번호로, 개행을 의미하는 "\n"은 1문자 판정인 것 같다.
async function handleEvent(event) {
if (event.type !== 'message' || event.message.type !== 'text') {
return Promise.resolve(null);
}
var reply_dic = make_reply(event.message.text)
return client.replyMessage(event.replyToken, reply_dic);
}
app.listen(PORT);
console.log(`Server running at ${PORT}`);
![Screenshot_20201105-163114.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/8cfc7cb2-3307-35dc-7445-579476e7f81c.png)
function make_reply(num){
var reply_dic= {
"type": "text",
}
var product_id = "5ac21b4f031a6752fb806d59"
var emojiID_list = ["062","053","054","055","056","057","058","059","060","061"];
var junokurai = Math.floor(num / 10);
var ichinokurai = num % 10;
var emoji_list = [];
if (num >= 10){
reply_dic["text"] = "$$"
emoji_list.push(
{
"index": 0,
"productId": product_id,
"emojiId": emojiID_list[junokurai]
}
)
emoji_list.push(
{
"index": 1,
"productId": product_id,
"emojiId": emojiID_list[ichinokurai]
}
)
reply_dic["emojis"] = emoji_list;
console.log(reply_dic);
}else if (num < 10){
reply_dic["text"] = "\n$"
emoji_list.push(
{
"index": 1,
"productId": product_id,
"emojiId": emojiID_list[ichinokurai]
}
)
reply_dic["emojis"] = emoji_list;
}
reply_dic.text += "テスト"
return reply_dic;
}
기타 편리한 자료들
・좋은 line bot를 만들기 위한 자신의 메모
htps : // m / kan / ms / b71c3d7 308cb8337 a1
・line bot 이모티콘 ID 리스트
htps : // d.ぃね-scd응. 네 t/r/로 v선하고 r/센다 bぇ_ぃね_에모지_ぃst. pdf
・Text를 보내는 경우의 API 레퍼런스
htps : //에서 ゔぇぺぺrs. 네. 비 · 엔 / 레후 렌세 / 메사 긴 g 아피 / # 테 xt 메사게
Reference
이 문제에 관하여(line bot에서 숫자를 이모티콘으로 표시하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/canonno/items/994e2a9e74280ff91da7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기본적인 작법
Visual Studio Code로 구현하고 ngrok에서 터널링하여 실행.
이 부분은 line bot와 상호 작용하는 기본적인 코드입니다.
'use strict';
const express = require('express');
const line = require('@line/bot-sdk');
const PORT = process.env.PORT || 3000;
const config = {
channelSecret: 'チャンネルシークレット',
channelAccessToken: 'アクセストークン'
};
const app = express();
app.get('/', (req, res) => res.send('Hello LINE BOT!(GET)')); //ブラウザ確認用(無くても問題ない)
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
//ここのif分はdeveloper consoleの"接続確認"用なので削除して問題ない。
if(req.body.events[0].replyToken === '00000000000000000000000000000000' && req.body.events[1].replyToken === 'ffffffffffffffffffffffffffffffff'){
res.send('Hello LINE BOT!(POST)');
console.log('疎通確認用');
return;
}
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
async function handleEvent(event) {
//ここに色々書く
}
숫자를 이모티콘으로 변환
여기가 이번 중요한 부분.
숫자를 인수로 사용하여 이모티콘을 반환하는 make_emoji_num 함수를 구현합니다.
index는 text의 왼쪽에서 몇 문자째의 $를 옮겨놓는지의 번호로, 개행을 의미하는 "\n"은 1문자 판정인 것 같다.
async function handleEvent(event) {
if (event.type !== 'message' || event.message.type !== 'text') {
return Promise.resolve(null);
}
var reply_dic = make_reply(event.message.text)
return client.replyMessage(event.replyToken, reply_dic);
}
app.listen(PORT);
console.log(`Server running at ${PORT}`);
![Screenshot_20201105-163114.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/8cfc7cb2-3307-35dc-7445-579476e7f81c.png)
function make_reply(num){
var reply_dic= {
"type": "text",
}
var product_id = "5ac21b4f031a6752fb806d59"
var emojiID_list = ["062","053","054","055","056","057","058","059","060","061"];
var junokurai = Math.floor(num / 10);
var ichinokurai = num % 10;
var emoji_list = [];
if (num >= 10){
reply_dic["text"] = "$$"
emoji_list.push(
{
"index": 0,
"productId": product_id,
"emojiId": emojiID_list[junokurai]
}
)
emoji_list.push(
{
"index": 1,
"productId": product_id,
"emojiId": emojiID_list[ichinokurai]
}
)
reply_dic["emojis"] = emoji_list;
console.log(reply_dic);
}else if (num < 10){
reply_dic["text"] = "\n$"
emoji_list.push(
{
"index": 1,
"productId": product_id,
"emojiId": emojiID_list[ichinokurai]
}
)
reply_dic["emojis"] = emoji_list;
}
reply_dic.text += "テスト"
return reply_dic;
}
기타 편리한 자료들
・좋은 line bot를 만들기 위한 자신의 메모
htps : // m / kan / ms / b71c3d7 308cb8337 a1
・line bot 이모티콘 ID 리스트
htps : // d.ぃね-scd응. 네 t/r/로 v선하고 r/센다 bぇ_ぃね_에모지_ぃst. pdf
・Text를 보내는 경우의 API 레퍼런스
htps : //에서 ゔぇぺぺrs. 네. 비 · 엔 / 레후 렌세 / 메사 긴 g 아피 / # 테 xt 메사게
Reference
이 문제에 관하여(line bot에서 숫자를 이모티콘으로 표시하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/canonno/items/994e2a9e74280ff91da7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)