Class InstagramButtonTemplateService

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

@Service public class InstagramButtonTemplateService extends Object
Button Template Service 按钮模板服务 按钮模板发送一条最多可附带三个按钮的文本消息。此模板适用于为消息接收者提供选项, 例如对问题的预定回复,或采取的行动。 此功能目前不在桌面版上可用。 https://developers.facebook.com/docs/messenger-platform/instagram/features/button-template
  • 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:
  • Constructor Details

    • InstagramButtonTemplateService

      public InstagramButtonTemplateService()
  • Method Details

    • sendButtonTemplate

      public InstagramMessageResponse sendButtonTemplate(String recipientId, String text, List<InstagramButtonTemplate.Button> buttons)
      发送按钮模板消息
      Parameters:
      recipientId - Instagram用户ID (IGSID)
      text - 按钮上方的文本内容 (UTF-8编码,最多640字符)
      buttons - 按钮列表 (1-3个按钮)
      Returns:
      消息发送结果
    • sendUrlButtonTemplate

      public InstagramMessageResponse sendUrlButtonTemplate(String recipientId, String text, String buttonTitle, String buttonUrl)
      发送包含URL按钮的按钮模板
      Parameters:
      recipientId - Instagram用户ID (IGSID)
      text - 按钮上方的文本内容
      buttonTitle - 按钮文本
      buttonUrl - 按钮链接地址
      Returns:
      消息发送结果
    • sendPostbackButtonTemplate

      public InstagramMessageResponse sendPostbackButtonTemplate(String recipientId, String text, String buttonTitle, String buttonPayload)
      发送包含回传按钮的按钮模板
      Parameters:
      recipientId - Instagram用户ID (IGSID)
      text - 按钮上方的文本内容
      buttonTitle - 按钮文本
      buttonPayload - 回传负载数据
      Returns:
      消息发送结果
    • sendMixedButtonTemplate

      public InstagramMessageResponse sendMixedButtonTemplate(String recipientId, String text, String urlButtonTitle, String urlButtonUrl, String postbackButtonTitle, String postbackButtonPayload)
      发送包含多个按钮的按钮模板
      Parameters:
      recipientId - Instagram用户ID (IGSID)
      text - 按钮上方的文本内容
      urlButtonTitle - URL按钮文本
      urlButtonUrl - URL按钮链接
      postbackButtonTitle - 回传按钮文本
      postbackButtonPayload - 回传按钮负载
      Returns:
      消息发送结果
    • sendThreeButtonTemplate

      public InstagramMessageResponse sendThreeButtonTemplate(String recipientId, String text, InstagramButtonTemplate.Button button1, InstagramButtonTemplate.Button button2, InstagramButtonTemplate.Button button3)
      发送包含三个按钮的按钮模板
      Parameters:
      recipientId - Instagram用户ID (IGSID)
      text - 按钮上方的文本内容
      buttonTemplates - 三个按钮的列表
      Returns:
      消息发送结果
    • createUrlButton

      public InstagramButtonTemplate.Button createUrlButton(String title, String url)
      创建URL按钮
      Parameters:
      title - 按钮文本
      url - 目标网址
      Returns:
      URL按钮对象
    • createPostbackButton

      public InstagramButtonTemplate.Button createPostbackButton(String title, String payload)
      创建回传按钮
      Parameters:
      title - 按钮文本
      payload - 回传负载数据
      Returns:
      回传按钮对象
    • isValidButtonTemplate

      public boolean isValidButtonTemplate(String text, List<InstagramButtonTemplate.Button> buttons)
      验证按钮模板参数
      Parameters:
      text - 文本内容
      buttons - 按钮列表
      Returns:
      是否有效
    • isValidButton

      public boolean isValidButton(InstagramButtonTemplate.Button button)
      验证单个按钮
      Parameters:
      button - 按钮对象
      Returns:
      是否有效
    • isValidUrl

      public boolean isValidUrl(String url)
      验证URL格式
      Parameters:
      url - URL字符串
      Returns:
      是否有效
    • buildApiUrl

      private String buildApiUrl()
      构建API URL
    • sendButtonTemplateMessage

      private InstagramMessageResponse sendButtonTemplateMessage(String url, InstagramButtonTemplate buttonTemplate)
      发送按钮模板消息到Instagram API