Package com.bytedesk.social.instagram
Class InstagramPersistentMenuService
java.lang.Object
com.bytedesk.social.instagram.InstagramPersistentMenuService
Persistent Menu Service
持久菜单服务
持久菜单允许您创建并发送包含业务主要功能(如营业时间、店铺位置和产品等)的菜单,
该菜单始终显示在用户与您的业务在 Messenger 中的对话中。
当用户点击菜单中的某一项时,系统会向您的服务器发送一个 postback webhook 通知,
内容包括被选中的项目信息以及操作者,同时标准消息窗口会打开。
用户点击 CTA 后,您有 24 小时的时间进行回复。
https://developers.facebook.com/docs/messenger-platform/instagram/features/persistent-menu
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private final InstagramConfig
private static final String
private final com.fasterxml.jackson.databind.ObjectMapper
private final org.springframework.web.client.RestTemplate
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
构建API URL创建客服菜单创建电商菜单createPostbackButton
(String title, String payload) 创建回传按钮创建餐厅菜单createUrlButton
(String title, String url) 创建URL按钮删除持久菜单获取持久菜单boolean
isValidCallToAction
(InstagramPersistentMenu.CallToAction callToAction) 验证按钮boolean
验证单个菜单boolean
isValidPersistentMenu
(InstagramPersistentMenu persistentMenu) 验证持久菜单参数boolean
isValidUrl
(String url) 验证URL格式private InstagramMenuResponse
sendMenuRequest
(String url, org.springframework.http.HttpMethod method, Object requestBody) 发送菜单请求到Instagram APIsetDefaultPersistentMenu
(List<InstagramPersistentMenu.CallToAction> callToActions) 设置默认区域的持久菜单setLocalizedPersistentMenu
(String locale, List<InstagramPersistentMenu.CallToAction> callToActions) 设置本地化持久菜单设置多区域持久菜单setPersistentMenu
(InstagramPersistentMenu persistentMenu) 设置持久菜单
-
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:
-
MESSENGER_PROFILE_ENDPOINT
- See Also:
-
-
Constructor Details
-
InstagramPersistentMenuService
public InstagramPersistentMenuService()
-
-
Method Details
-
setPersistentMenu
设置持久菜单- Parameters:
persistentMenu
- 持久菜单配置- Returns:
- 操作结果
-
setDefaultPersistentMenu
public InstagramMenuResponse setDefaultPersistentMenu(List<InstagramPersistentMenu.CallToAction> callToActions) 设置默认区域的持久菜单- Parameters:
callToActions
- 菜单操作按钮列表- Returns:
- 操作结果
-
setLocalizedPersistentMenu
public InstagramMenuResponse setLocalizedPersistentMenu(String locale, List<InstagramPersistentMenu.CallToAction> callToActions) 设置本地化持久菜单- Parameters:
locale
- 区域设置callToActions
- 菜单操作按钮列表- Returns:
- 操作结果
-
setMultiLocalePersistentMenu
public InstagramMenuResponse setMultiLocalePersistentMenu(List<InstagramPersistentMenu.PersistentMenu> menus) 设置多区域持久菜单- Parameters:
menus
- 多个区域的菜单配置- Returns:
- 操作结果
-
getPersistentMenu
获取持久菜单- Returns:
- 持久菜单配置
-
deletePersistentMenu
删除持久菜单- Returns:
- 操作结果
-
createUrlButton
创建URL按钮- Parameters:
title
- 按钮标题url
- 目标网址- Returns:
- URL按钮对象
-
createPostbackButton
创建回传按钮- Parameters:
title
- 按钮标题payload
- 回传负载数据- Returns:
- 回传按钮对象
-
createCustomerServiceMenu
创建客服菜单- Returns:
- 客服菜单按钮列表
-
createEcommerceMenu
创建电商菜单- Returns:
- 电商菜单按钮列表
-
createRestaurantMenu
创建餐厅菜单- Returns:
- 餐厅菜单按钮列表
-
isValidPersistentMenu
验证持久菜单参数- Parameters:
persistentMenu
- 持久菜单配置- Returns:
- 是否有效
-
isValidMenu
验证单个菜单- Parameters:
menu
- 菜单配置- Returns:
- 是否有效
-
isValidCallToAction
验证按钮- Parameters:
callToAction
- 按钮配置- Returns:
- 是否有效
-
isValidUrl
验证URL格式- Parameters:
url
- URL字符串- Returns:
- 是否有效
-
buildApiUrl
构建API URL -
sendMenuRequest
private InstagramMenuResponse sendMenuRequest(String url, org.springframework.http.HttpMethod method, Object requestBody) 发送菜单请求到Instagram API
-