Skip to content

Commit 80aec6e

Browse files
authored
Support sticker text (#716)
1 parent fbbe394 commit 80aec6e

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed

line-bot-model/src/main/java/com/linecorp/bot/model/event/message/StickerMessageContent.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,28 @@ public enum StickerResourceType {
8080
POPUP_SOUND,
8181
/**
8282
* Custom sticker. You can't retrieve the sticker's custom text with the Messaging API.
83+
* @deprecated discontinued. {@link StickerResourceType#CUSTOM } is used instead of
84+
* {@link StickerResourceType#NAME_TEXT }.
85+
* @see StickerResourceType#CUSTOM
8386
*/
87+
@Deprecated
8488
NAME_TEXT,
8589
/**
8690
* Message sticker. You can't retrieve the sticker's custom text with the Messaging API.
91+
* @deprecated discontinued. {@link StickerResourceType#MESSAGE } is used instead of
92+
* {@link StickerResourceType#PER_STICKER_TEXT }.
93+
* @see StickerResourceType#MESSAGE
8794
*/
95+
@Deprecated
8896
PER_STICKER_TEXT,
97+
/**
98+
* Message sticker.
99+
*/
100+
MESSAGE,
101+
/**
102+
* Custom sticker. You can't retrieve the sticker's custom text with the Messaging API.
103+
*/
104+
CUSTOM,
89105
@JsonEnumDefaultValue
90106
UNKNOWN // For implementation of new sticker resource type in the future!
91107
}
@@ -101,4 +117,11 @@ public enum StickerResourceType {
101117
* If the type change in the future, this field will become null.
102118
*/
103119
List<String> keywords;
120+
121+
/**
122+
* Any text entered by the user.
123+
* This property is only included for message stickers.
124+
* Max character limit: 100
125+
*/
126+
String text;
104127
}

line-bot-model/src/test/java/com/linecorp/bot/model/event/CallbackRequestTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,42 @@ public void testSticker() throws IOException {
311311
});
312312
}
313313

314+
@Test
315+
public void testStickerWithText() throws IOException {
316+
parse("callback/sticker-with-text.json", callbackRequest -> {
317+
assertDestination(callbackRequest);
318+
assertThat(callbackRequest.getEvents()).hasSize(1);
319+
Event event = callbackRequest.getEvents().get(0);
320+
assertThat(event).isInstanceOf(MessageEvent.class);
321+
assertThat(event.getSource())
322+
.isInstanceOf(UserSource.class);
323+
assertThat(event.getSource().getUserId())
324+
.isEqualTo("u206d25c2ea6bd87c17655609a1c37cb8");
325+
assertThat(event.getTimestamp())
326+
.isEqualTo(Instant.parse("2016-05-07T13:57:59.859Z"));
327+
assertThat(event.getMode())
328+
.isEqualTo(EventMode.ACTIVE);
329+
330+
MessageEvent messageEvent = (MessageEvent) event;
331+
assertThat(messageEvent.getReplyToken())
332+
.isEqualTo("nHuyWiB7yP5Zw52FIkcQobQuGDXCTA");
333+
MessageContent message = messageEvent.getMessage();
334+
assertThat(message).isInstanceOf(StickerMessageContent.class);
335+
if (message instanceof StickerMessageContent) {
336+
assertThat(((StickerMessageContent) message).getStickerId())
337+
.isEqualTo("1");
338+
assertThat(((StickerMessageContent) message).getPackageId())
339+
.isEqualTo("1");
340+
assertThat(((StickerMessageContent) message).getStickerResourceType())
341+
.isEqualTo(StickerResourceType.MESSAGE);
342+
assertThat(((StickerMessageContent) message).getKeywords())
343+
.containsExactly("bed", "sleep", "bedtime");
344+
assertThat(((StickerMessageContent) message).getText())
345+
.isEqualTo("userEnteredText");
346+
}
347+
});
348+
}
349+
314350
@Test
315351
public void testStickerKeywordsBecomeString() throws IOException {
316352
parse("callback/sticker-keywords-string.json", callbackRequest -> {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"destination": "Uab012345678901234567890123456789",
3+
"events": [
4+
{
5+
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
6+
"type": "message",
7+
"timestamp": 1462629479859,
8+
"mode": "active",
9+
"source": {
10+
"type": "user",
11+
"userId": "u206d25c2ea6bd87c17655609a1c37cb8"
12+
},
13+
"message": {
14+
"id": "325708",
15+
"type": "sticker",
16+
"packageId": "1",
17+
"stickerId": "1",
18+
"stickerResourceType": "MESSAGE",
19+
"keywords": [
20+
"bed",
21+
"sleep",
22+
"bedtime"
23+
],
24+
"text": "userEnteredText"
25+
}
26+
}
27+
]
28+
}

0 commit comments

Comments
 (0)