Class InstagramQuickRepliesService

java.lang.Object
com.bytedesk.social.instagram.InstagramQuickRepliesService

@Service public class InstagramQuickRepliesService extends Object
快速回复 Quick Replies https://developers.facebook.com/docs/messenger-platform/instagram/features/quick-replies
  • Field Details

    • instagramConfig

      private final InstagramConfig instagramConfig
    • restTemplate

      private final org.springframework.web.client.RestTemplate restTemplate
    • objectMapper

      private final com.fasterxml.jackson.databind.ObjectMapper objectMapper
    • INSTAGRAM_API_BASE_URL

      private static final String 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

      public InstagramMessageResponse sendUserPhoneNumberQuickReply(String recipientId, String text)
      发送带用户电话号码快速回复的消息
      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

      private void validateQuickReplies(List<InstagramQuickRepliesService.QuickReply> quickReplies)
      验证快速回复参数
      Parameters:
      quickReplies - 快速回复列表
    • convertQuickRepliesToMap

      private List<Map<String,Object>> convertQuickRepliesToMap(List<InstagramQuickRepliesService.QuickReply> quickReplies)
      将QuickReply对象列表转换为Map列表
      Parameters:
      quickReplies - QuickReply对象列表
      Returns:
      Map列表
    • buildApiUrl

      private String buildApiUrl()
      构建API URL
      Returns:
      API URL
    • sendMessage

      private InstagramMessageResponse sendMessage(String url, Map<String,Object> requestBody)
      发送消息到Instagram API
      Parameters:
      url - API URL
      requestBody - 请求体
      Returns:
      消息发送结果
    • handleQuickReplyEvent

      public String handleQuickReplyEvent(InstagramQuickRepliesService.QuickReplyEvent quickReplyEvent)
      处理快速回复Webhook事件
      Parameters:
      quickReplyEvent - 快速回复事件数据
      Returns:
      处理结果
    • isValidQuickReplyTitle

      public boolean isValidQuickReplyTitle(String text)
      检查文本是否适合作为快速回复标题
      Parameters:
      text - 文本内容
      Returns:
      是否适合
    • truncateQuickReplyTitle

      public String truncateQuickReplyTitle(String text)
      截断文本以适应快速回复标题长度限制
      Parameters:
      text - 原始文本
      Returns:
      截断后的文本