Class LineService

java.lang.Object
com.bytedesk.social.line.LineService

@Service public class LineService extends Object
  • Field Details

    • restTemplate

      @Autowired private org.springframework.web.client.RestTemplate restTemplate
  • Constructor Details

    • LineService

      public LineService()
  • Method Details

    • generateJWT

      public String generateJWT(String channelId, String kid, String privateKeyString, long tokenExpSeconds)
      生成Line API认证用的JWT令牌
      Parameters:
      channelId - Channel ID (用于iss和sub字段)
      kid - Key ID
      privateKeyString - 私钥字符串(PKCS8格式,Base64编码)
      tokenExpSeconds - 令牌过期时间(秒),最大30天
      Returns:
      JWT令牌字符串
    • parsePrivateKey

      private PrivateKey parsePrivateKey(String privateKeyString) throws Exception
      解析私钥字符串为PrivateKey对象
      Parameters:
      privateKeyString - Base64编码的PKCS8格式私钥
      Returns:
      PrivateKey对象
      Throws:
      Exception
    • generateJWT

      public String generateJWT(LineRequest lineRequest)
      使用默认配置生成JWT
      Parameters:
      lineRequest - Line配置实体
      Returns:
      JWT令牌字符串
    • issueChannelAccessTokenV21

      public LineService.ChannelAccessTokenResponse issueChannelAccessTokenV21(String jwt)
      使用JWT获取Channel Access Token v2.1
      Parameters:
      jwt - 生成的JWT令牌
      Returns:
      Channel Access Token响应
    • verifyChannelAccessTokenV21

      public LineService.TokenVerificationResponse verifyChannelAccessTokenV21(String accessToken)
      验证Channel Access Token v2.1的有效性
      Parameters:
      accessToken - Channel Access Token
      Returns:
      验证响应
    • getAllValidKeyIds

      public LineService.ValidKeyIdsResponse getAllValidKeyIds(String jwt)
      获取所有有效的Channel Access Token Key IDs v2.1
      Parameters:
      jwt - JWT令牌
      Returns:
      Key IDs响应
    • revokeChannelAccessTokenV21

      public boolean revokeChannelAccessTokenV21(String channelId, String channelSecret, String accessToken)
      撤销Channel Access Token v2.1
      Parameters:
      channelId - Channel ID
      channelSecret - Channel Secret
      accessToken - Channel Access Token
      Returns:
      是否成功撤销
    • issueStatelessChannelAccessToken

      public LineService.StatelessTokenResponse issueStatelessChannelAccessToken(String jwt)
      发行无状态Channel Access Token (15分钟有效期)
      Parameters:
      jwt - JWT令牌
      Returns:
      无状态Token响应
    • issueShortLivedChannelAccessToken

      public LineService.ShortLivedTokenResponse issueShortLivedChannelAccessToken(String channelId, String channelSecret)
      发行短期Channel Access Token (30天有效期)
      Parameters:
      channelId - Channel ID
      channelSecret - Channel Secret
      Returns:
      短期Token响应
    • getChannelAccessToken

      public String getChannelAccessToken(String jwt)
      使用JWT获取Channel Access Token 此方法通常在JWT生成后调用,用于获取实际的访问令牌
      Parameters:
      jwt - 生成的JWT令牌
      Returns:
      Channel Access Token