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 Stringprivate final InstagramConfigprivate static final Stringprivate final com.fasterxml.jackson.databind.ObjectMapperprivate 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按钮删除持久菜单获取持久菜单booleanisValidCallToAction(InstagramPersistentMenu.CallToAction callToAction) 验证按钮boolean验证单个菜单booleanisValidPersistentMenu(InstagramPersistentMenu persistentMenu) 验证持久菜单参数booleanisValidUrl(String url) 验证URL格式private InstagramMenuResponsesendMenuRequest(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
-