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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +38 -8
- data/README.md +231 -25
- data/lib/line/bot/v2/channel_access_token/api/channel_access_token_client.rb +533 -0
- data/lib/line/bot/v2/channel_access_token/core.rb +20 -0
- data/lib/line/bot/v2/channel_access_token/model/channel_access_token_key_ids_response.rb +68 -0
- data/lib/line/bot/v2/channel_access_token/model/error_response.rb +73 -0
- data/lib/line/bot/v2/channel_access_token/model/issue_channel_access_token_response.rb +86 -0
- data/lib/line/bot/v2/channel_access_token/model/issue_short_lived_channel_access_token_response.rb +80 -0
- data/lib/line/bot/v2/channel_access_token/model/issue_stateless_channel_access_token_response.rb +80 -0
- data/lib/line/bot/v2/channel_access_token/model/verify_channel_access_token_response.rb +79 -0
- data/lib/line/bot/v2/http_client.rb +165 -0
- data/lib/line/bot/v2/insight/api/insight_client.rb +314 -0
- data/lib/line/bot/v2/insight/core.rb +32 -0
- data/lib/line/bot/v2/insight/model/age_tile.rb +72 -0
- data/lib/line/bot/v2/insight/model/app_type_tile.rb +72 -0
- data/lib/line/bot/v2/insight/model/area_tile.rb +72 -0
- data/lib/line/bot/v2/insight/model/error_detail.rb +72 -0
- data/lib/line/bot/v2/insight/model/error_response.rb +79 -0
- data/lib/line/bot/v2/insight/model/gender_tile.rb +72 -0
- data/lib/line/bot/v2/insight/model/get_friends_demographics_response.rb +128 -0
- data/lib/line/bot/v2/insight/model/get_message_event_response.rb +92 -0
- data/lib/line/bot/v2/insight/model/get_message_event_response_click.rb +90 -0
- data/lib/line/bot/v2/insight/model/get_message_event_response_message.rb +132 -0
- data/lib/line/bot/v2/insight/model/get_message_event_response_overview.rb +103 -0
- data/lib/line/bot/v2/insight/model/get_number_of_followers_response.rb +86 -0
- data/lib/line/bot/v2/insight/model/get_number_of_message_deliveries_response.rb +128 -0
- data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb +92 -0
- data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response_click.rb +91 -0
- data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response_message.rb +139 -0
- data/lib/line/bot/v2/insight/model/get_statistics_per_unit_response_overview.rb +86 -0
- data/lib/line/bot/v2/insight/model/subscription_period_tile.rb +72 -0
- data/lib/line/bot/v2/liff/api/liff_client.rb +273 -0
- data/lib/line/bot/v2/liff/core.rb +24 -0
- data/lib/line/bot/v2/liff/model/add_liff_app_request.rb +97 -0
- data/lib/line/bot/v2/liff/model/add_liff_app_response.rb +66 -0
- data/lib/line/bot/v2/liff/model/get_all_liff_apps_response.rb +72 -0
- data/lib/line/bot/v2/liff/model/liff_app.rb +102 -0
- data/lib/line/bot/v2/liff/model/liff_bot_prompt.rb +21 -0
- data/lib/line/bot/v2/liff/model/liff_features.rb +72 -0
- data/lib/line/bot/v2/liff/model/liff_scope.rb +21 -0
- data/lib/line/bot/v2/liff/model/liff_view.rb +79 -0
- data/lib/line/bot/v2/liff/model/update_liff_app_request.rb +97 -0
- data/lib/line/bot/v2/liff/model/update_liff_view.rb +79 -0
- data/lib/line/bot/v2/manage_audience/api/manage_audience_blob_client.rb +182 -0
- data/lib/line/bot/v2/manage_audience/api/manage_audience_client.rb +616 -0
- data/lib/line/bot/v2/manage_audience/core.rb +42 -0
- data/lib/line/bot/v2/manage_audience/model/adaccount.rb +67 -0
- data/lib/line/bot/v2/manage_audience/model/add_audience_to_audience_group_request.rb +86 -0
- data/lib/line/bot/v2/manage_audience/model/audience.rb +67 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group.rb +133 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_create_route.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_failed_type.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_job.rb +110 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_job_failed_type.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_job_status.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_job_type.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_permission.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_status.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/audience_group_type.rb +21 -0
- data/lib/line/bot/v2/manage_audience/model/create_audience_group_request.rb +92 -0
- data/lib/line/bot/v2/manage_audience/model/create_audience_group_response.rb +110 -0
- data/lib/line/bot/v2/manage_audience/model/create_click_based_audience_group_request.rb +80 -0
- data/lib/line/bot/v2/manage_audience/model/create_click_based_audience_group_response.rb +122 -0
- data/lib/line/bot/v2/manage_audience/model/create_imp_based_audience_group_request.rb +74 -0
- data/lib/line/bot/v2/manage_audience/model/create_imp_based_audience_group_response.rb +92 -0
- data/lib/line/bot/v2/manage_audience/model/detailed_owner.rb +79 -0
- data/lib/line/bot/v2/manage_audience/model/error_detail.rb +72 -0
- data/lib/line/bot/v2/manage_audience/model/error_response.rb +79 -0
- data/lib/line/bot/v2/manage_audience/model/get_audience_data_response.rb +86 -0
- data/lib/line/bot/v2/manage_audience/model/get_audience_groups_response.rb +104 -0
- data/lib/line/bot/v2/manage_audience/model/get_shared_audience_data_response.rb +86 -0
- data/lib/line/bot/v2/manage_audience/model/get_shared_audience_groups_response.rb +104 -0
- data/lib/line/bot/v2/manage_audience/model/update_audience_group_description_request.rb +68 -0
- data/lib/line/bot/v2/messaging_api/api/messaging_api_blob_client.rb +282 -0
- data/lib/line/bot/v2/messaging_api/api/messaging_api_client.rb +3354 -0
- data/lib/line/bot/v2/messaging_api/core.rb +173 -0
- data/lib/line/bot/v2/messaging_api/model/action.rb +92 -0
- data/lib/line/bot/v2/messaging_api/model/age_demographic.rb +20 -0
- data/lib/line/bot/v2/messaging_api/model/age_demographic_filter.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/all_mention_target.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/alt_uri.rb +66 -0
- data/lib/line/bot/v2/messaging_api/model/app_type_demographic.rb +20 -0
- data/lib/line/bot/v2/messaging_api/model/app_type_demographic_filter.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/area_demographic.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/area_demographic_filter.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/audience_recipient.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/audio_message.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/bot_info_response.rb +103 -0
- data/lib/line/bot/v2/messaging_api/model/broadcast_request.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/buttons_template.rb +120 -0
- data/lib/line/bot/v2/messaging_api/model/camera_action.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/camera_roll_action.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/carousel_column.rb +103 -0
- data/lib/line/bot/v2/messaging_api/model/carousel_template.rb +90 -0
- data/lib/line/bot/v2/messaging_api/model/chat_reference.rb +68 -0
- data/lib/line/bot/v2/messaging_api/model/clipboard_action.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/clipboard_imagemap_action.rb +85 -0
- data/lib/line/bot/v2/messaging_api/model/confirm_template.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/create_rich_menu_alias_request.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/datetime_picker_action.rb +103 -0
- data/lib/line/bot/v2/messaging_api/model/demographic_filter.rb +82 -0
- data/lib/line/bot/v2/messaging_api/model/emoji.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/emoji_substitution_object.rb +80 -0
- data/lib/line/bot/v2/messaging_api/model/error_detail.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/error_response.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/filter.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/flex_block_style.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box.rb +234 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box_background.rb +76 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box_border_width.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box_corner_radius.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box_linear_gradient.rb +96 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box_padding.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_box_spacing.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_bubble.rb +114 -0
- data/lib/line/bot/v2/messaging_api/model/flex_bubble_styles.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/flex_button.rb +150 -0
- data/lib/line/bot/v2/messaging_api/model/flex_carousel.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/flex_component.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/flex_container.rb +77 -0
- data/lib/line/bot/v2/messaging_api/model/flex_filler.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/flex_icon.rb +127 -0
- data/lib/line/bot/v2/messaging_api/model/flex_icon_size.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_image.rb +163 -0
- data/lib/line/bot/v2/messaging_api/model/flex_image_size.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_margin.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_message.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/flex_offset.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_separator.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/flex_span.rb +102 -0
- data/lib/line/bot/v2/messaging_api/model/flex_span_size.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_text.rb +204 -0
- data/lib/line/bot/v2/messaging_api/model/flex_text_font_size.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/flex_video.rb +96 -0
- data/lib/line/bot/v2/messaging_api/model/gender_demographic.rb +20 -0
- data/lib/line/bot/v2/messaging_api/model/gender_demographic_filter.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/get_aggregation_unit_name_list_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/get_aggregation_unit_usage_response.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/get_followers_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/get_joined_membership_users_response.rb +74 -0
- data/lib/line/bot/v2/messaging_api/model/get_membership_subscription_response.rb +74 -0
- data/lib/line/bot/v2/messaging_api/model/get_message_content_transcoding_response.rb +68 -0
- data/lib/line/bot/v2/messaging_api/model/get_webhook_endpoint_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/group_member_count_response.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/group_summary_response.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/group_user_profile_response.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/image_carousel_column.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/image_carousel_template.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/image_message.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/imagemap_action.rb +85 -0
- data/lib/line/bot/v2/messaging_api/model/imagemap_area.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/imagemap_base_size.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/imagemap_external_link.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/imagemap_message.rb +115 -0
- data/lib/line/bot/v2/messaging_api/model/imagemap_video.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/issue_link_token_response.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/limit.rb +74 -0
- data/lib/line/bot/v2/messaging_api/model/location_action.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/location_message.rb +103 -0
- data/lib/line/bot/v2/messaging_api/model/mark_messages_as_read_request.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/members_ids_response.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/membership.rb +120 -0
- data/lib/line/bot/v2/messaging_api/model/membership_list_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/mention_substitution_object.rb +74 -0
- data/lib/line/bot/v2/messaging_api/model/mention_target.rb +77 -0
- data/lib/line/bot/v2/messaging_api/model/message.rb +98 -0
- data/lib/line/bot/v2/messaging_api/model/message_action.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/message_imagemap_action.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/message_quota_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/multicast_request.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/narrowcast_progress_response.rb +109 -0
- data/lib/line/bot/v2/messaging_api/model/narrowcast_request.rb +97 -0
- data/lib/line/bot/v2/messaging_api/model/number_of_messages_response.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/operator_demographic_filter.rb +96 -0
- data/lib/line/bot/v2/messaging_api/model/operator_recipient.rb +96 -0
- data/lib/line/bot/v2/messaging_api/model/pnp_messages_request.rb +85 -0
- data/lib/line/bot/v2/messaging_api/model/postback_action.rb +102 -0
- data/lib/line/bot/v2/messaging_api/model/push_message_request.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/push_message_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/quick_reply.rb +74 -0
- data/lib/line/bot/v2/messaging_api/model/quick_reply_item.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/quota_consumption_response.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/quota_type.rb +22 -0
- data/lib/line/bot/v2/messaging_api/model/recipient.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/redelivery_recipient.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/reply_message_request.rb +85 -0
- data/lib/line/bot/v2/messaging_api/model/reply_message_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_alias_list_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_alias_response.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_area.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_link_operation.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_operation.rb +80 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_progress_phase.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_progress_response.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_request.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_all_operation.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_operation.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_bounds.rb +86 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_bulk_link_request.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_bulk_unlink_request.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_id_response.rb +66 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_list_response.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_request.rb +96 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_response.rb +102 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_size.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/rich_menu_switch_action.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/room_member_count_response.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/room_user_profile_response.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/sender.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/sent_message.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/set_webhook_endpoint_request.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/show_loading_animation_request.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/sticker_message.rb +97 -0
- data/lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb +97 -0
- data/lib/line/bot/v2/messaging_api/model/subscribed_membership_user.rb +85 -0
- data/lib/line/bot/v2/messaging_api/model/subscription.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/subscription_period_demographic.rb +20 -0
- data/lib/line/bot/v2/messaging_api/model/subscription_period_demographic_filter.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/substitution_object.rb +78 -0
- data/lib/line/bot/v2/messaging_api/model/template.rb +79 -0
- data/lib/line/bot/v2/messaging_api/model/template_image_aspect_ratio.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/template_image_size.rb +21 -0
- data/lib/line/bot/v2/messaging_api/model/template_message.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/test_webhook_endpoint_request.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/test_webhook_endpoint_response.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/text_message.rb +103 -0
- data/lib/line/bot/v2/messaging_api/model/text_message_v2.rb +97 -0
- data/lib/line/bot/v2/messaging_api/model/update_rich_menu_alias_request.rb +67 -0
- data/lib/line/bot/v2/messaging_api/model/uri_action.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/uri_imagemap_action.rb +84 -0
- data/lib/line/bot/v2/messaging_api/model/user_mention_target.rb +73 -0
- data/lib/line/bot/v2/messaging_api/model/user_profile_response.rb +91 -0
- data/lib/line/bot/v2/messaging_api/model/validate_message_request.rb +72 -0
- data/lib/line/bot/v2/messaging_api/model/video_message.rb +97 -0
- data/lib/line/bot/v2/module/api/line_module_client.rb +247 -0
- data/lib/line/bot/v2/module/core.rb +18 -0
- data/lib/line/bot/v2/module/model/acquire_chat_control_request.rb +74 -0
- data/lib/line/bot/v2/module/model/detach_module_request.rb +68 -0
- data/lib/line/bot/v2/module/model/get_modules_response.rb +80 -0
- data/lib/line/bot/v2/module/model/module_bot.rb +92 -0
- data/lib/line/bot/v2/module_attach/api/line_module_attach_client.rb +160 -0
- data/lib/line/bot/v2/module_attach/core.rb +15 -0
- data/lib/line/bot/v2/module_attach/model/attach_module_response.rb +73 -0
- data/lib/line/bot/v2/reserved_words.rb +50 -0
- data/lib/line/bot/v2/shop/api/shop_client.rb +95 -0
- data/lib/line/bot/v2/shop/core.rb +16 -0
- data/lib/line/bot/v2/shop/model/error_response.rb +67 -0
- data/lib/line/bot/v2/shop/model/mission_sticker_request.rb +86 -0
- data/lib/line/bot/v2/utils.rb +143 -0
- data/lib/line/bot/v2/webhook/core.rb +77 -0
- data/lib/line/bot/v2/webhook/model/account_link_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/action_result.rb +72 -0
- data/lib/line/bot/v2/webhook/model/activated_event.rb +103 -0
- data/lib/line/bot/v2/webhook/model/all_mentionee.rb +79 -0
- data/lib/line/bot/v2/webhook/model/attached_module_content.rb +78 -0
- data/lib/line/bot/v2/webhook/model/audio_message_content.rb +84 -0
- data/lib/line/bot/v2/webhook/model/beacon_content.rb +78 -0
- data/lib/line/bot/v2/webhook/model/beacon_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/bot_resumed_event.rb +97 -0
- data/lib/line/bot/v2/webhook/model/bot_suspended_event.rb +97 -0
- data/lib/line/bot/v2/webhook/model/callback_request.rb +80 -0
- data/lib/line/bot/v2/webhook/model/chat_control.rb +66 -0
- data/lib/line/bot/v2/webhook/model/content_provider.rb +79 -0
- data/lib/line/bot/v2/webhook/model/deactivated_event.rb +97 -0
- data/lib/line/bot/v2/webhook/model/delivery_context.rb +67 -0
- data/lib/line/bot/v2/webhook/model/detached_module_content.rb +78 -0
- data/lib/line/bot/v2/webhook/model/emoji.rb +84 -0
- data/lib/line/bot/v2/webhook/model/event.rb +126 -0
- data/lib/line/bot/v2/webhook/model/event_mode.rb +21 -0
- data/lib/line/bot/v2/webhook/model/file_message_content.rb +84 -0
- data/lib/line/bot/v2/webhook/model/follow_detail.rb +66 -0
- data/lib/line/bot/v2/webhook/model/follow_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/group_source.rb +78 -0
- data/lib/line/bot/v2/webhook/model/image_message_content.rb +90 -0
- data/lib/line/bot/v2/webhook/model/image_set.rb +78 -0
- data/lib/line/bot/v2/webhook/model/join_event.rb +103 -0
- data/lib/line/bot/v2/webhook/model/joined_members.rb +72 -0
- data/lib/line/bot/v2/webhook/model/joined_membership_content.rb +72 -0
- data/lib/line/bot/v2/webhook/model/leave_event.rb +97 -0
- data/lib/line/bot/v2/webhook/model/left_members.rb +72 -0
- data/lib/line/bot/v2/webhook/model/left_membership_content.rb +72 -0
- data/lib/line/bot/v2/webhook/model/link_content.rb +73 -0
- data/lib/line/bot/v2/webhook/model/link_things_content.rb +72 -0
- data/lib/line/bot/v2/webhook/model/location_message_content.rb +96 -0
- data/lib/line/bot/v2/webhook/model/member_joined_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/member_left_event.rb +103 -0
- data/lib/line/bot/v2/webhook/model/membership_content.rb +79 -0
- data/lib/line/bot/v2/webhook/model/membership_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/mention.rb +72 -0
- data/lib/line/bot/v2/webhook/model/mentionee.rb +90 -0
- data/lib/line/bot/v2/webhook/model/message_content.rb +89 -0
- data/lib/line/bot/v2/webhook/model/message_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/module_content.rb +77 -0
- data/lib/line/bot/v2/webhook/model/module_event.rb +103 -0
- data/lib/line/bot/v2/webhook/model/pnp_delivery.rb +67 -0
- data/lib/line/bot/v2/webhook/model/pnp_delivery_completion_event.rb +103 -0
- data/lib/line/bot/v2/webhook/model/postback_content.rb +72 -0
- data/lib/line/bot/v2/webhook/model/postback_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/renewed_membership_content.rb +72 -0
- data/lib/line/bot/v2/webhook/model/room_source.rb +78 -0
- data/lib/line/bot/v2/webhook/model/scenario_result.rb +115 -0
- data/lib/line/bot/v2/webhook/model/scenario_result_things_content.rb +78 -0
- data/lib/line/bot/v2/webhook/model/source.rb +80 -0
- data/lib/line/bot/v2/webhook/model/sticker_message_content.rb +115 -0
- data/lib/line/bot/v2/webhook/model/text_message_content.rb +108 -0
- data/lib/line/bot/v2/webhook/model/things_content.rb +78 -0
- data/lib/line/bot/v2/webhook/model/things_event.rb +109 -0
- data/lib/line/bot/v2/webhook/model/unfollow_event.rb +97 -0
- data/lib/line/bot/v2/webhook/model/unlink_things_content.rb +72 -0
- data/lib/line/bot/v2/webhook/model/unsend_detail.rb +66 -0
- data/lib/line/bot/v2/webhook/model/unsend_event.rb +103 -0
- data/lib/line/bot/v2/webhook/model/user_mentionee.rb +91 -0
- data/lib/line/bot/v2/webhook/model/user_source.rb +72 -0
- data/lib/line/bot/v2/webhook/model/video_message_content.rb +90 -0
- data/lib/line/bot/v2/webhook/model/video_play_complete.rb +66 -0
- data/lib/line/bot/v2/webhook/model/video_play_complete_event.rb +109 -0
- data/lib/line/bot/v2/webhook_parser.rb +94 -0
- data/lib/line/bot/version.rb +7 -0
- data/lib/line/bot.rb +15 -9
- data/line-bot-api.gemspec +23 -18
- data/sig/line/bot/v2/channel_access_token/api/channel_access_token_client.rbs +327 -0
- data/sig/line/bot/v2/channel_access_token/model/channel_access_token_key_ids_response.rbs +41 -0
- data/sig/line/bot/v2/channel_access_token/model/error_response.rbs +43 -0
- data/sig/line/bot/v2/channel_access_token/model/issue_channel_access_token_response.rbs +50 -0
- data/sig/line/bot/v2/channel_access_token/model/issue_short_lived_channel_access_token_response.rbs +47 -0
- data/sig/line/bot/v2/channel_access_token/model/issue_stateless_channel_access_token_response.rbs +47 -0
- data/sig/line/bot/v2/channel_access_token/model/verify_channel_access_token_response.rbs +46 -0
- data/sig/line/bot/v2/http_client.rbs +111 -0
- data/sig/line/bot/v2/insight/api/insight_client.rbs +196 -0
- data/sig/line/bot/v2/insight/model/age_tile.rbs +42 -0
- data/sig/line/bot/v2/insight/model/app_type_tile.rbs +42 -0
- data/sig/line/bot/v2/insight/model/area_tile.rbs +42 -0
- data/sig/line/bot/v2/insight/model/error_detail.rbs +42 -0
- data/sig/line/bot/v2/insight/model/error_response.rbs +43 -0
- data/sig/line/bot/v2/insight/model/gender_tile.rbs +42 -0
- data/sig/line/bot/v2/insight/model/get_friends_demographics_response.rbs +56 -0
- data/sig/line/bot/v2/insight/model/get_message_event_response.rbs +47 -0
- data/sig/line/bot/v2/insight/model/get_message_event_response_click.rbs +51 -0
- data/sig/line/bot/v2/insight/model/get_message_event_response_message.rbs +72 -0
- data/sig/line/bot/v2/insight/model/get_message_event_response_overview.rbs +58 -0
- data/sig/line/bot/v2/insight/model/get_number_of_followers_response.rbs +50 -0
- data/sig/line/bot/v2/insight/model/get_number_of_message_deliveries_response.rbs +71 -0
- data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response.rbs +47 -0
- data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response_click.rbs +52 -0
- data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response_message.rbs +76 -0
- data/sig/line/bot/v2/insight/model/get_statistics_per_unit_response_overview.rbs +50 -0
- data/sig/line/bot/v2/insight/model/subscription_period_tile.rbs +42 -0
- data/sig/line/bot/v2/liff/api/liff_client.rbs +198 -0
- data/sig/line/bot/v2/liff/model/add_liff_app_request.rbs +55 -0
- data/sig/line/bot/v2/liff/model/add_liff_app_response.rbs +39 -0
- data/sig/line/bot/v2/liff/model/get_all_liff_apps_response.rbs +39 -0
- data/sig/line/bot/v2/liff/model/liff_app.rbs +57 -0
- data/sig/line/bot/v2/liff/model/liff_bot_prompt.rbs +21 -0
- data/sig/line/bot/v2/liff/model/liff_features.rbs +42 -0
- data/sig/line/bot/v2/liff/model/liff_scope.rbs +21 -0
- data/sig/line/bot/v2/liff/model/liff_view.rbs +46 -0
- data/sig/line/bot/v2/liff/model/update_liff_app_request.rbs +55 -0
- data/sig/line/bot/v2/liff/model/update_liff_view.rbs +46 -0
- data/sig/line/bot/v2/manage_audience/api/manage_audience_blob_client.rbs +122 -0
- data/sig/line/bot/v2/manage_audience/api/manage_audience_client.rbs +394 -0
- data/sig/line/bot/v2/manage_audience/model/adaccount.rbs +40 -0
- data/sig/line/bot/v2/manage_audience/model/add_audience_to_audience_group_request.rbs +47 -0
- data/sig/line/bot/v2/manage_audience/model/audience.rbs +40 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group.rbs +73 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_create_route.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_failed_type.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_job.rbs +62 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_job_failed_type.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_job_status.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_job_type.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_permission.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_status.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/audience_group_type.rbs +21 -0
- data/sig/line/bot/v2/manage_audience/model/create_audience_group_request.rbs +50 -0
- data/sig/line/bot/v2/manage_audience/model/create_audience_group_response.rbs +62 -0
- data/sig/line/bot/v2/manage_audience/model/create_click_based_audience_group_request.rbs +47 -0
- data/sig/line/bot/v2/manage_audience/model/create_click_based_audience_group_response.rbs +68 -0
- data/sig/line/bot/v2/manage_audience/model/create_imp_based_audience_group_request.rbs +44 -0
- data/sig/line/bot/v2/manage_audience/model/create_imp_based_audience_group_response.rbs +53 -0
- data/sig/line/bot/v2/manage_audience/model/detailed_owner.rbs +46 -0
- data/sig/line/bot/v2/manage_audience/model/error_detail.rbs +42 -0
- data/sig/line/bot/v2/manage_audience/model/error_response.rbs +43 -0
- data/sig/line/bot/v2/manage_audience/model/get_audience_data_response.rbs +47 -0
- data/sig/line/bot/v2/manage_audience/model/get_audience_groups_response.rbs +56 -0
- data/sig/line/bot/v2/manage_audience/model/get_shared_audience_data_response.rbs +47 -0
- data/sig/line/bot/v2/manage_audience/model/get_shared_audience_groups_response.rbs +56 -0
- data/sig/line/bot/v2/manage_audience/model/update_audience_group_description_request.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/api/messaging_api_blob_client.rbs +196 -0
- data/sig/line/bot/v2/messaging_api/api/messaging_api_client.rbs +2072 -0
- data/sig/line/bot/v2/messaging_api/model/action.rbs +48 -0
- data/sig/line/bot/v2/messaging_api/model/age_demographic.rbs +20 -0
- data/sig/line/bot/v2/messaging_api/model/age_demographic_filter.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/all_mention_target.rbs +38 -0
- data/sig/line/bot/v2/messaging_api/model/alt_uri.rbs +39 -0
- data/sig/line/bot/v2/messaging_api/model/app_type_demographic.rbs +20 -0
- data/sig/line/bot/v2/messaging_api/model/app_type_demographic_filter.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/area_demographic.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/area_demographic_filter.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/audience_recipient.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/audio_message.rbs +50 -0
- data/sig/line/bot/v2/messaging_api/model/bot_info_response.rbs +58 -0
- data/sig/line/bot/v2/messaging_api/model/broadcast_request.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/buttons_template.rbs +61 -0
- data/sig/line/bot/v2/messaging_api/model/camera_action.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/camera_roll_action.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/carousel_column.rbs +55 -0
- data/sig/line/bot/v2/messaging_api/model/carousel_template.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/chat_reference.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/model/clipboard_action.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/clipboard_imagemap_action.rbs +47 -0
- data/sig/line/bot/v2/messaging_api/model/confirm_template.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/create_rich_menu_alias_request.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/datetime_picker_action.rbs +56 -0
- data/sig/line/bot/v2/messaging_api/model/demographic_filter.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/emoji.rbs +45 -0
- data/sig/line/bot/v2/messaging_api/model/emoji_substitution_object.rbs +45 -0
- data/sig/line/bot/v2/messaging_api/model/error_detail.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/error_response.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/filter.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/flex_block_style.rbs +45 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box.rbs +118 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box_background.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box_border_width.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box_corner_radius.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box_linear_gradient.rbs +52 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box_padding.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_box_spacing.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_bubble.rbs +61 -0
- data/sig/line/bot/v2/messaging_api/model/flex_bubble_styles.rbs +48 -0
- data/sig/line/bot/v2/messaging_api/model/flex_button.rbs +79 -0
- data/sig/line/bot/v2/messaging_api/model/flex_carousel.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/flex_component.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/flex_container.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/flex_filler.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/flex_icon.rbs +68 -0
- data/sig/line/bot/v2/messaging_api/model/flex_icon_size.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_image.rbs +86 -0
- data/sig/line/bot/v2/messaging_api/model/flex_image_size.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_margin.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_message.rbs +50 -0
- data/sig/line/bot/v2/messaging_api/model/flex_offset.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_separator.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/flex_span.rbs +55 -0
- data/sig/line/bot/v2/messaging_api/model/flex_span_size.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_text.rbs +103 -0
- data/sig/line/bot/v2/messaging_api/model/flex_text_font_size.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/flex_video.rbs +52 -0
- data/sig/line/bot/v2/messaging_api/model/gender_demographic.rbs +20 -0
- data/sig/line/bot/v2/messaging_api/model/gender_demographic_filter.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/get_aggregation_unit_name_list_response.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/get_aggregation_unit_usage_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/get_followers_response.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/get_joined_membership_users_response.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/get_membership_subscription_response.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/model/get_message_content_transcoding_response.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/model/get_webhook_endpoint_response.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/group_member_count_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/group_summary_response.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/group_user_profile_response.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/image_carousel_column.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/image_carousel_template.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/image_message.rbs +50 -0
- data/sig/line/bot/v2/messaging_api/model/imagemap_action.rbs +47 -0
- data/sig/line/bot/v2/messaging_api/model/imagemap_area.rbs +48 -0
- data/sig/line/bot/v2/messaging_api/model/imagemap_base_size.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/imagemap_external_link.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/imagemap_message.rbs +59 -0
- data/sig/line/bot/v2/messaging_api/model/imagemap_video.rbs +48 -0
- data/sig/line/bot/v2/messaging_api/model/issue_link_token_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/limit.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/location_action.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/location_message.rbs +56 -0
- data/sig/line/bot/v2/messaging_api/model/mark_messages_as_read_request.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/members_ids_response.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/membership.rbs +66 -0
- data/sig/line/bot/v2/messaging_api/model/membership_list_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/mention_substitution_object.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/mention_target.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/message.rbs +50 -0
- data/sig/line/bot/v2/messaging_api/model/message_action.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/message_imagemap_action.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/message_quota_response.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/multicast_request.rbs +49 -0
- data/sig/line/bot/v2/messaging_api/model/narrowcast_progress_response.rbs +61 -0
- data/sig/line/bot/v2/messaging_api/model/narrowcast_request.rbs +52 -0
- data/sig/line/bot/v2/messaging_api/model/number_of_messages_response.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/operator_demographic_filter.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/operator_recipient.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/pnp_messages_request.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/postback_action.rbs +55 -0
- data/sig/line/bot/v2/messaging_api/model/push_message_request.rbs +49 -0
- data/sig/line/bot/v2/messaging_api/model/push_message_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/quick_reply.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/model/quick_reply_item.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/quota_consumption_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/quota_type.rbs +22 -0
- data/sig/line/bot/v2/messaging_api/model/recipient.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/redelivery_recipient.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/reply_message_request.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/reply_message_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_alias_list_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_alias_response.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_area.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_link_operation.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_operation.rbs +45 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_progress_phase.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_progress_response.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_request.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_all_operation.rbs +38 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_batch_unlink_operation.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_bounds.rbs +50 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_bulk_link_request.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_bulk_unlink_request.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_id_response.rbs +39 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_list_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_request.rbs +51 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_response.rbs +54 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_size.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/rich_menu_switch_action.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/room_member_count_response.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/room_user_profile_response.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/sender.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/sent_message.rbs +42 -0
- data/sig/line/bot/v2/messaging_api/model/set_webhook_endpoint_request.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/show_loading_animation_request.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/sticker_message.rbs +53 -0
- data/sig/line/bot/v2/messaging_api/model/subscribed_membership_plan.rbs +55 -0
- data/sig/line/bot/v2/messaging_api/model/subscribed_membership_user.rbs +49 -0
- data/sig/line/bot/v2/messaging_api/model/subscription.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/subscription_period_demographic.rbs +20 -0
- data/sig/line/bot/v2/messaging_api/model/subscription_period_demographic_filter.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/substitution_object.rbs +44 -0
- data/sig/line/bot/v2/messaging_api/model/template.rbs +43 -0
- data/sig/line/bot/v2/messaging_api/model/template_image_aspect_ratio.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/template_image_size.rbs +21 -0
- data/sig/line/bot/v2/messaging_api/model/template_message.rbs +50 -0
- data/sig/line/bot/v2/messaging_api/model/test_webhook_endpoint_request.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/test_webhook_endpoint_response.rbs +52 -0
- data/sig/line/bot/v2/messaging_api/model/text_message.rbs +53 -0
- data/sig/line/bot/v2/messaging_api/model/text_message_v2.rbs +53 -0
- data/sig/line/bot/v2/messaging_api/model/update_rich_menu_alias_request.rbs +40 -0
- data/sig/line/bot/v2/messaging_api/model/uri_action.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/uri_imagemap_action.rbs +46 -0
- data/sig/line/bot/v2/messaging_api/model/user_mention_target.rbs +41 -0
- data/sig/line/bot/v2/messaging_api/model/user_profile_response.rbs +52 -0
- data/sig/line/bot/v2/messaging_api/model/validate_message_request.rbs +39 -0
- data/sig/line/bot/v2/messaging_api/model/video_message.rbs +53 -0
- data/sig/line/bot/v2/module/api/line_module_client.rbs +170 -0
- data/sig/line/bot/v2/module/model/acquire_chat_control_request.rbs +44 -0
- data/sig/line/bot/v2/module/model/detach_module_request.rbs +41 -0
- data/sig/line/bot/v2/module/model/get_modules_response.rbs +44 -0
- data/sig/line/bot/v2/module/model/module_bot.rbs +53 -0
- data/sig/line/bot/v2/module_attach/api/line_module_attach_client.rbs +111 -0
- data/sig/line/bot/v2/module_attach/model/attach_module_response.rbs +43 -0
- data/sig/line/bot/v2/reserved_words.rbs +7 -0
- data/sig/line/bot/v2/shop/api/shop_client.rbs +72 -0
- data/sig/line/bot/v2/shop/model/error_response.rbs +40 -0
- data/sig/line/bot/v2/shop/model/mission_sticker_request.rbs +50 -0
- data/sig/line/bot/v2/utils.rbs +25 -0
- data/sig/line/bot/v2/webhook/model/account_link_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/action_result.rbs +42 -0
- data/sig/line/bot/v2/webhook/model/activated_event.rbs +56 -0
- data/sig/line/bot/v2/webhook/model/all_mentionee.rbs +44 -0
- data/sig/line/bot/v2/webhook/model/attached_module_content.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/audio_message_content.rbs +46 -0
- data/sig/line/bot/v2/webhook/model/beacon_content.rbs +45 -0
- data/sig/line/bot/v2/webhook/model/beacon_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/bot_resumed_event.rbs +53 -0
- data/sig/line/bot/v2/webhook/model/bot_suspended_event.rbs +53 -0
- data/sig/line/bot/v2/webhook/model/callback_request.rbs +44 -0
- data/sig/line/bot/v2/webhook/model/chat_control.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/content_provider.rbs +46 -0
- data/sig/line/bot/v2/webhook/model/deactivated_event.rbs +53 -0
- data/sig/line/bot/v2/webhook/model/delivery_context.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/detached_module_content.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/emoji.rbs +48 -0
- data/sig/line/bot/v2/webhook/model/event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/event_mode.rbs +21 -0
- data/sig/line/bot/v2/webhook/model/file_message_content.rbs +46 -0
- data/sig/line/bot/v2/webhook/model/follow_detail.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/follow_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/group_source.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/image_message_content.rbs +49 -0
- data/sig/line/bot/v2/webhook/model/image_set.rbs +45 -0
- data/sig/line/bot/v2/webhook/model/join_event.rbs +56 -0
- data/sig/line/bot/v2/webhook/model/joined_members.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/joined_membership_content.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/leave_event.rbs +53 -0
- data/sig/line/bot/v2/webhook/model/left_members.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/left_membership_content.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/link_content.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/link_things_content.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/location_message_content.rbs +52 -0
- data/sig/line/bot/v2/webhook/model/member_joined_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/member_left_event.rbs +56 -0
- data/sig/line/bot/v2/webhook/model/membership_content.rbs +44 -0
- data/sig/line/bot/v2/webhook/model/membership_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/mention.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/mentionee.rbs +50 -0
- data/sig/line/bot/v2/webhook/model/message_content.rbs +47 -0
- data/sig/line/bot/v2/webhook/model/message_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/module_content.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/module_event.rbs +56 -0
- data/sig/line/bot/v2/webhook/model/pnp_delivery.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/pnp_delivery_completion_event.rbs +56 -0
- data/sig/line/bot/v2/webhook/model/postback_content.rbs +42 -0
- data/sig/line/bot/v2/webhook/model/postback_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/renewed_membership_content.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/room_source.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/scenario_result.rbs +61 -0
- data/sig/line/bot/v2/webhook/model/scenario_result_things_content.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/source.rbs +45 -0
- data/sig/line/bot/v2/webhook/model/sticker_message_content.rbs +62 -0
- data/sig/line/bot/v2/webhook/model/text_message_content.rbs +55 -0
- data/sig/line/bot/v2/webhook/model/things_content.rbs +43 -0
- data/sig/line/bot/v2/webhook/model/things_event.rbs +59 -0
- data/sig/line/bot/v2/webhook/model/unfollow_event.rbs +53 -0
- data/sig/line/bot/v2/webhook/model/unlink_things_content.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/unsend_detail.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/unsend_event.rbs +56 -0
- data/sig/line/bot/v2/webhook/model/user_mentionee.rbs +50 -0
- data/sig/line/bot/v2/webhook/model/user_source.rbs +40 -0
- data/sig/line/bot/v2/webhook/model/video_message_content.rbs +49 -0
- data/sig/line/bot/v2/webhook/model/video_play_complete.rbs +39 -0
- data/sig/line/bot/v2/webhook/model/video_play_complete_event.rbs +59 -0
- data/sig/line/bot/v2/webhook_parser.rbs +26 -0
- data/sig/line/bot/version.rbs +5 -0
- metadata +645 -69
- data/lib/line/bot/api/errors.rb +0 -21
- data/lib/line/bot/api/version.rb +0 -21
- data/lib/line/bot/api.rb +0 -31
- data/lib/line/bot/client.rb +0 -1376
- data/lib/line/bot/event/account_link.rb +0 -34
- data/lib/line/bot/event/base.rb +0 -33
- data/lib/line/bot/event/beacon.rb +0 -39
- data/lib/line/bot/event/follow.rb +0 -26
- data/lib/line/bot/event/join.rb +0 -25
- data/lib/line/bot/event/leave.rb +0 -27
- data/lib/line/bot/event/member_joined.rb +0 -25
- data/lib/line/bot/event/member_left.rb +0 -27
- data/lib/line/bot/event/message.rb +0 -45
- data/lib/line/bot/event/postback.rb +0 -25
- data/lib/line/bot/event/things.rb +0 -43
- data/lib/line/bot/event/unfollow.rb +0 -27
- data/lib/line/bot/event/unsend.rb +0 -27
- data/lib/line/bot/event/video_play_complete.rb +0 -25
- data/lib/line/bot/event.rb +0 -28
- data/lib/line/bot/httpclient.rb +0 -69
- data/lib/line/bot/util.rb +0 -24
data/lib/line/bot/client.rb
DELETED
@@ -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
|