Package com.bytedesk.social.instagram
Class InstagramQuickRepliesService
java.lang.Object
com.bytedesk.social.instagram.InstagramQuickRepliesService
快速回复
Quick Replies
https://developers.facebook.com/docs/messenger-platform/instagram/features/quick-replies
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
快速回复数据类static class
快速回复Webhook事件数据类static class
快速回复类型常量 -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private final InstagramConfig
private static final int
private static final int
private final com.fasterxml.jackson.databind.ObjectMapper
private final org.springframework.web.client.RestTemplate
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
构建API URLconvertQuickRepliesToMap
(List<InstagramQuickRepliesService.QuickReply> quickReplies) 将QuickReply对象列表转换为Map列表handleQuickReplyEvent
(InstagramQuickRepliesService.QuickReplyEvent quickReplyEvent) 处理快速回复Webhook事件boolean
isValidQuickReplyTitle
(String text) 检查文本是否适合作为快速回复标题private InstagramMessageResponse
sendMessage
(String url, Map<String, Object> requestBody) 发送消息到Instagram APIsendMixedQuickReplies
(String recipientId, String text, List<InstagramQuickRepliesService.QuickReply> textQuickReplies, boolean includePhoneNumber) 发送混合快速回复消息 (文本 + 用户电话号码)sendTextWithQuickReplies
(String recipientId, String text, List<InstagramQuickRepliesService.QuickReply> quickReplies) 发送带文本快速回复的消息sendUserPhoneNumberQuickReply
(String recipientId, String text) 发送带用户电话号码快速回复的消息截断文本以适应快速回复标题长度限制private void
validateQuickReplies
(List<InstagramQuickRepliesService.QuickReply> quickReplies) 验证快速回复参数
-
Field Details
-
instagramConfig
-
restTemplate
private final org.springframework.web.client.RestTemplate restTemplate -
objectMapper
private final com.fasterxml.jackson.databind.ObjectMapper objectMapper -
INSTAGRAM_API_BASE_URL
- See Also:
-
MAX_QUICK_REPLIES
private static final int MAX_QUICK_REPLIES- See Also:
-
MAX_TITLE_LENGTH
private static final int MAX_TITLE_LENGTH- See Also:
-
-
Constructor Details
-
InstagramQuickRepliesService
public InstagramQuickRepliesService()
-
-
Method Details
-
sendTextWithQuickReplies
public InstagramMessageResponse sendTextWithQuickReplies(String recipientId, String text, List<InstagramQuickRepliesService.QuickReply> quickReplies) 发送带文本快速回复的消息- Parameters:
recipientId
- Instagram用户ID (IGSID)text
- 消息文本quickReplies
- 快速回复列表 (最多13个,每个标题最多20字符)- Returns:
- 消息发送结果
-
sendUserPhoneNumberQuickReply
发送带用户电话号码快速回复的消息- Parameters:
recipientId
- Instagram用户ID (IGSID)text
- 消息文本- Returns:
- 消息发送结果
-
sendMixedQuickReplies
public InstagramMessageResponse sendMixedQuickReplies(String recipientId, String text, List<InstagramQuickRepliesService.QuickReply> textQuickReplies, boolean includePhoneNumber) 发送混合快速回复消息 (文本 + 用户电话号码)- Parameters:
recipientId
- Instagram用户ID (IGSID)text
- 消息文本textQuickReplies
- 文本快速回复列表includePhoneNumber
- 是否包含用户电话号码快速回复- Returns:
- 消息发送结果
-
validateQuickReplies
验证快速回复参数- Parameters:
quickReplies
- 快速回复列表
-
convertQuickRepliesToMap
private List<Map<String,Object>> convertQuickRepliesToMap(List<InstagramQuickRepliesService.QuickReply> quickReplies) 将QuickReply对象列表转换为Map列表- Parameters:
quickReplies
- QuickReply对象列表- Returns:
- Map列表
-
buildApiUrl
构建API URL- Returns:
- API URL
-
sendMessage
发送消息到Instagram API- Parameters:
url
- API URLrequestBody
- 请求体- Returns:
- 消息发送结果
-
handleQuickReplyEvent
处理快速回复Webhook事件- Parameters:
quickReplyEvent
- 快速回复事件数据- Returns:
- 处理结果
-
isValidQuickReplyTitle
检查文本是否适合作为快速回复标题- Parameters:
text
- 文本内容- Returns:
- 是否适合
-
truncateQuickReplyTitle
截断文本以适应快速回复标题长度限制- Parameters:
text
- 原始文本- Returns:
- 截断后的文本
-