Package com.bytedesk.social.instagram
Class InstagramButtonTemplateService
java.lang.Object
com.bytedesk.social.instagram.InstagramButtonTemplateService
Button Template Service
按钮模板服务
按钮模板发送一条最多可附带三个按钮的文本消息。此模板适用于为消息接收者提供选项,
例如对问题的预定回复,或采取的行动。
此功能目前不在桌面版上可用。
https://developers.facebook.com/docs/messenger-platform/instagram/features/button-template
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private final InstagramConfig
private final com.fasterxml.jackson.databind.ObjectMapper
private final org.springframework.web.client.RestTemplate
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
构建API URLcreatePostbackButton
(String title, String payload) 创建回传按钮createUrlButton
(String title, String url) 创建URL按钮boolean
验证单个按钮boolean
isValidButtonTemplate
(String text, List<InstagramButtonTemplate.Button> buttons) 验证按钮模板参数boolean
isValidUrl
(String url) 验证URL格式sendButtonTemplate
(String recipientId, String text, List<InstagramButtonTemplate.Button> buttons) 发送按钮模板消息private InstagramMessageResponse
sendButtonTemplateMessage
(String url, InstagramButtonTemplate buttonTemplate) 发送按钮模板消息到Instagram APIsendMixedButtonTemplate
(String recipientId, String text, String urlButtonTitle, String urlButtonUrl, String postbackButtonTitle, String postbackButtonPayload) 发送包含多个按钮的按钮模板sendPostbackButtonTemplate
(String recipientId, String text, String buttonTitle, String buttonPayload) 发送包含回传按钮的按钮模板sendThreeButtonTemplate
(String recipientId, String text, InstagramButtonTemplate.Button button1, InstagramButtonTemplate.Button button2, InstagramButtonTemplate.Button button3) 发送包含三个按钮的按钮模板sendUrlButtonTemplate
(String recipientId, String text, String buttonTitle, String buttonUrl) 发送包含URL按钮的按钮模板
-
Field Details
-
instagramConfig
-
restTemplate
private final org.springframework.web.client.RestTemplate restTemplate -
objectMapper
private final com.fasterxml.jackson.databind.ObjectMapper objectMapper -
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
创建URL按钮- Parameters:
title
- 按钮文本url
- 目标网址- Returns:
- URL按钮对象
-
createPostbackButton
创建回传按钮- Parameters:
title
- 按钮文本payload
- 回传负载数据- Returns:
- 回传按钮对象
-
isValidButtonTemplate
验证按钮模板参数- Parameters:
text
- 文本内容buttons
- 按钮列表- Returns:
- 是否有效
-
isValidButton
验证单个按钮- Parameters:
button
- 按钮对象- Returns:
- 是否有效
-
isValidUrl
验证URL格式- Parameters:
url
- URL字符串- Returns:
- 是否有效
-
buildApiUrl
构建API URL -
sendButtonTemplateMessage
private InstagramMessageResponse sendButtonTemplateMessage(String url, InstagramButtonTemplate buttonTemplate) 发送按钮模板消息到Instagram API
-