line-bot-api 1.29.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +38 -8
  3. data/README.md +231 -25
  4. data/lib/line/bot/v2/channel_access_token/api/channel_access_token_client.rb +533 -0
  5. data/lib/line/bot/v2/channel_access_token/core.rb +20 -0
  6. data/lib/line/bot/v2/channel_access_token/model/channel_access_token_key_ids_response.rb +68 -0
  7. data/lib/line/bot/v2/channel_access_token/model/error_response.rb +73 -0
  8. data/lib/line/bot/v2/channel_access_token/model/issue_channel_access_token_response.rb +86 -0
  9. data/lib/line/bot/v2/channel_access_token/model/issue_short_lived_channel_access_token_response.rb +80 -0
  10. data/lib/line/bot/v2/channel_access_token/model/issue_stateless_channel_access_token_response.rb +80 -0
  11. data/lib/line/bot/v2/channel_access_token/model/verify_channel_access_token_response.rb +79 -0
  12. data/lib/line/bot/v2/http_client.rb +165 -0
  13. data/lib/line/bot/v2/insight/api/insight_client.rb +314 -0
  14. data/lib/line/bot/v2/insight/core.rb +32 -0
  15. data/lib/line/bot/v2/insight/model/age_tile.rb +72 -0
  16. data/lib/line/bot/v2/insight/model/app_type_tile.rb +72 -0
  17. data/lib/line/bot/v2/insight/model/area_tile.rb +72 -0
  18. data/lib/line/bot/v2/insight/model/error_detail.rb +72 -0
  19. data/lib/line/bot/v2/insight/model/error_response.rb +79 -0
  20. data/lib/line/bot/v2/insight/model/gender_tile.rb +72 -0
  21. data/lib/line/bot/v2/insight/model/get_friends_demographics_response.rb +128 -0
  22. data/lib/line/bot/v2/insight/model/get_message_event_response.rb +92 -0
  23. data/lib/line/bot/v2/insight/model/get_message_event_response_click.rb +90 -0
  24. data/lib/line/bot/v2/insight/model/get_message_event_response_message.rb +132 -0
  25. data/lib/line/bot/v2/insight/model/get_message_event_response_overview.rb +103 -0
  26. data/lib/line/bot/v2/insight/model/get_number_of_followers_response.rb +86 -0
  27. data/lib/line/bot/v2/insight/model/get_number_of_message_deliveries_response.rb +128 -0
  28. data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb +92 -0
  29. data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response_click.rb +91 -0
  30. data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response_message.rb +139 -0
  31. data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response_overview.rb +86 -0
  32. data/lib/line/bot/v2/insight/model/subscription_period_tile.rb +72 -0
  33. data/lib/line/bot/v2/liff/api/liff_client.rb +273 -0
  34. data/lib/line/bot/v2/liff/core.rb +24 -0
  35. data/lib/line/bot/v2/liff/model/add_liff_app_request.rb +97 -0
  36. data/lib/line/bot/v2/liff/model/add_liff_app_response.rb +66 -0
  37. data/lib/line/bot/v2/liff/model/get_all_liff_apps_response.rb +72 -0
  38. data/lib/line/bot/v2/liff/model/liff_app.rb +102 -0
  39. data/lib/line/bot/v2/liff/model/liff_bot_prompt.rb +21 -0
  40. data/lib/line/bot/v2/liff/model/liff_features.rb +72 -0
  41. data/lib/line/bot/v2/liff/model/liff_scope.rb +21 -0
  42. data/lib/line/bot/v2/liff/model/liff_view.rb +79 -0
  43. data/lib/line/bot/v2/liff/model/update_liff_app_request.rb +97 -0
  44. data/lib/line/bot/v2/liff/model/update_liff_view.rb +79 -0
  45. data/lib/line/bot/v2/manage_audience/api/manage_audience_blob_client.rb +182 -0
  46. data/lib/line/bot/v2/manage_audience/api/manage_audience_client.rb +616 -0
  47. data/lib/line/bot/v2/manage_audience/core.rb +42 -0
  48. data/lib/line/bot/v2/manage_audience/model/adaccount.rb +67 -0
  49. data/lib/line/bot/v2/manage_audience/model/add_audience_to_audience_group_request.rb +86 -0
  50. data/lib/line/bot/v2/manage_audience/model/audience.rb +67 -0
  51. data/lib/line/bot/v2/manage_audience/model/audience_group.rb +133 -0
  52. data/lib/line/bot/v2/manage_audience/model/audience_group_create_route.rb +21 -0
  53. data/lib/line/bot/v2/manage_audience/model/audience_group_failed_type.rb +21 -0
  54. data/lib/line/bot/v2/manage_audience/model/audience_group_job.rb +110 -0
  55. data/lib/line/bot/v2/manage_audience/model/audience_group_job_failed_type.rb +21 -0
  56. data/lib/line/bot/v2/manage_audience/model/audience_group_job_status.rb +21 -0
  57. data/lib/line/bot/v2/manage_audience/model/audience_group_job_type.rb +21 -0
  58. data/lib/line/bot/v2/manage_audience/model/audience_group_permission.rb +21 -0
  59. data/lib/line/bot/v2/manage_audience/model/audience_group_status.rb +21 -0
  60. data/lib/line/bot/v2/manage_audience/model/audience_group_type.rb +21 -0
  61. data/lib/line/bot/v2/manage_audience/model/create_audience_group_request.rb +92 -0
  62. data/lib/line/bot/v2/manage_audience/model/create_audience_group_response.rb +110 -0
  63. data/lib/line/bot/v2/manage_audience/model/create_click_based_audience_group_request.rb +80 -0
  64. data/lib/line/bot/v2/manage_audience/model/create_click_based_audience_group_response.rb +122 -0
  65. data/lib/line/bot/v2/manage_audience/model/create_imp_based_audience_group_request.rb +74 -0
  66. data/lib/line/bot/v2/manage_audience/model/create_imp_based_audience_group_response.rb +92 -0
  67. data/lib/line/bot/v2/manage_audience/model/detailed_owner.rb +79 -0
  68. data/lib/line/bot/v2/manage_audience/model/error_detail.rb +72 -0
  69. data/lib/line/bot/v2/manage_audience/model/error_response.rb +79 -0
  70. data/lib/line/bot/v2/manage_audience/model/get_audience_data_response.rb +86 -0
  71. data/lib/line/bot/v2/manage_audience/model/get_audience_groups_response.rb +104 -0
  72. data/lib/line/bot/v2/manage_audience/model/get_shared_audience_data_response.rb +86 -0
  73. data/lib/line/bot/v2/manage_audience/model/get_shared_audience_groups_response.rb +104 -0
  74. data/lib/line/bot/v2/manage_audience/model/update_audience_group_description_request.rb +68 -0
  75. data/lib/line/bot/v2/messaging_api/api/messaging_api_blob_client.rb +282 -0
  76. data/lib/line/bot/v2/messaging_api/api/messaging_api_client.rb +3354 -0
  77. data/lib/line/bot/v2/messaging_api/core.rb +173 -0
  78. data/lib/line/bot/v2/messaging_api/model/action.rb +92 -0
  79. data/lib/line/bot/v2/messaging_api/model/age_demographic.rb +20 -0
  80. data/lib/line/bot/v2/messaging_api/model/age_demographic_filter.rb +78 -0
  81. data/lib/line/bot/v2/messaging_api/model/all_mention_target.rb +67 -0
  82. data/lib/line/bot/v2/messaging_api/model/alt_uri.rb +66 -0
  83. data/lib/line/bot/v2/messaging_api/model/app_type_demographic.rb +20 -0
  84. data/lib/line/bot/v2/messaging_api/model/app_type_demographic_filter.rb +72 -0
  85. data/lib/line/bot/v2/messaging_api/model/area_demographic.rb +21 -0
  86. data/lib/line/bot/v2/messaging_api/model/area_demographic_filter.rb +72 -0
  87. data/lib/line/bot/v2/messaging_api/model/audience_recipient.rb +72 -0
  88. data/lib/line/bot/v2/messaging_api/model/audio_message.rb +91 -0
  89. data/lib/line/bot/v2/messaging_api/model/bot_info_response.rb +103 -0
  90. data/lib/line/bot/v2/messaging_api/model/broadcast_request.rb +79 -0
  91. data/lib/line/bot/v2/messaging_api/model/buttons_template.rb +120 -0
  92. data/lib/line/bot/v2/messaging_api/model/camera_action.rb +72 -0
  93. data/lib/line/bot/v2/messaging_api/model/camera_roll_action.rb +72 -0
  94. data/lib/line/bot/v2/messaging_api/model/carousel_column.rb +103 -0
  95. data/lib/line/bot/v2/messaging_api/model/carousel_template.rb +90 -0
  96. data/lib/line/bot/v2/messaging_api/model/chat_reference.rb +68 -0
  97. data/lib/line/bot/v2/messaging_api/model/clipboard_action.rb +79 -0
  98. data/lib/line/bot/v2/messaging_api/model/clipboard_imagemap_action.rb +85 -0
  99. data/lib/line/bot/v2/messaging_api/model/confirm_template.rb +84 -0
  100. data/lib/line/bot/v2/messaging_api/model/create_rich_menu_alias_request.rb +73 -0
  101. data/lib/line/bot/v2/messaging_api/model/datetime_picker_action.rb +103 -0
  102. data/lib/line/bot/v2/messaging_api/model/demographic_filter.rb +82 -0
  103. data/lib/line/bot/v2/messaging_api/model/emoji.rb +78 -0
  104. data/lib/line/bot/v2/messaging_api/model/emoji_substitution_object.rb +80 -0
  105. data/lib/line/bot/v2/messaging_api/model/error_detail.rb +72 -0
  106. data/lib/line/bot/v2/messaging_api/model/error_response.rb +91 -0
  107. data/lib/line/bot/v2/messaging_api/model/filter.rb +67 -0
  108. data/lib/line/bot/v2/messaging_api/model/flex_block_style.rb +78 -0
  109. data/lib/line/bot/v2/messaging_api/model/flex_box.rb +234 -0
  110. data/lib/line/bot/v2/messaging_api/model/flex_box_background.rb +76 -0
  111. data/lib/line/bot/v2/messaging_api/model/flex_box_border_width.rb +21 -0
  112. data/lib/line/bot/v2/messaging_api/model/flex_box_corner_radius.rb +21 -0
  113. data/lib/line/bot/v2/messaging_api/model/flex_box_linear_gradient.rb +96 -0
  114. data/lib/line/bot/v2/messaging_api/model/flex_box_padding.rb +21 -0
  115. data/lib/line/bot/v2/messaging_api/model/flex_box_spacing.rb +21 -0
  116. data/lib/line/bot/v2/messaging_api/model/flex_bubble.rb +114 -0
  117. data/lib/line/bot/v2/messaging_api/model/flex_bubble_styles.rb +84 -0
  118. data/lib/line/bot/v2/messaging_api/model/flex_button.rb +150 -0
  119. data/lib/line/bot/v2/messaging_api/model/flex_carousel.rb +78 -0
  120. data/lib/line/bot/v2/messaging_api/model/flex_component.rb +84 -0
  121. data/lib/line/bot/v2/messaging_api/model/flex_container.rb +77 -0
  122. data/lib/line/bot/v2/messaging_api/model/flex_filler.rb +72 -0
  123. data/lib/line/bot/v2/messaging_api/model/flex_icon.rb +127 -0
  124. data/lib/line/bot/v2/messaging_api/model/flex_icon_size.rb +21 -0
  125. data/lib/line/bot/v2/messaging_api/model/flex_image.rb +163 -0
  126. data/lib/line/bot/v2/messaging_api/model/flex_image_size.rb +21 -0
  127. data/lib/line/bot/v2/messaging_api/model/flex_margin.rb +21 -0
  128. data/lib/line/bot/v2/messaging_api/model/flex_message.rb +91 -0
  129. data/lib/line/bot/v2/messaging_api/model/flex_offset.rb +21 -0
  130. data/lib/line/bot/v2/messaging_api/model/flex_separator.rb +78 -0
  131. data/lib/line/bot/v2/messaging_api/model/flex_span.rb +102 -0
  132. data/lib/line/bot/v2/messaging_api/model/flex_span_size.rb +21 -0
  133. data/lib/line/bot/v2/messaging_api/model/flex_text.rb +204 -0
  134. data/lib/line/bot/v2/messaging_api/model/flex_text_font_size.rb +21 -0
  135. data/lib/line/bot/v2/messaging_api/model/flex_video.rb +96 -0
  136. data/lib/line/bot/v2/messaging_api/model/gender_demographic.rb +20 -0
  137. data/lib/line/bot/v2/messaging_api/model/gender_demographic_filter.rb +72 -0
  138. data/lib/line/bot/v2/messaging_api/model/get_aggregation_unit_name_list_response.rb +73 -0
  139. data/lib/line/bot/v2/messaging_api/model/get_aggregation_unit_usage_response.rb +67 -0
  140. data/lib/line/bot/v2/messaging_api/model/get_followers_response.rb +73 -0
  141. data/lib/line/bot/v2/messaging_api/model/get_joined_membership_users_response.rb +74 -0
  142. data/lib/line/bot/v2/messaging_api/model/get_membership_subscription_response.rb +74 -0
  143. data/lib/line/bot/v2/messaging_api/model/get_message_content_transcoding_response.rb +68 -0
  144. data/lib/line/bot/v2/messaging_api/model/get_webhook_endpoint_response.rb +73 -0
  145. data/lib/line/bot/v2/messaging_api/model/group_member_count_response.rb +67 -0
  146. data/lib/line/bot/v2/messaging_api/model/group_summary_response.rb +79 -0
  147. data/lib/line/bot/v2/messaging_api/model/group_user_profile_response.rb +79 -0
  148. data/lib/line/bot/v2/messaging_api/model/image_carousel_column.rb +72 -0
  149. data/lib/line/bot/v2/messaging_api/model/image_carousel_template.rb +78 -0
  150. data/lib/line/bot/v2/messaging_api/model/image_message.rb +91 -0
  151. data/lib/line/bot/v2/messaging_api/model/imagemap_action.rb +85 -0
  152. data/lib/line/bot/v2/messaging_api/model/imagemap_area.rb +84 -0
  153. data/lib/line/bot/v2/messaging_api/model/imagemap_base_size.rb +72 -0
  154. data/lib/line/bot/v2/messaging_api/model/imagemap_external_link.rb +72 -0
  155. data/lib/line/bot/v2/messaging_api/model/imagemap_message.rb +115 -0
  156. data/lib/line/bot/v2/messaging_api/model/imagemap_video.rb +84 -0
  157. data/lib/line/bot/v2/messaging_api/model/issue_link_token_response.rb +67 -0
  158. data/lib/line/bot/v2/messaging_api/model/limit.rb +74 -0
  159. data/lib/line/bot/v2/messaging_api/model/location_action.rb +72 -0
  160. data/lib/line/bot/v2/messaging_api/model/location_message.rb +103 -0
  161. data/lib/line/bot/v2/messaging_api/model/mark_messages_as_read_request.rb +67 -0
  162. data/lib/line/bot/v2/messaging_api/model/members_ids_response.rb +72 -0
  163. data/lib/line/bot/v2/messaging_api/model/membership.rb +120 -0
  164. data/lib/line/bot/v2/messaging_api/model/membership_list_response.rb +73 -0
  165. data/lib/line/bot/v2/messaging_api/model/mention_substitution_object.rb +74 -0
  166. data/lib/line/bot/v2/messaging_api/model/mention_target.rb +77 -0
  167. data/lib/line/bot/v2/messaging_api/model/message.rb +98 -0
  168. data/lib/line/bot/v2/messaging_api/model/message_action.rb +78 -0
  169. data/lib/line/bot/v2/messaging_api/model/message_imagemap_action.rb +84 -0
  170. data/lib/line/bot/v2/messaging_api/model/message_quota_response.rb +73 -0
  171. data/lib/line/bot/v2/messaging_api/model/multicast_request.rb +91 -0
  172. data/lib/line/bot/v2/messaging_api/model/narrowcast_progress_response.rb +109 -0
  173. data/lib/line/bot/v2/messaging_api/model/narrowcast_request.rb +97 -0
  174. data/lib/line/bot/v2/messaging_api/model/number_of_messages_response.rb +72 -0
  175. data/lib/line/bot/v2/messaging_api/model/operator_demographic_filter.rb +96 -0
  176. data/lib/line/bot/v2/messaging_api/model/operator_recipient.rb +96 -0
  177. data/lib/line/bot/v2/messaging_api/model/pnp_messages_request.rb +85 -0
  178. data/lib/line/bot/v2/messaging_api/model/postback_action.rb +102 -0
  179. data/lib/line/bot/v2/messaging_api/model/push_message_request.rb +91 -0
  180. data/lib/line/bot/v2/messaging_api/model/push_message_response.rb +73 -0
  181. data/lib/line/bot/v2/messaging_api/model/quick_reply.rb +74 -0
  182. data/lib/line/bot/v2/messaging_api/model/quick_reply_item.rb +79 -0
  183. data/lib/line/bot/v2/messaging_api/model/quota_consumption_response.rb +67 -0
  184. data/lib/line/bot/v2/messaging_api/model/quota_type.rb +22 -0
  185. data/lib/line/bot/v2/messaging_api/model/recipient.rb +79 -0
  186. data/lib/line/bot/v2/messaging_api/model/redelivery_recipient.rb +72 -0
  187. data/lib/line/bot/v2/messaging_api/model/reply_message_request.rb +85 -0
  188. data/lib/line/bot/v2/messaging_api/model/reply_message_response.rb +73 -0
  189. data/lib/line/bot/v2/messaging_api/model/rich_menu_alias_list_response.rb +73 -0
  190. data/lib/line/bot/v2/messaging_api/model/rich_menu_alias_response.rb +72 -0
  191. data/lib/line/bot/v2/messaging_api/model/rich_menu_area.rb +73 -0
  192. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_link_operation.rb +79 -0
  193. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_operation.rb +80 -0
  194. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_progress_phase.rb +21 -0
  195. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_progress_response.rb +79 -0
  196. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_request.rb +78 -0
  197. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_all_operation.rb +67 -0
  198. data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_operation.rb +73 -0
  199. data/lib/line/bot/v2/messaging_api/model/rich_menu_bounds.rb +86 -0
  200. data/lib/line/bot/v2/messaging_api/model/rich_menu_bulk_link_request.rb +73 -0
  201. data/lib/line/bot/v2/messaging_api/model/rich_menu_bulk_unlink_request.rb +67 -0
  202. data/lib/line/bot/v2/messaging_api/model/rich_menu_id_response.rb +66 -0
  203. data/lib/line/bot/v2/messaging_api/model/rich_menu_list_response.rb +73 -0
  204. data/lib/line/bot/v2/messaging_api/model/rich_menu_request.rb +96 -0
  205. data/lib/line/bot/v2/messaging_api/model/rich_menu_response.rb +102 -0
  206. data/lib/line/bot/v2/messaging_api/model/rich_menu_size.rb +73 -0
  207. data/lib/line/bot/v2/messaging_api/model/rich_menu_switch_action.rb +84 -0
  208. data/lib/line/bot/v2/messaging_api/model/room_member_count_response.rb +67 -0
  209. data/lib/line/bot/v2/messaging_api/model/room_user_profile_response.rb +79 -0
  210. data/lib/line/bot/v2/messaging_api/model/sender.rb +73 -0
  211. data/lib/line/bot/v2/messaging_api/model/sent_message.rb +72 -0
  212. data/lib/line/bot/v2/messaging_api/model/set_webhook_endpoint_request.rb +67 -0
  213. data/lib/line/bot/v2/messaging_api/model/show_loading_animation_request.rb +73 -0
  214. data/lib/line/bot/v2/messaging_api/model/sticker_message.rb +97 -0
  215. data/lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb +97 -0
  216. data/lib/line/bot/v2/messaging_api/model/subscribed_membership_user.rb +85 -0
  217. data/lib/line/bot/v2/messaging_api/model/subscription.rb +73 -0
  218. data/lib/line/bot/v2/messaging_api/model/subscription_period_demographic.rb +20 -0
  219. data/lib/line/bot/v2/messaging_api/model/subscription_period_demographic_filter.rb +78 -0
  220. data/lib/line/bot/v2/messaging_api/model/substitution_object.rb +78 -0
  221. data/lib/line/bot/v2/messaging_api/model/template.rb +79 -0
  222. data/lib/line/bot/v2/messaging_api/model/template_image_aspect_ratio.rb +21 -0
  223. data/lib/line/bot/v2/messaging_api/model/template_image_size.rb +21 -0
  224. data/lib/line/bot/v2/messaging_api/model/template_message.rb +91 -0
  225. data/lib/line/bot/v2/messaging_api/model/test_webhook_endpoint_request.rb +67 -0
  226. data/lib/line/bot/v2/messaging_api/model/test_webhook_endpoint_response.rb +91 -0
  227. data/lib/line/bot/v2/messaging_api/model/text_message.rb +103 -0
  228. data/lib/line/bot/v2/messaging_api/model/text_message_v2.rb +97 -0
  229. data/lib/line/bot/v2/messaging_api/model/update_rich_menu_alias_request.rb +67 -0
  230. data/lib/line/bot/v2/messaging_api/model/uri_action.rb +84 -0
  231. data/lib/line/bot/v2/messaging_api/model/uri_imagemap_action.rb +84 -0
  232. data/lib/line/bot/v2/messaging_api/model/user_mention_target.rb +73 -0
  233. data/lib/line/bot/v2/messaging_api/model/user_profile_response.rb +91 -0
  234. data/lib/line/bot/v2/messaging_api/model/validate_message_request.rb +72 -0
  235. data/lib/line/bot/v2/messaging_api/model/video_message.rb +97 -0
  236. data/lib/line/bot/v2/module/api/line_module_client.rb +247 -0
  237. data/lib/line/bot/v2/module/core.rb +18 -0
  238. data/lib/line/bot/v2/module/model/acquire_chat_control_request.rb +74 -0
  239. data/lib/line/bot/v2/module/model/detach_module_request.rb +68 -0
  240. data/lib/line/bot/v2/module/model/get_modules_response.rb +80 -0
  241. data/lib/line/bot/v2/module/model/module_bot.rb +92 -0
  242. data/lib/line/bot/v2/module_attach/api/line_module_attach_client.rb +160 -0
  243. data/lib/line/bot/v2/module_attach/core.rb +15 -0
  244. data/lib/line/bot/v2/module_attach/model/attach_module_response.rb +73 -0
  245. data/lib/line/bot/v2/reserved_words.rb +50 -0
  246. data/lib/line/bot/v2/shop/api/shop_client.rb +95 -0
  247. data/lib/line/bot/v2/shop/core.rb +16 -0
  248. data/lib/line/bot/v2/shop/model/error_response.rb +67 -0
  249. data/lib/line/bot/v2/shop/model/mission_sticker_request.rb +86 -0
  250. data/lib/line/bot/v2/utils.rb +143 -0
  251. data/lib/line/bot/v2/webhook/core.rb +77 -0
  252. data/lib/line/bot/v2/webhook/model/account_link_event.rb +109 -0
  253. data/lib/line/bot/v2/webhook/model/action_result.rb +72 -0
  254. data/lib/line/bot/v2/webhook/model/activated_event.rb +103 -0
  255. data/lib/line/bot/v2/webhook/model/all_mentionee.rb +79 -0
  256. data/lib/line/bot/v2/webhook/model/attached_module_content.rb +78 -0
  257. data/lib/line/bot/v2/webhook/model/audio_message_content.rb +84 -0
  258. data/lib/line/bot/v2/webhook/model/beacon_content.rb +78 -0
  259. data/lib/line/bot/v2/webhook/model/beacon_event.rb +109 -0
  260. data/lib/line/bot/v2/webhook/model/bot_resumed_event.rb +97 -0
  261. data/lib/line/bot/v2/webhook/model/bot_suspended_event.rb +97 -0
  262. data/lib/line/bot/v2/webhook/model/callback_request.rb +80 -0
  263. data/lib/line/bot/v2/webhook/model/chat_control.rb +66 -0
  264. data/lib/line/bot/v2/webhook/model/content_provider.rb +79 -0
  265. data/lib/line/bot/v2/webhook/model/deactivated_event.rb +97 -0
  266. data/lib/line/bot/v2/webhook/model/delivery_context.rb +67 -0
  267. data/lib/line/bot/v2/webhook/model/detached_module_content.rb +78 -0
  268. data/lib/line/bot/v2/webhook/model/emoji.rb +84 -0
  269. data/lib/line/bot/v2/webhook/model/event.rb +126 -0
  270. data/lib/line/bot/v2/webhook/model/event_mode.rb +21 -0
  271. data/lib/line/bot/v2/webhook/model/file_message_content.rb +84 -0
  272. data/lib/line/bot/v2/webhook/model/follow_detail.rb +66 -0
  273. data/lib/line/bot/v2/webhook/model/follow_event.rb +109 -0
  274. data/lib/line/bot/v2/webhook/model/group_source.rb +78 -0
  275. data/lib/line/bot/v2/webhook/model/image_message_content.rb +90 -0
  276. data/lib/line/bot/v2/webhook/model/image_set.rb +78 -0
  277. data/lib/line/bot/v2/webhook/model/join_event.rb +103 -0
  278. data/lib/line/bot/v2/webhook/model/joined_members.rb +72 -0
  279. data/lib/line/bot/v2/webhook/model/joined_membership_content.rb +72 -0
  280. data/lib/line/bot/v2/webhook/model/leave_event.rb +97 -0
  281. data/lib/line/bot/v2/webhook/model/left_members.rb +72 -0
  282. data/lib/line/bot/v2/webhook/model/left_membership_content.rb +72 -0
  283. data/lib/line/bot/v2/webhook/model/link_content.rb +73 -0
  284. data/lib/line/bot/v2/webhook/model/link_things_content.rb +72 -0
  285. data/lib/line/bot/v2/webhook/model/location_message_content.rb +96 -0
  286. data/lib/line/bot/v2/webhook/model/member_joined_event.rb +109 -0
  287. data/lib/line/bot/v2/webhook/model/member_left_event.rb +103 -0
  288. data/lib/line/bot/v2/webhook/model/membership_content.rb +79 -0
  289. data/lib/line/bot/v2/webhook/model/membership_event.rb +109 -0
  290. data/lib/line/bot/v2/webhook/model/mention.rb +72 -0
  291. data/lib/line/bot/v2/webhook/model/mentionee.rb +90 -0
  292. data/lib/line/bot/v2/webhook/model/message_content.rb +89 -0
  293. data/lib/line/bot/v2/webhook/model/message_event.rb +109 -0
  294. data/lib/line/bot/v2/webhook/model/module_content.rb +77 -0
  295. data/lib/line/bot/v2/webhook/model/module_event.rb +103 -0
  296. data/lib/line/bot/v2/webhook/model/pnp_delivery.rb +67 -0
  297. data/lib/line/bot/v2/webhook/model/pnp_delivery_completion_event.rb +103 -0
  298. data/lib/line/bot/v2/webhook/model/postback_content.rb +72 -0
  299. data/lib/line/bot/v2/webhook/model/postback_event.rb +109 -0
  300. data/lib/line/bot/v2/webhook/model/renewed_membership_content.rb +72 -0
  301. data/lib/line/bot/v2/webhook/model/room_source.rb +78 -0
  302. data/lib/line/bot/v2/webhook/model/scenario_result.rb +115 -0
  303. data/lib/line/bot/v2/webhook/model/scenario_result_things_content.rb +78 -0
  304. data/lib/line/bot/v2/webhook/model/source.rb +80 -0
  305. data/lib/line/bot/v2/webhook/model/sticker_message_content.rb +115 -0
  306. data/lib/line/bot/v2/webhook/model/text_message_content.rb +108 -0
  307. data/lib/line/bot/v2/webhook/model/things_content.rb +78 -0
  308. data/lib/line/bot/v2/webhook/model/things_event.rb +109 -0
  309. data/lib/line/bot/v2/webhook/model/unfollow_event.rb +97 -0
  310. data/lib/line/bot/v2/webhook/model/unlink_things_content.rb +72 -0
  311. data/lib/line/bot/v2/webhook/model/unsend_detail.rb +66 -0
  312. data/lib/line/bot/v2/webhook/model/unsend_event.rb +103 -0
  313. data/lib/line/bot/v2/webhook/model/user_mentionee.rb +91 -0
  314. data/lib/line/bot/v2/webhook/model/user_source.rb +72 -0
  315. data/lib/line/bot/v2/webhook/model/video_message_content.rb +90 -0
  316. data/lib/line/bot/v2/webhook/model/video_play_complete.rb +66 -0
  317. data/lib/line/bot/v2/webhook/model/video_play_complete_event.rb +109 -0
  318. data/lib/line/bot/v2/webhook_parser.rb +94 -0
  319. data/lib/line/bot/version.rb +7 -0
  320. data/lib/line/bot.rb +15 -9
  321. data/line-bot-api.gemspec +23 -18
  322. data/sig/line/bot/v2/channel_access_token/api/channel_access_token_client.rbs +327 -0
  323. data/sig/line/bot/v2/channel_access_token/model/channel_access_token_key_ids_response.rbs +41 -0
  324. data/sig/line/bot/v2/channel_access_token/model/error_response.rbs +43 -0
  325. data/sig/line/bot/v2/channel_access_token/model/issue_channel_access_token_response.rbs +50 -0
  326. data/sig/line/bot/v2/channel_access_token/model/issue_short_lived_channel_access_token_response.rbs +47 -0
  327. data/sig/line/bot/v2/channel_access_token/model/issue_stateless_channel_access_token_response.rbs +47 -0
  328. data/sig/line/bot/v2/channel_access_token/model/verify_channel_access_token_response.rbs +46 -0
  329. data/sig/line/bot/v2/http_client.rbs +111 -0
  330. data/sig/line/bot/v2/insight/api/insight_client.rbs +196 -0
  331. data/sig/line/bot/v2/insight/model/age_tile.rbs +42 -0
  332. data/sig/line/bot/v2/insight/model/app_type_tile.rbs +42 -0
  333. data/sig/line/bot/v2/insight/model/area_tile.rbs +42 -0
  334. data/sig/line/bot/v2/insight/model/error_detail.rbs +42 -0
  335. data/sig/line/bot/v2/insight/model/error_response.rbs +43 -0
  336. data/sig/line/bot/v2/insight/model/gender_tile.rbs +42 -0
  337. data/sig/line/bot/v2/insight/model/get_friends_demographics_response.rbs +56 -0
  338. data/sig/line/bot/v2/insight/model/get_message_event_response.rbs +47 -0
  339. data/sig/line/bot/v2/insight/model/get_message_event_response_click.rbs +51 -0
  340. data/sig/line/bot/v2/insight/model/get_message_event_response_message.rbs +72 -0
  341. data/sig/line/bot/v2/insight/model/get_message_event_response_overview.rbs +58 -0
  342. data/sig/line/bot/v2/insight/model/get_number_of_followers_response.rbs +50 -0
  343. data/sig/line/bot/v2/insight/model/get_number_of_message_deliveries_response.rbs +71 -0
  344. data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response.rbs +47 -0
  345. data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response_click.rbs +52 -0
  346. data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response_message.rbs +76 -0
  347. data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response_overview.rbs +50 -0
  348. data/sig/line/bot/v2/insight/model/subscription_period_tile.rbs +42 -0
  349. data/sig/line/bot/v2/liff/api/liff_client.rbs +198 -0
  350. data/sig/line/bot/v2/liff/model/add_liff_app_request.rbs +55 -0
  351. data/sig/line/bot/v2/liff/model/add_liff_app_response.rbs +39 -0
  352. data/sig/line/bot/v2/liff/model/get_all_liff_apps_response.rbs +39 -0
  353. data/sig/line/bot/v2/liff/model/liff_app.rbs +57 -0
  354. data/sig/line/bot/v2/liff/model/liff_bot_prompt.rbs +21 -0
  355. data/sig/line/bot/v2/liff/model/liff_features.rbs +42 -0
  356. data/sig/line/bot/v2/liff/model/liff_scope.rbs +21 -0
  357. data/sig/line/bot/v2/liff/model/liff_view.rbs +46 -0
  358. data/sig/line/bot/v2/liff/model/update_liff_app_request.rbs +55 -0
  359. data/sig/line/bot/v2/liff/model/update_liff_view.rbs +46 -0
  360. data/sig/line/bot/v2/manage_audience/api/manage_audience_blob_client.rbs +122 -0
  361. data/sig/line/bot/v2/manage_audience/api/manage_audience_client.rbs +394 -0
  362. data/sig/line/bot/v2/manage_audience/model/adaccount.rbs +40 -0
  363. data/sig/line/bot/v2/manage_audience/model/add_audience_to_audience_group_request.rbs +47 -0
  364. data/sig/line/bot/v2/manage_audience/model/audience.rbs +40 -0
  365. data/sig/line/bot/v2/manage_audience/model/audience_group.rbs +73 -0
  366. data/sig/line/bot/v2/manage_audience/model/audience_group_create_route.rbs +21 -0
  367. data/sig/line/bot/v2/manage_audience/model/audience_group_failed_type.rbs +21 -0
  368. data/sig/line/bot/v2/manage_audience/model/audience_group_job.rbs +62 -0
  369. data/sig/line/bot/v2/manage_audience/model/audience_group_job_failed_type.rbs +21 -0
  370. data/sig/line/bot/v2/manage_audience/model/audience_group_job_status.rbs +21 -0
  371. data/sig/line/bot/v2/manage_audience/model/audience_group_job_type.rbs +21 -0
  372. data/sig/line/bot/v2/manage_audience/model/audience_group_permission.rbs +21 -0
  373. data/sig/line/bot/v2/manage_audience/model/audience_group_status.rbs +21 -0
  374. data/sig/line/bot/v2/manage_audience/model/audience_group_type.rbs +21 -0
  375. data/sig/line/bot/v2/manage_audience/model/create_audience_group_request.rbs +50 -0
  376. data/sig/line/bot/v2/manage_audience/model/create_audience_group_response.rbs +62 -0
  377. data/sig/line/bot/v2/manage_audience/model/create_click_based_audience_group_request.rbs +47 -0
  378. data/sig/line/bot/v2/manage_audience/model/create_click_based_audience_group_response.rbs +68 -0
  379. data/sig/line/bot/v2/manage_audience/model/create_imp_based_audience_group_request.rbs +44 -0
  380. data/sig/line/bot/v2/manage_audience/model/create_imp_based_audience_group_response.rbs +53 -0
  381. data/sig/line/bot/v2/manage_audience/model/detailed_owner.rbs +46 -0
  382. data/sig/line/bot/v2/manage_audience/model/error_detail.rbs +42 -0
  383. data/sig/line/bot/v2/manage_audience/model/error_response.rbs +43 -0
  384. data/sig/line/bot/v2/manage_audience/model/get_audience_data_response.rbs +47 -0
  385. data/sig/line/bot/v2/manage_audience/model/get_audience_groups_response.rbs +56 -0
  386. data/sig/line/bot/v2/manage_audience/model/get_shared_audience_data_response.rbs +47 -0
  387. data/sig/line/bot/v2/manage_audience/model/get_shared_audience_groups_response.rbs +56 -0
  388. data/sig/line/bot/v2/manage_audience/model/update_audience_group_description_request.rbs +41 -0
  389. data/sig/line/bot/v2/messaging_api/api/messaging_api_blob_client.rbs +196 -0
  390. data/sig/line/bot/v2/messaging_api/api/messaging_api_client.rbs +2072 -0
  391. data/sig/line/bot/v2/messaging_api/model/action.rbs +48 -0
  392. data/sig/line/bot/v2/messaging_api/model/age_demographic.rbs +20 -0
  393. data/sig/line/bot/v2/messaging_api/model/age_demographic_filter.rbs +43 -0
  394. data/sig/line/bot/v2/messaging_api/model/all_mention_target.rbs +38 -0
  395. data/sig/line/bot/v2/messaging_api/model/alt_uri.rbs +39 -0
  396. data/sig/line/bot/v2/messaging_api/model/app_type_demographic.rbs +20 -0
  397. data/sig/line/bot/v2/messaging_api/model/app_type_demographic_filter.rbs +40 -0
  398. data/sig/line/bot/v2/messaging_api/model/area_demographic.rbs +21 -0
  399. data/sig/line/bot/v2/messaging_api/model/area_demographic_filter.rbs +40 -0
  400. data/sig/line/bot/v2/messaging_api/model/audience_recipient.rbs +40 -0
  401. data/sig/line/bot/v2/messaging_api/model/audio_message.rbs +50 -0
  402. data/sig/line/bot/v2/messaging_api/model/bot_info_response.rbs +58 -0
  403. data/sig/line/bot/v2/messaging_api/model/broadcast_request.rbs +43 -0
  404. data/sig/line/bot/v2/messaging_api/model/buttons_template.rbs +61 -0
  405. data/sig/line/bot/v2/messaging_api/model/camera_action.rbs +40 -0
  406. data/sig/line/bot/v2/messaging_api/model/camera_roll_action.rbs +40 -0
  407. data/sig/line/bot/v2/messaging_api/model/carousel_column.rbs +55 -0
  408. data/sig/line/bot/v2/messaging_api/model/carousel_template.rbs +46 -0
  409. data/sig/line/bot/v2/messaging_api/model/chat_reference.rbs +41 -0
  410. data/sig/line/bot/v2/messaging_api/model/clipboard_action.rbs +44 -0
  411. data/sig/line/bot/v2/messaging_api/model/clipboard_imagemap_action.rbs +47 -0
  412. data/sig/line/bot/v2/messaging_api/model/confirm_template.rbs +43 -0
  413. data/sig/line/bot/v2/messaging_api/model/create_rich_menu_alias_request.rbs +43 -0
  414. data/sig/line/bot/v2/messaging_api/model/datetime_picker_action.rbs +56 -0
  415. data/sig/line/bot/v2/messaging_api/model/demographic_filter.rbs +44 -0
  416. data/sig/line/bot/v2/messaging_api/model/emoji.rbs +45 -0
  417. data/sig/line/bot/v2/messaging_api/model/emoji_substitution_object.rbs +45 -0
  418. data/sig/line/bot/v2/messaging_api/model/error_detail.rbs +42 -0
  419. data/sig/line/bot/v2/messaging_api/model/error_response.rbs +46 -0
  420. data/sig/line/bot/v2/messaging_api/model/filter.rbs +40 -0
  421. data/sig/line/bot/v2/messaging_api/model/flex_block_style.rbs +45 -0
  422. data/sig/line/bot/v2/messaging_api/model/flex_box.rbs +118 -0
  423. data/sig/line/bot/v2/messaging_api/model/flex_box_background.rbs +43 -0
  424. data/sig/line/bot/v2/messaging_api/model/flex_box_border_width.rbs +21 -0
  425. data/sig/line/bot/v2/messaging_api/model/flex_box_corner_radius.rbs +21 -0
  426. data/sig/line/bot/v2/messaging_api/model/flex_box_linear_gradient.rbs +52 -0
  427. data/sig/line/bot/v2/messaging_api/model/flex_box_padding.rbs +21 -0
  428. data/sig/line/bot/v2/messaging_api/model/flex_box_spacing.rbs +21 -0
  429. data/sig/line/bot/v2/messaging_api/model/flex_bubble.rbs +61 -0
  430. data/sig/line/bot/v2/messaging_api/model/flex_bubble_styles.rbs +48 -0
  431. data/sig/line/bot/v2/messaging_api/model/flex_button.rbs +79 -0
  432. data/sig/line/bot/v2/messaging_api/model/flex_carousel.rbs +40 -0
  433. data/sig/line/bot/v2/messaging_api/model/flex_component.rbs +43 -0
  434. data/sig/line/bot/v2/messaging_api/model/flex_container.rbs +43 -0
  435. data/sig/line/bot/v2/messaging_api/model/flex_filler.rbs +40 -0
  436. data/sig/line/bot/v2/messaging_api/model/flex_icon.rbs +68 -0
  437. data/sig/line/bot/v2/messaging_api/model/flex_icon_size.rbs +21 -0
  438. data/sig/line/bot/v2/messaging_api/model/flex_image.rbs +86 -0
  439. data/sig/line/bot/v2/messaging_api/model/flex_image_size.rbs +21 -0
  440. data/sig/line/bot/v2/messaging_api/model/flex_margin.rbs +21 -0
  441. data/sig/line/bot/v2/messaging_api/model/flex_message.rbs +50 -0
  442. data/sig/line/bot/v2/messaging_api/model/flex_offset.rbs +21 -0
  443. data/sig/line/bot/v2/messaging_api/model/flex_separator.rbs +43 -0
  444. data/sig/line/bot/v2/messaging_api/model/flex_span.rbs +55 -0
  445. data/sig/line/bot/v2/messaging_api/model/flex_span_size.rbs +21 -0
  446. data/sig/line/bot/v2/messaging_api/model/flex_text.rbs +103 -0
  447. data/sig/line/bot/v2/messaging_api/model/flex_text_font_size.rbs +21 -0
  448. data/sig/line/bot/v2/messaging_api/model/flex_video.rbs +52 -0
  449. data/sig/line/bot/v2/messaging_api/model/gender_demographic.rbs +20 -0
  450. data/sig/line/bot/v2/messaging_api/model/gender_demographic_filter.rbs +40 -0
  451. data/sig/line/bot/v2/messaging_api/model/get_aggregation_unit_name_list_response.rbs +43 -0
  452. data/sig/line/bot/v2/messaging_api/model/get_aggregation_unit_usage_response.rbs +40 -0
  453. data/sig/line/bot/v2/messaging_api/model/get_followers_response.rbs +43 -0
  454. data/sig/line/bot/v2/messaging_api/model/get_joined_membership_users_response.rbs +44 -0
  455. data/sig/line/bot/v2/messaging_api/model/get_membership_subscription_response.rbs +41 -0
  456. data/sig/line/bot/v2/messaging_api/model/get_message_content_transcoding_response.rbs +41 -0
  457. data/sig/line/bot/v2/messaging_api/model/get_webhook_endpoint_response.rbs +43 -0
  458. data/sig/line/bot/v2/messaging_api/model/group_member_count_response.rbs +40 -0
  459. data/sig/line/bot/v2/messaging_api/model/group_summary_response.rbs +46 -0
  460. data/sig/line/bot/v2/messaging_api/model/group_user_profile_response.rbs +46 -0
  461. data/sig/line/bot/v2/messaging_api/model/image_carousel_column.rbs +42 -0
  462. data/sig/line/bot/v2/messaging_api/model/image_carousel_template.rbs +40 -0
  463. data/sig/line/bot/v2/messaging_api/model/image_message.rbs +50 -0
  464. data/sig/line/bot/v2/messaging_api/model/imagemap_action.rbs +47 -0
  465. data/sig/line/bot/v2/messaging_api/model/imagemap_area.rbs +48 -0
  466. data/sig/line/bot/v2/messaging_api/model/imagemap_base_size.rbs +42 -0
  467. data/sig/line/bot/v2/messaging_api/model/imagemap_external_link.rbs +42 -0
  468. data/sig/line/bot/v2/messaging_api/model/imagemap_message.rbs +59 -0
  469. data/sig/line/bot/v2/messaging_api/model/imagemap_video.rbs +48 -0
  470. data/sig/line/bot/v2/messaging_api/model/issue_link_token_response.rbs +40 -0
  471. data/sig/line/bot/v2/messaging_api/model/limit.rbs +44 -0
  472. data/sig/line/bot/v2/messaging_api/model/location_action.rbs +40 -0
  473. data/sig/line/bot/v2/messaging_api/model/location_message.rbs +56 -0
  474. data/sig/line/bot/v2/messaging_api/model/mark_messages_as_read_request.rbs +40 -0
  475. data/sig/line/bot/v2/messaging_api/model/members_ids_response.rbs +42 -0
  476. data/sig/line/bot/v2/messaging_api/model/membership.rbs +66 -0
  477. data/sig/line/bot/v2/messaging_api/model/membership_list_response.rbs +40 -0
  478. data/sig/line/bot/v2/messaging_api/model/mention_substitution_object.rbs +42 -0
  479. data/sig/line/bot/v2/messaging_api/model/mention_target.rbs +43 -0
  480. data/sig/line/bot/v2/messaging_api/model/message.rbs +50 -0
  481. data/sig/line/bot/v2/messaging_api/model/message_action.rbs +43 -0
  482. data/sig/line/bot/v2/messaging_api/model/message_imagemap_action.rbs +46 -0
  483. data/sig/line/bot/v2/messaging_api/model/message_quota_response.rbs +43 -0
  484. data/sig/line/bot/v2/messaging_api/model/multicast_request.rbs +49 -0
  485. data/sig/line/bot/v2/messaging_api/model/narrowcast_progress_response.rbs +61 -0
  486. data/sig/line/bot/v2/messaging_api/model/narrowcast_request.rbs +52 -0
  487. data/sig/line/bot/v2/messaging_api/model/number_of_messages_response.rbs +42 -0
  488. data/sig/line/bot/v2/messaging_api/model/operator_demographic_filter.rbs +46 -0
  489. data/sig/line/bot/v2/messaging_api/model/operator_recipient.rbs +46 -0
  490. data/sig/line/bot/v2/messaging_api/model/pnp_messages_request.rbs +46 -0
  491. data/sig/line/bot/v2/messaging_api/model/postback_action.rbs +55 -0
  492. data/sig/line/bot/v2/messaging_api/model/push_message_request.rbs +49 -0
  493. data/sig/line/bot/v2/messaging_api/model/push_message_response.rbs +40 -0
  494. data/sig/line/bot/v2/messaging_api/model/quick_reply.rbs +41 -0
  495. data/sig/line/bot/v2/messaging_api/model/quick_reply_item.rbs +46 -0
  496. data/sig/line/bot/v2/messaging_api/model/quota_consumption_response.rbs +40 -0
  497. data/sig/line/bot/v2/messaging_api/model/quota_type.rbs +22 -0
  498. data/sig/line/bot/v2/messaging_api/model/recipient.rbs +44 -0
  499. data/sig/line/bot/v2/messaging_api/model/redelivery_recipient.rbs +40 -0
  500. data/sig/line/bot/v2/messaging_api/model/reply_message_request.rbs +46 -0
  501. data/sig/line/bot/v2/messaging_api/model/reply_message_response.rbs +40 -0
  502. data/sig/line/bot/v2/messaging_api/model/rich_menu_alias_list_response.rbs +40 -0
  503. data/sig/line/bot/v2/messaging_api/model/rich_menu_alias_response.rbs +42 -0
  504. data/sig/line/bot/v2/messaging_api/model/rich_menu_area.rbs +43 -0
  505. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_link_operation.rbs +44 -0
  506. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_operation.rbs +45 -0
  507. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_progress_phase.rbs +21 -0
  508. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_progress_response.rbs +46 -0
  509. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_request.rbs +42 -0
  510. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_all_operation.rbs +38 -0
  511. data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_operation.rbs +41 -0
  512. data/sig/line/bot/v2/messaging_api/model/rich_menu_bounds.rbs +50 -0
  513. data/sig/line/bot/v2/messaging_api/model/rich_menu_bulk_link_request.rbs +43 -0
  514. data/sig/line/bot/v2/messaging_api/model/rich_menu_bulk_unlink_request.rbs +40 -0
  515. data/sig/line/bot/v2/messaging_api/model/rich_menu_id_response.rbs +39 -0
  516. data/sig/line/bot/v2/messaging_api/model/rich_menu_list_response.rbs +40 -0
  517. data/sig/line/bot/v2/messaging_api/model/rich_menu_request.rbs +51 -0
  518. data/sig/line/bot/v2/messaging_api/model/rich_menu_response.rbs +54 -0
  519. data/sig/line/bot/v2/messaging_api/model/rich_menu_size.rbs +43 -0
  520. data/sig/line/bot/v2/messaging_api/model/rich_menu_switch_action.rbs +46 -0
  521. data/sig/line/bot/v2/messaging_api/model/room_member_count_response.rbs +40 -0
  522. data/sig/line/bot/v2/messaging_api/model/room_user_profile_response.rbs +46 -0
  523. data/sig/line/bot/v2/messaging_api/model/sender.rbs +43 -0
  524. data/sig/line/bot/v2/messaging_api/model/sent_message.rbs +42 -0
  525. data/sig/line/bot/v2/messaging_api/model/set_webhook_endpoint_request.rbs +40 -0
  526. data/sig/line/bot/v2/messaging_api/model/show_loading_animation_request.rbs +43 -0
  527. data/sig/line/bot/v2/messaging_api/model/sticker_message.rbs +53 -0
  528. data/sig/line/bot/v2/messaging_api/model/subscribed_membership_plan.rbs +55 -0
  529. data/sig/line/bot/v2/messaging_api/model/subscribed_membership_user.rbs +49 -0
  530. data/sig/line/bot/v2/messaging_api/model/subscription.rbs +43 -0
  531. data/sig/line/bot/v2/messaging_api/model/subscription_period_demographic.rbs +20 -0
  532. data/sig/line/bot/v2/messaging_api/model/subscription_period_demographic_filter.rbs +43 -0
  533. data/sig/line/bot/v2/messaging_api/model/substitution_object.rbs +44 -0
  534. data/sig/line/bot/v2/messaging_api/model/template.rbs +43 -0
  535. data/sig/line/bot/v2/messaging_api/model/template_image_aspect_ratio.rbs +21 -0
  536. data/sig/line/bot/v2/messaging_api/model/template_image_size.rbs +21 -0
  537. data/sig/line/bot/v2/messaging_api/model/template_message.rbs +50 -0
  538. data/sig/line/bot/v2/messaging_api/model/test_webhook_endpoint_request.rbs +40 -0
  539. data/sig/line/bot/v2/messaging_api/model/test_webhook_endpoint_response.rbs +52 -0
  540. data/sig/line/bot/v2/messaging_api/model/text_message.rbs +53 -0
  541. data/sig/line/bot/v2/messaging_api/model/text_message_v2.rbs +53 -0
  542. data/sig/line/bot/v2/messaging_api/model/update_rich_menu_alias_request.rbs +40 -0
  543. data/sig/line/bot/v2/messaging_api/model/uri_action.rbs +46 -0
  544. data/sig/line/bot/v2/messaging_api/model/uri_imagemap_action.rbs +46 -0
  545. data/sig/line/bot/v2/messaging_api/model/user_mention_target.rbs +41 -0
  546. data/sig/line/bot/v2/messaging_api/model/user_profile_response.rbs +52 -0
  547. data/sig/line/bot/v2/messaging_api/model/validate_message_request.rbs +39 -0
  548. data/sig/line/bot/v2/messaging_api/model/video_message.rbs +53 -0
  549. data/sig/line/bot/v2/module/api/line_module_client.rbs +170 -0
  550. data/sig/line/bot/v2/module/model/acquire_chat_control_request.rbs +44 -0
  551. data/sig/line/bot/v2/module/model/detach_module_request.rbs +41 -0
  552. data/sig/line/bot/v2/module/model/get_modules_response.rbs +44 -0
  553. data/sig/line/bot/v2/module/model/module_bot.rbs +53 -0
  554. data/sig/line/bot/v2/module_attach/api/line_module_attach_client.rbs +111 -0
  555. data/sig/line/bot/v2/module_attach/model/attach_module_response.rbs +43 -0
  556. data/sig/line/bot/v2/reserved_words.rbs +7 -0
  557. data/sig/line/bot/v2/shop/api/shop_client.rbs +72 -0
  558. data/sig/line/bot/v2/shop/model/error_response.rbs +40 -0
  559. data/sig/line/bot/v2/shop/model/mission_sticker_request.rbs +50 -0
  560. data/sig/line/bot/v2/utils.rbs +25 -0
  561. data/sig/line/bot/v2/webhook/model/account_link_event.rbs +59 -0
  562. data/sig/line/bot/v2/webhook/model/action_result.rbs +42 -0
  563. data/sig/line/bot/v2/webhook/model/activated_event.rbs +56 -0
  564. data/sig/line/bot/v2/webhook/model/all_mentionee.rbs +44 -0
  565. data/sig/line/bot/v2/webhook/model/attached_module_content.rbs +43 -0
  566. data/sig/line/bot/v2/webhook/model/audio_message_content.rbs +46 -0
  567. data/sig/line/bot/v2/webhook/model/beacon_content.rbs +45 -0
  568. data/sig/line/bot/v2/webhook/model/beacon_event.rbs +59 -0
  569. data/sig/line/bot/v2/webhook/model/bot_resumed_event.rbs +53 -0
  570. data/sig/line/bot/v2/webhook/model/bot_suspended_event.rbs +53 -0
  571. data/sig/line/bot/v2/webhook/model/callback_request.rbs +44 -0
  572. data/sig/line/bot/v2/webhook/model/chat_control.rbs +39 -0
  573. data/sig/line/bot/v2/webhook/model/content_provider.rbs +46 -0
  574. data/sig/line/bot/v2/webhook/model/deactivated_event.rbs +53 -0
  575. data/sig/line/bot/v2/webhook/model/delivery_context.rbs +40 -0
  576. data/sig/line/bot/v2/webhook/model/detached_module_content.rbs +43 -0
  577. data/sig/line/bot/v2/webhook/model/emoji.rbs +48 -0
  578. data/sig/line/bot/v2/webhook/model/event.rbs +59 -0
  579. data/sig/line/bot/v2/webhook/model/event_mode.rbs +21 -0
  580. data/sig/line/bot/v2/webhook/model/file_message_content.rbs +46 -0
  581. data/sig/line/bot/v2/webhook/model/follow_detail.rbs +39 -0
  582. data/sig/line/bot/v2/webhook/model/follow_event.rbs +59 -0
  583. data/sig/line/bot/v2/webhook/model/group_source.rbs +43 -0
  584. data/sig/line/bot/v2/webhook/model/image_message_content.rbs +49 -0
  585. data/sig/line/bot/v2/webhook/model/image_set.rbs +45 -0
  586. data/sig/line/bot/v2/webhook/model/join_event.rbs +56 -0
  587. data/sig/line/bot/v2/webhook/model/joined_members.rbs +39 -0
  588. data/sig/line/bot/v2/webhook/model/joined_membership_content.rbs +40 -0
  589. data/sig/line/bot/v2/webhook/model/leave_event.rbs +53 -0
  590. data/sig/line/bot/v2/webhook/model/left_members.rbs +39 -0
  591. data/sig/line/bot/v2/webhook/model/left_membership_content.rbs +40 -0
  592. data/sig/line/bot/v2/webhook/model/link_content.rbs +43 -0
  593. data/sig/line/bot/v2/webhook/model/link_things_content.rbs +40 -0
  594. data/sig/line/bot/v2/webhook/model/location_message_content.rbs +52 -0
  595. data/sig/line/bot/v2/webhook/model/member_joined_event.rbs +59 -0
  596. data/sig/line/bot/v2/webhook/model/member_left_event.rbs +56 -0
  597. data/sig/line/bot/v2/webhook/model/membership_content.rbs +44 -0
  598. data/sig/line/bot/v2/webhook/model/membership_event.rbs +59 -0
  599. data/sig/line/bot/v2/webhook/model/mention.rbs +39 -0
  600. data/sig/line/bot/v2/webhook/model/mentionee.rbs +50 -0
  601. data/sig/line/bot/v2/webhook/model/message_content.rbs +47 -0
  602. data/sig/line/bot/v2/webhook/model/message_event.rbs +59 -0
  603. data/sig/line/bot/v2/webhook/model/module_content.rbs +43 -0
  604. data/sig/line/bot/v2/webhook/model/module_event.rbs +56 -0
  605. data/sig/line/bot/v2/webhook/model/pnp_delivery.rbs +40 -0
  606. data/sig/line/bot/v2/webhook/model/pnp_delivery_completion_event.rbs +56 -0
  607. data/sig/line/bot/v2/webhook/model/postback_content.rbs +42 -0
  608. data/sig/line/bot/v2/webhook/model/postback_event.rbs +59 -0
  609. data/sig/line/bot/v2/webhook/model/renewed_membership_content.rbs +40 -0
  610. data/sig/line/bot/v2/webhook/model/room_source.rbs +43 -0
  611. data/sig/line/bot/v2/webhook/model/scenario_result.rbs +61 -0
  612. data/sig/line/bot/v2/webhook/model/scenario_result_things_content.rbs +43 -0
  613. data/sig/line/bot/v2/webhook/model/source.rbs +45 -0
  614. data/sig/line/bot/v2/webhook/model/sticker_message_content.rbs +62 -0
  615. data/sig/line/bot/v2/webhook/model/text_message_content.rbs +55 -0
  616. data/sig/line/bot/v2/webhook/model/things_content.rbs +43 -0
  617. data/sig/line/bot/v2/webhook/model/things_event.rbs +59 -0
  618. data/sig/line/bot/v2/webhook/model/unfollow_event.rbs +53 -0
  619. data/sig/line/bot/v2/webhook/model/unlink_things_content.rbs +40 -0
  620. data/sig/line/bot/v2/webhook/model/unsend_detail.rbs +39 -0
  621. data/sig/line/bot/v2/webhook/model/unsend_event.rbs +56 -0
  622. data/sig/line/bot/v2/webhook/model/user_mentionee.rbs +50 -0
  623. data/sig/line/bot/v2/webhook/model/user_source.rbs +40 -0
  624. data/sig/line/bot/v2/webhook/model/video_message_content.rbs +49 -0
  625. data/sig/line/bot/v2/webhook/model/video_play_complete.rbs +39 -0
  626. data/sig/line/bot/v2/webhook/model/video_play_complete_event.rbs +59 -0
  627. data/sig/line/bot/v2/webhook_parser.rbs +26 -0
  628. data/sig/line/bot/version.rbs +5 -0
  629. metadata +645 -69
  630. data/lib/line/bot/api/errors.rb +0 -21
  631. data/lib/line/bot/api/version.rb +0 -21
  632. data/lib/line/bot/api.rb +0 -31
  633. data/lib/line/bot/client.rb +0 -1376
  634. data/lib/line/bot/event/account_link.rb +0 -34
  635. data/lib/line/bot/event/base.rb +0 -33
  636. data/lib/line/bot/event/beacon.rb +0 -39
  637. data/lib/line/bot/event/follow.rb +0 -26
  638. data/lib/line/bot/event/join.rb +0 -25
  639. data/lib/line/bot/event/leave.rb +0 -27
  640. data/lib/line/bot/event/member_joined.rb +0 -25
  641. data/lib/line/bot/event/member_left.rb +0 -27
  642. data/lib/line/bot/event/message.rb +0 -45
  643. data/lib/line/bot/event/postback.rb +0 -25
  644. data/lib/line/bot/event/things.rb +0 -43
  645. data/lib/line/bot/event/unfollow.rb +0 -27
  646. data/lib/line/bot/event/unsend.rb +0 -27
  647. data/lib/line/bot/event/video_play_complete.rb +0 -25
  648. data/lib/line/bot/event.rb +0 -28
  649. data/lib/line/bot/httpclient.rb +0 -69
  650. data/lib/line/bot/util.rb +0 -24
@@ -1,1376 +0,0 @@
1
- # Copyright 2016 LINE
2
- #
3
- # LINE Corporation licenses this file to you under the Apache License,
4
- # version 2.0 (the "License"); you may not use this file except in compliance
5
- # with the License. You may obtain a copy of the License at:
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
- # License for the specific language governing permissions and limitations
13
- # under the License.
14
-
15
- require 'base64'
16
- require 'net/http'
17
- require 'openssl'
18
- require 'uri'
19
-
20
- module Line
21
- module Bot
22
- # API Client of LINE Bot SDK Ruby
23
- #
24
- # @client ||= Line::Bot::Client.new do |config|
25
- # config.channel_id = ENV["LINE_CHANNEL_ID"]
26
- # config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
27
- # config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
28
- # end
29
- class Client
30
- # @return [String]
31
- attr_accessor :channel_token, :channel_id, :channel_secret, :endpoint, :blob_endpoint
32
-
33
- # @return [Object]
34
- attr_accessor :httpclient
35
-
36
- # @return [Hash]
37
- attr_accessor :http_options
38
-
39
- # Initialize a new client.
40
- #
41
- # @param options [Hash]
42
- # @return [Line::Bot::Client]
43
- def initialize(options = {})
44
- options.each do |key, value|
45
- instance_variable_set("@#{key}", value)
46
- end
47
- yield(self) if block_given?
48
- end
49
-
50
- def httpclient
51
- @httpclient ||= HTTPClient.new(http_options)
52
- end
53
-
54
- def endpoint
55
- @endpoint ||= API::DEFAULT_ENDPOINT
56
- end
57
-
58
- def oauth_endpoint
59
- @oauth_endpoint ||= API::DEFAULT_OAUTH_ENDPOINT
60
- end
61
-
62
- def blob_endpoint
63
- return @blob_endpoint if @blob_endpoint
64
-
65
- @blob_endpoint = if endpoint == API::DEFAULT_ENDPOINT
66
- API::DEFAULT_BLOB_ENDPOINT
67
- else
68
- # for backward compatible
69
- endpoint
70
- end
71
- end
72
-
73
- def liff_endpoint
74
- @liff_endpoint ||= API::DEFAULT_LIFF_ENDPOINT
75
- end
76
-
77
- # @return [Hash]
78
- def credentials
79
- {
80
- "Authorization" => "Bearer #{channel_token}",
81
- }
82
- end
83
-
84
- # Issue channel access token
85
- #
86
- # @param grant_type [String] Grant type
87
- #
88
- # @return [Net::HTTPResponse]
89
- def issue_channel_token(grant_type = 'client_credentials')
90
- channel_id_required
91
- channel_secret_required
92
-
93
- endpoint_path = '/oauth/accessToken'
94
- payload = URI.encode_www_form(
95
- grant_type: grant_type,
96
- client_id: channel_id,
97
- client_secret: channel_secret
98
- )
99
- headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
100
- post(endpoint, endpoint_path, payload, headers)
101
- end
102
-
103
- # Revoke channel access token
104
- #
105
- # @return [Net::HTTPResponse]
106
- def revoke_channel_token(access_token)
107
- endpoint_path = '/oauth/revoke'
108
- payload = URI.encode_www_form(access_token: access_token)
109
- headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
110
- post(endpoint, endpoint_path, payload, headers)
111
- end
112
-
113
- # Issue channel access token v2.1
114
- #
115
- # @param jwt [String]
116
- #
117
- # @return [Net::HTTPResponse]
118
- def issue_channel_access_token_jwt(jwt)
119
- endpoint_path = '/oauth2/v2.1/token'
120
- payload = URI.encode_www_form(
121
- grant_type: 'client_credentials',
122
- client_assertion_type: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
123
- client_assertion: jwt
124
- )
125
- headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
126
- post(oauth_endpoint, endpoint_path, payload, headers)
127
- end
128
-
129
- # Revoke channel access token v2.1
130
- #
131
- # @param access_token [String]
132
- #
133
- # @return [Net::HTTPResponse]
134
- def revoke_channel_access_token_jwt(access_token)
135
- channel_id_required
136
- channel_secret_required
137
-
138
- endpoint_path = '/oauth2/v2.1/revoke'
139
- payload = URI.encode_www_form(
140
- client_id: channel_id,
141
- client_secret: channel_secret,
142
- access_token: access_token
143
- )
144
- headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
145
- post(oauth_endpoint, endpoint_path, payload, headers)
146
- end
147
-
148
- # Verify ID token
149
- #
150
- # @param id_token [String] ID token
151
- # @param nonce [String] Expected nonce value. Use the nonce value provided in the authorization request. Omit if the nonce value was not specified in the authorization request.
152
- # @param user_id [String] Expected user ID.
153
- #
154
- # @return [Net::HTTPResponse]
155
- def verify_id_token(id_token, nonce: nil, user_id: nil)
156
- channel_id_required
157
-
158
- endpoint_path = '/oauth2/v2.1/verify'
159
- payload = URI.encode_www_form({
160
- client_id: channel_id,
161
- id_token: id_token,
162
- nonce: nonce,
163
- user_id: user_id
164
- }.compact)
165
- headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
166
- post(oauth_endpoint, endpoint_path, payload, headers)
167
- end
168
-
169
- # Verify access token v2.1
170
- #
171
- # @param access_token [String] access token
172
- #
173
- # @return [Net::HTTPResponse]
174
- def verify_access_token(access_token)
175
- payload = URI.encode_www_form(
176
- access_token: access_token
177
- )
178
- endpoint_path = "/oauth2/v2.1/verify?#{payload}"
179
- get(oauth_endpoint, endpoint_path)
180
- end
181
-
182
- # Get all valid channel access token key IDs v2.1
183
- #
184
- # @param jwt [String]
185
- #
186
- # @return [Net::HTTPResponse]
187
- def get_channel_access_token_key_ids_jwt(jwt)
188
- payload = URI.encode_www_form(
189
- client_assertion_type: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
190
- client_assertion: jwt
191
- )
192
- endpoint_path = "/oauth2/v2.1/tokens/kid?#{payload}"
193
-
194
- headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
195
- get(oauth_endpoint, endpoint_path, headers)
196
- end
197
-
198
- # Get user profile by access token
199
- #
200
- # @param access_token [String] access token
201
- #
202
- # @return [Net::HTTPResponse]
203
- def get_profile_by_access_token(access_token)
204
- headers = {
205
- "Authorization" => "Bearer #{access_token}",
206
- }
207
- endpoint_path = "/v2/profile"
208
- get(oauth_endpoint, endpoint_path, headers)
209
- end
210
-
211
- # Push messages to a user using user_id.
212
- #
213
- # @param user_id [String] User Id
214
- # @param messages [Hash, Array] Message Objects
215
- # @param headers [Hash] HTTP Headers
216
- # @param payload [Hash] Additional request body
217
- # @return [Net::HTTPResponse]
218
- def push_message(user_id, messages, headers: {}, payload: {})
219
- channel_token_required
220
-
221
- messages = [messages] if messages.is_a?(Hash)
222
-
223
- endpoint_path = '/bot/message/push'
224
- payload = payload.merge({ to: user_id, messages: messages }).to_json
225
- post(endpoint, endpoint_path, payload, credentials.merge(headers))
226
- end
227
-
228
- # Reply messages to a user using replyToken.
229
- #
230
- # @example Send a balloon to a user.
231
- # message = {
232
- # type: 'text',
233
- # text: 'Hello, World!'
234
- # }
235
- # client.reply_message(event['replyToken'], message)
236
- #
237
- # @example Send multiple balloons to a user.
238
- #
239
- # messages = [
240
- # {type: 'text', text: 'Message1'},
241
- # {type: 'text', text: 'Message2'}
242
- # ]
243
- # client.reply_message(event['replyToken'], messages)
244
- #
245
- # @param token [String] Reply Token
246
- # @param messages [Hash, Array] Message Objects
247
- # @return [Net::HTTPResponse]
248
- def reply_message(token, messages)
249
- channel_token_required
250
-
251
- messages = [messages] if messages.is_a?(Hash)
252
-
253
- endpoint_path = '/bot/message/reply'
254
- payload = { replyToken: token, messages: messages }.to_json
255
- post(endpoint, endpoint_path, payload, credentials)
256
- end
257
-
258
- # Send messages to multiple users using userIds.
259
- #
260
- # @param to [Array, String] Array of userIds
261
- # @param messages [Hash, Array] Message Objects
262
- # @param headers [Hash] HTTP Headers
263
- # @param payload [Hash] Additional request body
264
- # @return [Net::HTTPResponse]
265
- def multicast(to, messages, headers: {}, payload: {})
266
- channel_token_required
267
-
268
- to = [to] if to.is_a?(String)
269
- messages = [messages] if messages.is_a?(Hash)
270
-
271
- endpoint_path = '/bot/message/multicast'
272
- payload = payload.merge({ to: to, messages: messages }).to_json
273
- post(endpoint, endpoint_path, payload, credentials.merge(headers))
274
- end
275
-
276
- # Send messages to all friends.
277
- #
278
- # @param messages [Hash, Array] Message Objects
279
- # @param headers [Hash] HTTP Headers
280
- #
281
- # @return [Net::HTTPResponse]
282
- def broadcast(messages, headers: {})
283
- channel_token_required
284
-
285
- messages = [messages] if messages.is_a?(Hash)
286
-
287
- endpoint_path = '/bot/message/broadcast'
288
- payload = { messages: messages }.to_json
289
- post(endpoint, endpoint_path, payload, credentials.merge(headers))
290
- end
291
-
292
- # Narrowcast messages to users
293
- #
294
- # API Documentation is here.
295
- # https://developers.line.biz/en/reference/messaging-api/#send-narrowcast-message
296
- #
297
- # @param messages [Hash, Array]
298
- # @param recipient [Hash]
299
- # @param filter [Hash]
300
- # @param limit [Hash]
301
- # @param headers [Hash] HTTP Headers
302
- #
303
- # @return [Net::HTTPResponse]
304
- def narrowcast(messages, recipient: nil, filter: nil, limit: nil, headers: {})
305
- channel_token_required
306
-
307
- messages = [messages] if messages.is_a?(Hash)
308
-
309
- endpoint_path = '/bot/message/narrowcast'
310
- payload = {
311
- messages: messages,
312
- recipient: recipient,
313
- filter: filter,
314
- limit: limit
315
- }.to_json
316
- post(endpoint, endpoint_path, payload, credentials.merge(headers))
317
- end
318
-
319
- def leave_group(group_id)
320
- channel_token_required
321
-
322
- endpoint_path = "/bot/group/#{group_id}/leave"
323
- post(endpoint, endpoint_path, nil, credentials)
324
- end
325
-
326
- def leave_room(room_id)
327
- channel_token_required
328
-
329
- endpoint_path = "/bot/room/#{room_id}/leave"
330
- post(endpoint, endpoint_path, nil, credentials)
331
- end
332
-
333
- # Get message content.
334
- #
335
- # @param identifier [String] Message's identifier
336
- # @return [Net::HTTPResponse]
337
- def get_message_content(identifier)
338
- channel_token_required
339
-
340
- endpoint_path = "/bot/message/#{identifier}/content"
341
- get(blob_endpoint, endpoint_path, credentials)
342
- end
343
-
344
- # Get an user's profile.
345
- #
346
- # @param user_id [String] User Id user_id
347
- # @return [Net::HTTPResponse]
348
- def get_profile(user_id)
349
- channel_token_required
350
-
351
- endpoint_path = "/bot/profile/#{user_id}"
352
- get(endpoint, endpoint_path, credentials)
353
- end
354
-
355
- # Get an user's profile of a group.
356
- #
357
- # @param group_id [String] Group's identifier
358
- # @param user_id [String] User Id user_id
359
- #
360
- # @return [Net::HTTPResponse]
361
- def get_group_member_profile(group_id, user_id)
362
- channel_token_required
363
-
364
- endpoint_path = "/bot/group/#{group_id}/member/#{user_id}"
365
- get(endpoint, endpoint_path, credentials)
366
- end
367
-
368
- # Get an user's profile of a room.
369
- #
370
- # @param room_id [String] Room's identifier
371
- # @param user_id [String] User Id user_id
372
- #
373
- # @return [Net::HTTPResponse]
374
- def get_room_member_profile(room_id, user_id)
375
- channel_token_required
376
-
377
- endpoint_path = "/bot/room/#{room_id}/member/#{user_id}"
378
- get(endpoint, endpoint_path, credentials)
379
- end
380
-
381
- # Get user IDs of who added your LINE Official Account as a friend
382
- #
383
- # @param start [String] Identifier to return next page (next property to be included in the response)
384
- # @param limit [Integer] The maximum number of user IDs to retrieve in a single request
385
- #
386
- # @return [Net::HTTPResponse]
387
- def get_follower_ids(deprecated_continuation_token = nil, start: nil, limit: nil)
388
- channel_token_required
389
-
390
- if deprecated_continuation_token
391
- warn "continuation_token as the first argument is deprecated. Please use :start instead."
392
- start = deprecated_continuation_token
393
- end
394
-
395
- params = { start: start, limit: limit }.compact
396
-
397
- endpoint_path = "/bot/followers/ids"
398
- endpoint_path += "?" + URI.encode_www_form(params) unless params.empty?
399
- get(endpoint, endpoint_path, credentials)
400
- end
401
-
402
- # Get user IDs of a group
403
- #
404
- # @param group_id [String] Group's identifier
405
- # @param continuation_token [String] Identifier to return next page
406
- # (next property to be included in the response)
407
- #
408
- # @return [Net::HTTPResponse]
409
- def get_group_member_ids(group_id, continuation_token = nil)
410
- channel_token_required
411
-
412
- endpoint_path = "/bot/group/#{group_id}/members/ids"
413
- endpoint_path += "?start=#{continuation_token}" if continuation_token
414
- get(endpoint, endpoint_path, credentials)
415
- end
416
-
417
- # Get user IDs of a room
418
- #
419
- # @param room_id [String] Room's identifier
420
- # @param continuation_token [String] Identifier to return next page
421
- # (next property to be included in the response)
422
- #
423
- # @return [Net::HTTPResponse]
424
- def get_room_member_ids(room_id, continuation_token = nil)
425
- channel_token_required
426
-
427
- endpoint_path = "/bot/room/#{room_id}/members/ids"
428
- endpoint_path += "?start=#{continuation_token}" if continuation_token
429
- get(endpoint, endpoint_path, credentials)
430
- end
431
-
432
- # Gets the group ID, group name, and group icon URL of a group where the LINE Official Account is a member.
433
- #
434
- # @param group_id [String] Group's identifier
435
- #
436
- # @return [Net::HTTPResponse]
437
- def get_group_summary(group_id)
438
- channel_token_required
439
-
440
- endpoint_path = "/bot/group/#{group_id}/summary"
441
- get(endpoint, endpoint_path, credentials)
442
- end
443
-
444
- # Gets the user IDs of the members of a group that the bot is in.
445
- #
446
- # @param group_id [String] Group's identifier
447
- #
448
- # @return [Net::HTTPResponse]
449
- def get_group_members_count(group_id)
450
- channel_token_required
451
-
452
- endpoint_path = "/bot/group/#{group_id}/members/count"
453
- get(endpoint, endpoint_path, credentials)
454
- end
455
-
456
- # Gets the count of members in a room.
457
- #
458
- # @param room_id [String] Room's identifier
459
- #
460
- # @return [Net::HTTPResponse]
461
- def get_room_members_count(room_id)
462
- channel_token_required
463
-
464
- endpoint_path = "/bot/room/#{room_id}/members/count"
465
- get(endpoint, endpoint_path, credentials)
466
- end
467
-
468
- # Get a list of all uploaded rich menus
469
- #
470
- # @return [Net::HTTPResponse]
471
- def get_rich_menus
472
- channel_token_required
473
-
474
- endpoint_path = '/bot/richmenu/list'
475
- get(endpoint, endpoint_path, credentials)
476
- end
477
-
478
- # Get a rich menu via a rich menu ID
479
- #
480
- # @param rich_menu_id [String] ID of an uploaded rich menu
481
- #
482
- # @return [Net::HTTPResponse]
483
- def get_rich_menu(rich_menu_id)
484
- channel_token_required
485
-
486
- endpoint_path = "/bot/richmenu/#{rich_menu_id}"
487
- get(endpoint, endpoint_path, credentials)
488
- end
489
-
490
- # Gets the number of messages sent with the /bot/message/reply endpoint.
491
- #
492
- # @param date [String] Date the messages were sent (format: yyyyMMdd)
493
- #
494
- # @return [Net::HTTPResponse]
495
- def get_message_delivery_reply(date)
496
- channel_token_required
497
-
498
- endpoint_path = "/bot/message/delivery/reply?date=#{date}"
499
- get(endpoint, endpoint_path, credentials)
500
- end
501
-
502
- # Gets the number of messages sent with the /bot/message/push endpoint.
503
- #
504
- # @param date [String] Date the messages were sent (format: yyyyMMdd)
505
- #
506
- # @return [Net::HTTPResponse]
507
- def get_message_delivery_push(date)
508
- channel_token_required
509
-
510
- endpoint_path = "/bot/message/delivery/push?date=#{date}"
511
- get(endpoint, endpoint_path, credentials)
512
- end
513
-
514
- # Gets the number of messages sent with the /bot/message/multicast endpoint.
515
- #
516
- # @param date [String] Date the messages were sent (format: yyyyMMdd)
517
- #
518
- # @return [Net::HTTPResponse]
519
- def get_message_delivery_multicast(date)
520
- channel_token_required
521
-
522
- endpoint_path = "/bot/message/delivery/multicast?date=#{date}"
523
- get(endpoint, endpoint_path, credentials)
524
- end
525
-
526
- # Gets the number of messages sent with the /bot/message/multicast endpoint.
527
- #
528
- # @param date [String] Date the messages were sent (format: yyyyMMdd)
529
- #
530
- # @return [Net::HTTPResponse]
531
- def get_message_delivery_broadcast(date)
532
- channel_token_required
533
-
534
- endpoint_path = "/bot/message/delivery/broadcast?date=#{date}"
535
- get(endpoint, endpoint_path, credentials)
536
- end
537
-
538
- # Validate message objects of a reply message
539
- #
540
- # @param messages [Array] Array of message objects to validate
541
- #
542
- # @return [Net::HTTPResponse]
543
- def validate_reply_message_objects(messages)
544
- channel_token_required
545
-
546
- endpoint_path = '/bot/message/validate/reply'
547
- payload = { messages: messages }.to_json
548
- post(endpoint, endpoint_path, payload, credentials)
549
- end
550
-
551
- # Validate message objects of a push message
552
- #
553
- # @param messages [Array] Array of message objects to validate
554
- #
555
- # @return [Net::HTTPResponse]
556
- def validate_push_message_objects(messages)
557
- channel_token_required
558
-
559
- endpoint_path = '/bot/message/validate/push'
560
- payload = { messages: messages }.to_json
561
- post(endpoint, endpoint_path, payload, credentials)
562
- end
563
-
564
- # Validate message objects of a multicast message
565
- #
566
- # @param messages [Array] Array of message objects to validate
567
- #
568
- # @return [Net::HTTPResponse]
569
- def validate_multicast_message_objects(messages)
570
- channel_token_required
571
-
572
- endpoint_path = '/bot/message/validate/multicast'
573
- payload = { messages: messages }.to_json
574
- post(endpoint, endpoint_path, payload, credentials)
575
- end
576
-
577
- # Validate message objects of a narrowcast message
578
- #
579
- # @param messages [Array] Array of message objects to validate
580
- #
581
- # @return [Net::HTTPResponse]
582
- def validate_narrowcast_message_objects(messages)
583
- channel_token_required
584
-
585
- endpoint_path = '/bot/message/validate/narrowcast'
586
- payload = { messages: messages }.to_json
587
- post(endpoint, endpoint_path, payload, credentials)
588
- end
589
-
590
- # Validate message objects of a broadcast message
591
- #
592
- # @param messages [Array] Array of message objects to validate
593
- #
594
- # @return [Net::HTTPResponse]
595
- def validate_broadcast_message_objects(messages)
596
- channel_token_required
597
-
598
- endpoint_path = '/bot/message/validate/broadcast'
599
- payload = { messages: messages }.to_json
600
- post(endpoint, endpoint_path, payload, credentials)
601
- end
602
-
603
- # Create a rich menu
604
- #
605
- # @param rich_menu [Hash] The rich menu represented as a rich menu object
606
- #
607
- # @return [Net::HTTPResponse]
608
- def create_rich_menu(rich_menu)
609
- channel_token_required
610
-
611
- endpoint_path = '/bot/richmenu'
612
- post(endpoint, endpoint_path, rich_menu.to_json, credentials)
613
- end
614
-
615
- # Validate a rich menu object
616
- #
617
- # @param rich_menu [Hash] The rich menu represented as a rich menu object
618
- #
619
- # @return [Net::HTTPResponse]
620
- def validate_rich_menu_object(rich_menu)
621
- channel_token_required
622
-
623
- endpoint_path = '/bot/richmenu/validate'
624
- post(endpoint, endpoint_path, rich_menu.to_json, credentials)
625
- end
626
-
627
- # Delete a rich menu
628
- #
629
- # @param rich_menu_id [String] ID of an uploaded rich menu
630
- #
631
- # @return [Net::HTTPResponse]
632
- def delete_rich_menu(rich_menu_id)
633
- channel_token_required
634
-
635
- endpoint_path = "/bot/richmenu/#{rich_menu_id}"
636
- delete(endpoint, endpoint_path, credentials)
637
- end
638
-
639
- # Get the ID of the rich menu linked to a user
640
- #
641
- # @param user_id [String] ID of the user
642
- #
643
- # @return [Net::HTTPResponse]
644
- def get_user_rich_menu(user_id)
645
- channel_token_required
646
-
647
- endpoint_path = "/bot/user/#{user_id}/richmenu"
648
- get(endpoint, endpoint_path, credentials)
649
- end
650
-
651
- # Get default rich menu
652
- #
653
- # @return [Net::HTTPResponse]
654
- def get_default_rich_menu
655
- channel_token_required
656
-
657
- endpoint_path = '/bot/user/all/richmenu'
658
- get(endpoint, endpoint_path, credentials)
659
- end
660
-
661
- # Set default rich menu (Link a rich menu to all user)
662
- #
663
- # @param rich_menu_id [String] ID of an uploaded rich menu
664
- #
665
- # @return [Net::HTTPResponse]
666
- def set_default_rich_menu(rich_menu_id)
667
- channel_token_required
668
-
669
- endpoint_path = "/bot/user/all/richmenu/#{rich_menu_id}"
670
- post(endpoint, endpoint_path, nil, credentials)
671
- end
672
-
673
- # Unset default rich menu (Unlink a rich menu from all user)
674
- #
675
- # @return [Net::HTTPResponse]
676
- def unset_default_rich_menu
677
- channel_token_required
678
-
679
- endpoint_path = "/bot/user/all/richmenu"
680
- delete(endpoint, endpoint_path, credentials)
681
- end
682
-
683
- # Set rich menu alias
684
- #
685
- # @param rich_menu_id [String] ID of an uploaded rich menu
686
- # @param rich_menu_alias_id [String] string of alias words rich menu
687
- #
688
- # @return [Net::HTTPResponse]
689
- def set_rich_menus_alias(rich_menu_id, rich_menu_alias_id)
690
- channel_token_required
691
-
692
- endpoint_path = '/bot/richmenu/alias'
693
- post(endpoint, endpoint_path, { richMenuId: rich_menu_id, richMenuAliasId: rich_menu_alias_id }.to_json, credentials)
694
- end
695
-
696
- # Unset rich menu alias
697
- #
698
- # @param rich_menu_alias_id [String] string of alias words rich menu
699
- #
700
- # @return [Net::HTTPResponse]
701
- def unset_rich_menus_alias(rich_menu_alias_id)
702
- channel_token_required
703
-
704
- endpoint_path = "/bot/richmenu/alias/#{rich_menu_alias_id}"
705
- delete(endpoint, endpoint_path, credentials)
706
- end
707
-
708
- # Update rich menu alias
709
- #
710
- # @param rich_menu_id [String] ID of an uploaded rich menu
711
- # @param rich_menu_alias_id [String] string of alias words rich menu
712
- #
713
- # @return [Net::HTTPResponse]
714
- def update_rich_menus_alias(rich_menu_id, rich_menu_alias_id)
715
- channel_token_required
716
-
717
- endpoint_path = "/bot/richmenu/alias/#{rich_menu_alias_id}"
718
- post(endpoint, endpoint_path, { richMenuId: rich_menu_id }.to_json, credentials)
719
- end
720
-
721
- # Get a rich menu alias via a rich menu alias ID
722
- #
723
- # @param rich_menu_alias_id [String] string of alias words rich menu
724
- #
725
- # @return [Net::HTTPResponse]
726
- def get_rich_menus_alias(rich_menu_alias_id)
727
- channel_token_required
728
-
729
- endpoint_path = "/bot/richmenu/alias/#{rich_menu_alias_id}"
730
- get(endpoint, endpoint_path, credentials)
731
- end
732
-
733
- # Get a list of all uploaded rich menus alias
734
- #
735
- # @return [Net::HTTPResponse]
736
- def get_rich_menus_alias_list
737
- channel_token_required
738
-
739
- endpoint_path = "/bot/richmenu/alias/list"
740
- get(endpoint, endpoint_path, credentials)
741
- end
742
-
743
- # Link a rich menu to a user
744
- #
745
- # If you want to link a rich menu to multiple users,
746
- # please consider to use bulk_link_rich_menus.
747
- #
748
- # @param user_id [String] ID of the user
749
- # @param rich_menu_id [String] ID of an uploaded rich menu
750
- #
751
- # @return [Net::HTTPResponse]
752
- def link_user_rich_menu(user_id, rich_menu_id)
753
- channel_token_required
754
-
755
- endpoint_path = "/bot/user/#{user_id}/richmenu/#{rich_menu_id}"
756
- post(endpoint, endpoint_path, nil, credentials)
757
- end
758
-
759
- # Unlink a rich menu from a user
760
- #
761
- # @param user_id [String] ID of the user
762
- #
763
- # @return [Net::HTTPResponse]
764
- def unlink_user_rich_menu(user_id)
765
- channel_token_required
766
-
767
- endpoint_path = "/bot/user/#{user_id}/richmenu"
768
- delete(endpoint, endpoint_path, credentials)
769
- end
770
-
771
- # To link a rich menu to multiple users at a time
772
- #
773
- # @param user_ids [Array] ID of the user
774
- # @param rich_menu_id [String] ID of the uploaded rich menu
775
- #
776
- # @return [Net::HTTPResponse]
777
- def bulk_link_rich_menus(user_ids, rich_menu_id)
778
- channel_token_required
779
-
780
- endpoint_path = "/bot/richmenu/bulk/link"
781
- post(endpoint, endpoint_path, { richMenuId: rich_menu_id, userIds: user_ids }.to_json, credentials)
782
- end
783
-
784
- # To unlink a rich menu from multiple users at a time
785
- #
786
- # @param user_ids [Array] ID of the user
787
- #
788
- # @return [Net::HTTPResponse]
789
- def bulk_unlink_rich_menus(user_ids)
790
- channel_token_required
791
-
792
- endpoint_path = "/bot/richmenu/bulk/unlink"
793
- post(endpoint, endpoint_path, { userIds: user_ids }.to_json, credentials)
794
- end
795
-
796
- # Download an image associated with a rich menu
797
- #
798
- # @param rich_menu_id [String] ID of an uploaded rich menu
799
- #
800
- # @return [Net::HTTPResponse]
801
- def get_rich_menu_image(rich_menu_id)
802
- channel_token_required
803
-
804
- endpoint_path = "/bot/richmenu/#{rich_menu_id}/content"
805
- get(blob_endpoint, endpoint_path, credentials)
806
- end
807
-
808
- # Upload and attaches an image to a rich menu
809
- #
810
- # @param rich_menu_id [String] The ID of the rich menu to attach the image to
811
- # @param file [File] Image file to attach rich menu
812
- #
813
- # @return [Net::HTTPResponse]
814
- def create_rich_menu_image(rich_menu_id, file)
815
- channel_token_required
816
-
817
- endpoint_path = "/bot/richmenu/#{rich_menu_id}/content"
818
- headers = credentials.merge('Content-Type' => content_type(file))
819
- post(blob_endpoint, endpoint_path, file.rewind && file.read, headers)
820
- end
821
-
822
- # Issue a link token to a user
823
- #
824
- # @param user_id [String] ID of the user
825
- #
826
- # @return [Net::HTTPResponse]
827
- def create_link_token(user_id)
828
- channel_token_required
829
-
830
- endpoint_path = "/bot/user/#{user_id}/linkToken"
831
- post(endpoint, endpoint_path, nil, credentials)
832
- end
833
-
834
- # Get the target limit for additional messages
835
- #
836
- # @return [Net::HTTPResponse]
837
- def get_quota
838
- channel_token_required
839
-
840
- endpoint_path = "/bot/message/quota"
841
- get(endpoint, endpoint_path, credentials)
842
- end
843
-
844
- # Get number of messages sent this month
845
- #
846
- # @return [Net::HTTPResponse]
847
- def get_quota_consumption
848
- channel_token_required
849
-
850
- endpoint_path = "/bot/message/quota/consumption"
851
- get(endpoint, endpoint_path, credentials)
852
- end
853
-
854
- # Returns the number of messages sent on a specified day
855
- #
856
- # @param [String] date (Format:yyyyMMdd, Example:20191231)
857
- #
858
- # @return [Net::HTTPResponse]
859
- def get_number_of_message_deliveries(date)
860
- channel_token_required
861
-
862
- endpoint_path = "/bot/insight/message/delivery?date=#{date}"
863
- get(endpoint, endpoint_path, credentials)
864
- end
865
-
866
- # Returns statistics about how users interact with narrowcast messages or broadcast messages sent from your LINE Official Account.
867
- #
868
- # @param [String] request_id
869
- #
870
- # @return [Net::HTTPResponse]
871
- def get_user_interaction_statistics(request_id)
872
- channel_token_required
873
-
874
- endpoint_path = "/bot/insight/message/event?requestId=#{request_id}"
875
- get(endpoint, endpoint_path, credentials)
876
- end
877
-
878
- # Returns the number of followers
879
- #
880
- # @param [String] date (Format:yyyyMMdd, Example:20191231)
881
- #
882
- # @return [Net::HTTPResponse]
883
- def get_number_of_followers(date)
884
- channel_token_required
885
-
886
- endpoint_path = "/bot/insight/followers?date=#{date}"
887
- get(endpoint, endpoint_path, credentials)
888
- end
889
-
890
- # Get the demographic attributes for a bot's friends.
891
- #
892
- # @return [Net::HTTPResponse]
893
- def get_friend_demographics
894
- channel_token_required
895
-
896
- endpoint_path = '/bot/insight/demographic'
897
- get(endpoint, endpoint_path, credentials)
898
- end
899
-
900
- # Gets a bot's basic information.
901
- #
902
- # @return [Net::HTTPResponse]
903
- def get_bot_info
904
- channel_token_required
905
-
906
- endpoint_path = '/bot/info'
907
- get(endpoint, endpoint_path, credentials)
908
- end
909
-
910
- # Gets information on a webhook endpoint.
911
- #
912
- # @return [Net::HTTPResponse]
913
- def get_webhook_endpoint
914
- channel_token_required
915
-
916
- endpoint_path = '/bot/channel/webhook/endpoint'
917
- get(endpoint, endpoint_path, credentials)
918
- end
919
-
920
- # Sets the webhook endpoint URL.
921
- #
922
- # @param webhook_endpoint [String]
923
- #
924
- # @return [Net::HTTPResponse]
925
- def set_webhook_endpoint(webhook_endpoint)
926
- channel_token_required
927
-
928
- endpoint_path = '/bot/channel/webhook/endpoint'
929
- body = {endpoint: webhook_endpoint}
930
- put(endpoint, endpoint_path, body.to_json, credentials)
931
- end
932
-
933
- # Checks if the configured webhook endpoint can receive a test webhook event.
934
- #
935
- # @param webhook_endpoint [String] options
936
- #
937
- # @return [Net::HTTPResponse]
938
- def test_webhook_endpoint(webhook_endpoint = nil)
939
- channel_token_required
940
-
941
- endpoint_path = '/bot/channel/webhook/test'
942
- body = if webhook_endpoint.nil?
943
- {}
944
- else
945
- {endpoint: webhook_endpoint}
946
- end
947
- post(endpoint, endpoint_path, body.to_json, credentials)
948
- end
949
-
950
- def get_liff_apps
951
- channel_token_required
952
-
953
- endpoint_path = '/apps'
954
- get(liff_endpoint, endpoint_path, credentials)
955
- end
956
-
957
- def create_liff_app(app)
958
- channel_token_required
959
-
960
- endpoint_path = '/apps'
961
- post(liff_endpoint, endpoint_path, app.to_json, credentials)
962
- end
963
-
964
- def update_liff_app(liff_id, app)
965
- channel_token_required
966
-
967
- endpoint_path = "/apps/#{liff_id}"
968
- put(liff_endpoint, endpoint_path, app.to_json, credentials)
969
- end
970
-
971
- def delete_liff_app(liff_id)
972
- channel_token_required
973
-
974
- endpoint_path = "/apps/#{liff_id}"
975
- delete(liff_endpoint, endpoint_path, credentials)
976
- end
977
-
978
- # Create an audience group by uploading user_ids
979
- #
980
- # Parameters are described here.
981
- # https://developers.line.biz/en/reference/messaging-api/#create-upload-audience-group
982
- #
983
- # @param params [Hash] options
984
- #
985
- # @return [Net::HTTPResponse] This response includes an audience_group_id.
986
- def create_user_id_audience(params)
987
- channel_token_required
988
-
989
- endpoint_path = '/bot/audienceGroup/upload'
990
- post(endpoint, endpoint_path, params.to_json, credentials)
991
- end
992
-
993
- # Update an audience group
994
- #
995
- # Parameters are described here.
996
- # https://developers.line.biz/en/reference/messaging-api/#update-upload-audience-group
997
- #
998
- # @param params [Hash] options
999
- #
1000
- # @return [Net::HTTPResponse] This response includes an audience_group_id.
1001
- def update_user_id_audience(params)
1002
- channel_token_required
1003
-
1004
- endpoint_path = '/bot/audienceGroup/upload'
1005
- put(endpoint, endpoint_path, params.to_json, credentials)
1006
- end
1007
-
1008
- # Create an audience group of users that clicked a URL in a message sent in the past
1009
- #
1010
- # Parameters are described here.
1011
- # https://developers.line.biz/en/reference/messaging-api/#create-click-audience-group
1012
- #
1013
- # @param params [Hash] options
1014
- #
1015
- # @return [Net::HTTPResponse] This response includes an audience_group_id.
1016
- def create_click_audience(params)
1017
- channel_token_required
1018
-
1019
- endpoint_path = '/bot/audienceGroup/click'
1020
- post(endpoint, endpoint_path, params.to_json, credentials)
1021
- end
1022
-
1023
- # Create an audience group of users that opened a message sent in the past
1024
- #
1025
- # Parameters are described here.
1026
- # https://developers.line.biz/en/reference/messaging-api/#create-imp-audience-group
1027
- #
1028
- # @param params [Hash] options
1029
- #
1030
- # @return [Net::HTTPResponse] This response includes an audience_group_id.
1031
- def create_impression_audience(params)
1032
- channel_token_required
1033
-
1034
- endpoint_path = '/bot/audienceGroup/imp'
1035
- post(endpoint, endpoint_path, params.to_json, credentials)
1036
- end
1037
-
1038
- # Rename an existing audience group
1039
- #
1040
- # @param audience_group_id [Integer]
1041
- # @param description [String]
1042
- #
1043
- # @return [Net::HTTPResponse]
1044
- def rename_audience(audience_group_id, description)
1045
- channel_token_required
1046
-
1047
- endpoint_path = "/bot/audienceGroup/#{audience_group_id}/updateDescription"
1048
- body = {description: description}
1049
- put(endpoint, endpoint_path, body.to_json, credentials)
1050
- end
1051
-
1052
- # Delete an existing audience group
1053
- #
1054
- # Parameters are described here.
1055
- # https://developers.line.biz/en/reference/messaging-api/#delete-audience-group
1056
- #
1057
- # @param audience_group_id [Integer]
1058
- #
1059
- # @return [Net::HTTPResponse]
1060
- def delete_audience(audience_group_id)
1061
- channel_token_required
1062
-
1063
- endpoint_path = "/bot/audienceGroup/#{audience_group_id}"
1064
- delete(endpoint, endpoint_path, credentials)
1065
- end
1066
-
1067
- # Get audience group data
1068
- #
1069
- # Parameters are described here.
1070
- # https://developers.line.biz/en/reference/messaging-api/#get-audience-group
1071
- #
1072
- # @param audience_group_id [Integer]
1073
- #
1074
- # @return [Net::HTTPResponse]
1075
- def get_audience(audience_group_id)
1076
- channel_token_required
1077
-
1078
- endpoint_path = "/bot/audienceGroup/#{audience_group_id}"
1079
- get(endpoint, endpoint_path, credentials)
1080
- end
1081
-
1082
- # Get data for more than one audience group
1083
- #
1084
- # Parameters are described here.
1085
- # https://developers.line.biz/en/reference/messaging-api/#get-audience-groups
1086
- #
1087
- # @param params [Hash] key name `page` is required
1088
- #
1089
- # @return [Net::HTTPResponse]
1090
- def get_audiences(params)
1091
- channel_token_required
1092
-
1093
- endpoint_path = "/bot/audienceGroup/list?" + URI.encode_www_form(params)
1094
- get(endpoint, endpoint_path, credentials)
1095
- end
1096
-
1097
- # Get the authority level of the audience
1098
- #
1099
- # Parameters are described here.
1100
- # https://developers.line.biz/en/reference/messaging-api/#get-authority-level
1101
- #
1102
- # @return [Net::HTTPResponse]
1103
- def get_audience_authority_level
1104
- channel_token_required
1105
-
1106
- endpoint_path = "/bot/audienceGroup/authorityLevel"
1107
- get(endpoint, endpoint_path, credentials)
1108
- end
1109
-
1110
- # Change the authority level of the audience
1111
- #
1112
- # Parameters are described here.
1113
- # https://developers.line.biz/en/reference/messaging-api/#change-authority-level
1114
- #
1115
- # @param authority_level [String] value must be `PUBLIC` or `PRIVATE`
1116
- #
1117
- # @return [Net::HTTPResponse]
1118
- def update_audience_authority_level(authority_level)
1119
- channel_token_required
1120
-
1121
- endpoint_path = "/bot/audienceGroup/authorityLevel"
1122
- body = {authorityLevel: authority_level}
1123
- put(endpoint, endpoint_path, body.to_json, credentials)
1124
- end
1125
-
1126
- # Get the per-unit statistics of how users interact with push messages and multicast messages.
1127
- #
1128
- # @param unit [String] Case-sensitive name of aggregation unit specified when sending the message.
1129
- # @param from [String] Start date of aggregation period in UTC+9 with `yyyyMMdd` format
1130
- # @param to [String] End date of aggregation period in UTC+9 with `yyyyMMdd` format.
1131
- #
1132
- # @return [Net::HTTPResponse]
1133
- def get_statistics_per_unit(unit:, from:, to:)
1134
- channel_token_required
1135
-
1136
- params = {customAggregationUnit: unit, from: from, to: to}
1137
- endpoint_path = "/bot/insight/message/event/aggregation?" + URI.encode_www_form(params)
1138
- get(endpoint, endpoint_path, credentials)
1139
- end
1140
-
1141
- # Get the number of aggregation units used this month.
1142
- #
1143
- # @return [Net::HTTPResponse]
1144
- def get_aggregation_info
1145
- channel_token_required
1146
-
1147
- endpoint_path = "/bot/message/aggregation/info"
1148
- get(endpoint, endpoint_path, credentials)
1149
- end
1150
-
1151
- # Get the name list of units used this month for statistics aggregation.
1152
- #
1153
- # @param limit [Integer] Maximum number of aggregation units per request. Maximum: 100, Default: 100.
1154
- # @param start [String] Value of the continuation token found in the `next` property of the JSON object returned in the response.
1155
- #
1156
- # @return [Net::HTTPResponse]
1157
- def get_aggregation_list(limit: nil, start: nil)
1158
- channel_token_required
1159
-
1160
- params = {limit: limit, start: start}.compact
1161
- endpoint_path = "/bot/message/aggregation/list?" + URI.encode_www_form(params)
1162
- get(endpoint, endpoint_path, credentials)
1163
- end
1164
-
1165
- # Gets the status of a narrowcast message.
1166
- #
1167
- # @param request_id [String] The narrowcast message's request ID. Each Messaging API request has a request ID. Find it in the response headers.
1168
- #
1169
- # @return [Net::HTTPResponse]
1170
- def get_narrowcast_message_status(request_id)
1171
- channel_token_required
1172
-
1173
- endpoint_path = "/bot/message/progress/narrowcast?requestId=#{request_id}"
1174
- get(endpoint, endpoint_path, credentials)
1175
- end
1176
-
1177
- # Send messages to multiple users using phone numbers.
1178
- #
1179
- # @param to [Array, String] Array of hashed phone numbers.
1180
- # @param messages [Hash, Array] Message Objects.
1181
- # @param headers [Hash] HTTP Headers.
1182
- # @param payload [Hash] Additional request body.
1183
- #
1184
- # @return [Net::HTTPResponse]
1185
-
1186
- def multicast_by_phone_numbers(to, messages, headers: {}, payload: {})
1187
- channel_token_required
1188
-
1189
- to = [to] if to.is_a?(String)
1190
- messages = [messages] if messages.is_a?(Hash)
1191
-
1192
- endpoint_path = 'bot/ad/multicast/phone'
1193
- payload = payload.merge({ to: to, messages: messages }).to_json
1194
- post(oauth_endpoint, endpoint_path, payload, credentials.merge(headers))
1195
- end
1196
-
1197
- # Get the delivery result of the message delivered in Send message using phone number. (`#multicast_by_phone_numbers`)
1198
- #
1199
- # @param date [String] Date the message was sent in UTC+9 with `yyyyMMdd` format.
1200
- #
1201
- # @return [Net::HTTPResponse]
1202
-
1203
- def get_delivery_result_sent_by_phone_numbers(date)
1204
- channel_token_required
1205
-
1206
- endpoint_path = "/bot/message/delivery/ad_phone?date=#{date}"
1207
- get(endpoint, endpoint_path, credentials)
1208
- end
1209
-
1210
- # Send a LINE notification message by specifying the user's phone number.
1211
- #
1212
- # @param hashed_phone_number [String] Phone number that has been normalized.
1213
- # @param messages [Hash, Array] Message Objects.
1214
- # @param headers [Hash] HTTP Headers.
1215
- # @param payload [Hash] Additional request body.
1216
- #
1217
- # @return [Net::HTTPResponse]
1218
- def push_pnp(hashed_phone_number, messages, headers: {}, payload: {})
1219
- channel_token_required
1220
-
1221
- messages = [messages] if messages.is_a?(Hash)
1222
-
1223
- endpoint_path = '/bot/pnp/push'
1224
- payload = payload.merge({ to: hashed_phone_number, messages: messages }).to_json
1225
- post(oauth_endpoint, endpoint_path, payload, credentials.merge(headers))
1226
- end
1227
-
1228
- # Get the number of LINE notification messages sent using the /bot/pnp/push endpoint.
1229
- #
1230
- # @param date [String] Date the messages were sent (format: yyyyMMdd).
1231
- #
1232
- # @return [Net::HTTPResponse]
1233
- def get_message_delivery_pnp(date)
1234
- channel_token_required
1235
-
1236
- endpoint_path = "/bot/message/delivery/pnp?date=#{date}"
1237
- get(endpoint, endpoint_path, credentials)
1238
- end
1239
-
1240
- # Fetch data, get content of specified URL.
1241
- #
1242
- # @param endpoint_base [String]
1243
- # @param endpoint_path [String]
1244
- # @param headers [Hash]
1245
- #
1246
- # @return [Net::HTTPResponse]
1247
- def get(endpoint_base, endpoint_path, headers = {})
1248
- headers = API::DEFAULT_HEADERS.merge(headers)
1249
- httpclient.get(endpoint_base + endpoint_path, headers)
1250
- end
1251
-
1252
- # Post data, get content of specified URL.
1253
- #
1254
- # @param endpoint_base [String]
1255
- # @param endpoint_path [String]
1256
- # @param payload [String, NilClass]
1257
- # @param headers [Hash]
1258
- #
1259
- # @return [Net::HTTPResponse]
1260
- def post(endpoint_base, endpoint_path, payload = nil, headers = {})
1261
- headers = API::DEFAULT_HEADERS.merge(headers)
1262
- httpclient.post(endpoint_base + endpoint_path, payload, headers)
1263
- end
1264
-
1265
- # Put data, get content of specified URL.
1266
- #
1267
- # @param endpoint_base [String]
1268
- # @param endpoint_path [String]
1269
- # @param payload [String, NilClass]
1270
- # @param headers [Hash]
1271
- #
1272
- # @return [Net::HTTPResponse]
1273
- def put(endpoint_base, endpoint_path, payload = nil, headers = {})
1274
- headers = API::DEFAULT_HEADERS.merge(headers)
1275
- httpclient.put(endpoint_base + endpoint_path, payload, headers)
1276
- end
1277
-
1278
- # Delete content of specified URL.
1279
- #
1280
- # @param endpoint_base [String]
1281
- # @param endpoint_path [String]
1282
- # @param headers [Hash]
1283
- #
1284
- # @return [Net::HTTPResponse]
1285
- def delete(endpoint_base, endpoint_path, headers = {})
1286
- headers = API::DEFAULT_HEADERS.merge(headers)
1287
- httpclient.delete(endpoint_base + endpoint_path, headers)
1288
- end
1289
-
1290
- # Parse events from request.body
1291
- #
1292
- # @param request_body [String]
1293
- #
1294
- # @return [Array<Line::Bot::Event::Class>]
1295
- def parse_events_from(request_body)
1296
- json = JSON.parse(request_body)
1297
-
1298
- json['events'].map do |item|
1299
- begin
1300
- klass = Event.const_get(Util.camelize(item['type']))
1301
- klass.new(item)
1302
- rescue NameError
1303
- Event::Base.new(item)
1304
- end
1305
- end
1306
- end
1307
-
1308
- # Validate signature of a webhook event.
1309
- #
1310
- # https://developers.line.biz/en/reference/messaging-api/#signature-validation
1311
- #
1312
- # @param content [String] Request's body
1313
- # @param channel_signature [String] Request'header 'X-LINE-Signature' # HTTP_X_LINE_SIGNATURE
1314
- #
1315
- # @return [Boolean]
1316
- def validate_signature(content, channel_signature)
1317
- return false if !channel_signature || !channel_secret
1318
-
1319
- hash = OpenSSL::HMAC.digest(OpenSSL::Digest.new('SHA256'), channel_secret, content)
1320
- signature = Base64.strict_encode64(hash)
1321
-
1322
- variable_secure_compare(channel_signature, signature)
1323
- end
1324
-
1325
- private
1326
-
1327
- # Constant time string comparison.
1328
- #
1329
- # via timing attacks.
1330
- # reference: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/security_utils.rb
1331
- # @return [Boolean]
1332
- def variable_secure_compare(a, b)
1333
- secure_compare(::Digest::SHA256.hexdigest(a), ::Digest::SHA256.hexdigest(b))
1334
- end
1335
-
1336
- # @return [Boolean]
1337
- def secure_compare(a, b)
1338
- return false unless a.bytesize == b.bytesize
1339
-
1340
- l = a.unpack "C#{a.bytesize}"
1341
-
1342
- res = 0
1343
- b.each_byte { |byte| res |= byte ^ l.shift }
1344
- res == 0
1345
- end
1346
-
1347
- def content_type(file)
1348
- if file.respond_to?(:content_type)
1349
- content_type = file.content_type
1350
- raise ArgumentError, "invalid content type: #{content_type}" unless ['image/jpeg', 'image/png'].include?(content_type)
1351
-
1352
- content_type
1353
- else
1354
- case file.path
1355
- when /\.jpe?g\z/i then 'image/jpeg'
1356
- when /\.png\z/i then 'image/png'
1357
- else
1358
- raise ArgumentError, "invalid file extension: #{file.path}"
1359
- end
1360
- end
1361
- end
1362
-
1363
- def channel_token_required
1364
- raise ArgumentError, '`channel_token` is not configured' unless channel_token
1365
- end
1366
-
1367
- def channel_id_required
1368
- raise ArgumentError, '`channel_id` is not configured' unless channel_id
1369
- end
1370
-
1371
- def channel_secret_required
1372
- raise ArgumentError, '`channel_secret` is not configured' unless channel_secret
1373
- end
1374
- end
1375
- end
1376
- end