Class InstagramPrivateRepliesService

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

@Service public class InstagramPrivateRepliesService extends Object
Private Replies 私密回复 https://developers.facebook.com/docs/messenger-platform/instagram/features/private-replies 功能说明: 1. 允许Instagram专业账户向评论者发送私密消息 2. 支持帖子、广告帖子、快拍、直播故事的评论回复 3. 评论创建后7天内可发送私密回复(直播除外) 4. 直播评论只能在直播期间发送私密回复 5. 每个评论只能发送一条私密回复
  • 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:
    • COMMENT_REPLY_WINDOW_DAYS

      private static final long COMMENT_REPLY_WINDOW_DAYS
      See Also:
    • sentReplies

      private final Map<String,Boolean> sentReplies
  • Constructor Details

    • InstagramPrivateRepliesService

      public InstagramPrivateRepliesService()
  • Method Details

    • sendPrivateReply

      public InstagramMessageResponse sendPrivateReply(String commentId, String message)
      发送私密回复
      Parameters:
      commentId - 评论ID
      message - 回复消息内容
      Returns:
      发送结果
    • sendPrivateReplyWithValidation

      public InstagramMessageResponse sendPrivateReplyWithValidation(String commentId, String message, long commentCreatedTime, boolean isLiveComment)
      发送私密回复(带时间验证)
      Parameters:
      commentId - 评论ID
      message - 回复消息内容
      commentCreatedTime - 评论创建时间戳(秒)
      isLiveComment - 是否为直播评论
      Returns:
      发送结果
    • handleCommentWebhook

      public InstagramMessageResponse handleCommentWebhook(InstagramPrivateRepliesService.CommentData commentData, String autoReplyMessage)
      处理评论webhook事件
      Parameters:
      commentData - 评论数据
      autoReplyMessage - 自动回复消息(可选)
      Returns:
      处理结果
    • isValidReplyTime

      public boolean isValidReplyTime(long commentCreatedTime, boolean isLiveComment)
      验证回复时间是否有效
      Parameters:
      commentCreatedTime - 评论创建时间戳(秒)
      isLiveComment - 是否为直播评论
      Returns:
      是否有效
    • isSupportedForPrivateReply

      public boolean isSupportedForPrivateReply(String mediaType)
      检查媒体类型是否支持私密回复
      Parameters:
      mediaType - 媒体类型
      Returns:
      是否支持
    • getCommentInfo

      public InstagramPrivateRepliesService.CommentData getCommentInfo(String commentId)
      获取评论信息
      Parameters:
      commentId - 评论ID
      Returns:
      评论信息
    • clearSentRepliesCache

      public void clearSentRepliesCache(String commentId)
      清除已发送回复的缓存
      Parameters:
      commentId - 评论ID(可选,为null时清除所有缓存)
    • getSentRepliesCount

      public int getSentRepliesCount()
      获取已发送回复的评论数量
      Returns:
      已发送回复的评论数量
    • buildApiUrl

      private String buildApiUrl()
      构建API URL
    • sendPrivateReplyRequest

      private InstagramMessageResponse sendPrivateReplyRequest(String url, Map<String,Object> requestBody)
      发送私密回复请求
    • parseErrorResponse

      private InstagramMessageResponse parseErrorResponse(String responseBody)
      解析错误响应