Package com.bytedesk.social.line
Class LineService
java.lang.Object
com.bytedesk.social.line.LineService
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
static class
static class
static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.springframework.web.client.RestTemplate
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongenerateJWT
(LineRequest lineRequest) 使用默认配置生成JWTgenerateJWT
(String channelId, String kid, String privateKeyString, long tokenExpSeconds) 生成Line API认证用的JWT令牌getAllValidKeyIds
(String jwt) 获取所有有效的Channel Access Token Key IDs v2.1使用JWT获取Channel Access Token 此方法通常在JWT生成后调用,用于获取实际的访问令牌使用JWT获取Channel Access Token v2.1issueShortLivedChannelAccessToken
(String channelId, String channelSecret) 发行短期Channel Access Token (30天有效期)发行无状态Channel Access Token (15分钟有效期)private PrivateKey
parsePrivateKey
(String privateKeyString) 解析私钥字符串为PrivateKey对象boolean
revokeChannelAccessTokenV21
(String channelId, String channelSecret, String accessToken) 撤销Channel Access Token v2.1verifyChannelAccessTokenV21
(String accessToken) 验证Channel Access Token v2.1的有效性
-
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 IDprivateKeyString
- 私钥字符串(PKCS8格式,Base64编码)tokenExpSeconds
- 令牌过期时间(秒),最大30天- Returns:
- JWT令牌字符串
-
parsePrivateKey
解析私钥字符串为PrivateKey对象- Parameters:
privateKeyString
- Base64编码的PKCS8格式私钥- Returns:
- PrivateKey对象
- Throws:
Exception
-
generateJWT
使用默认配置生成JWT- Parameters:
lineRequest
- Line配置实体- Returns:
- JWT令牌字符串
-
issueChannelAccessTokenV21
使用JWT获取Channel Access Token v2.1- Parameters:
jwt
- 生成的JWT令牌- Returns:
- Channel Access Token响应
-
verifyChannelAccessTokenV21
验证Channel Access Token v2.1的有效性- Parameters:
accessToken
- Channel Access Token- Returns:
- 验证响应
-
getAllValidKeyIds
获取所有有效的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 IDchannelSecret
- Channel SecretaccessToken
- Channel Access Token- Returns:
- 是否成功撤销
-
issueStatelessChannelAccessToken
发行无状态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 IDchannelSecret
- Channel Secret- Returns:
- 短期Token响应
-
getChannelAccessToken
使用JWT获取Channel Access Token 此方法通常在JWT生成后调用,用于获取实际的访问令牌- Parameters:
jwt
- 生成的JWT令牌- Returns:
- Channel Access Token
-