rails_wechat 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +20 -165
- data/README.md +28 -20
- data/app/apis/wechat/access_token_expired_error.rb +3 -0
- data/app/apis/wechat/api/base/datacube.rb +14 -0
- data/app/apis/wechat/api/base/sns.rb +36 -0
- data/app/apis/wechat/api/base.rb +40 -0
- data/app/apis/wechat/api/platform/component.rb +54 -0
- data/app/apis/wechat/api/platform.rb +15 -0
- data/app/apis/wechat/api/program/wxa.rb +21 -0
- data/app/apis/wechat/api/program/wxaapi.rb +31 -0
- data/app/apis/wechat/api/program.rb +11 -0
- data/app/apis/wechat/api/public/base.rb +73 -0
- data/app/apis/wechat/api/public/material.rb +54 -0
- data/app/apis/wechat/api/public/menu.rb +43 -0
- data/app/apis/wechat/api/public/mp.rb +11 -0
- data/app/apis/wechat/api/public/user.rb +73 -0
- data/app/apis/wechat/api/public.rb +12 -0
- data/app/apis/wechat/api/work/agent.rb +26 -0
- data/app/apis/wechat/api/work/menu.rb +47 -0
- data/app/apis/wechat/api/work/user.rb +116 -0
- data/app/apis/wechat/api/work.rb +14 -0
- data/app/apis/wechat/api.rb +7 -0
- data/app/apis/wechat/app_not_found.rb +3 -0
- data/app/apis/wechat/cipher.rb +82 -0
- data/app/apis/wechat/http_client.rb +80 -0
- data/app/apis/wechat/invalid_credential_error.rb +3 -0
- data/app/apis/wechat/message/base.rb +17 -0
- data/app/apis/wechat/message/mass/public.rb +40 -0
- data/app/apis/wechat/message/mass/work.rb +84 -0
- data/app/apis/wechat/message/mass.rb +22 -0
- data/app/apis/wechat/message.rb +7 -0
- data/app/apis/wechat/response_error.rb +10 -0
- data/app/apis/wechat/signature.rb +32 -0
- data/app/apis/wechat/wechat_error.rb +3 -0
- data/app/controllers/wechat/admin/accounts_controller.rb +25 -0
- data/app/controllers/wechat/admin/apps_controller.rb +66 -0
- data/app/controllers/wechat/admin/base_controller.rb +7 -1
- data/app/controllers/wechat/admin/extractors_controller.rb +49 -0
- data/app/controllers/wechat/admin/menus_controller.rb +69 -0
- data/app/controllers/wechat/admin/news_reply_items_controller.rb +16 -0
- data/app/controllers/wechat/admin/notices_controller.rb +40 -0
- data/app/controllers/wechat/admin/registers_controller.rb +82 -0
- data/app/controllers/wechat/admin/replies_controller.rb +55 -0
- data/app/controllers/wechat/admin/requests_controller.rb +23 -0
- data/app/controllers/wechat/admin/responses_controller.rb +66 -0
- data/app/controllers/wechat/admin/tags_controller.rb +43 -0
- data/app/controllers/wechat/admin/templates_controller.rb +48 -0
- data/app/controllers/wechat/admin/wechat_users_controller.rb +31 -0
- data/app/controllers/wechat/apps_controller.rb +62 -0
- data/app/controllers/wechat/base_controller.rb +5 -0
- data/app/controllers/wechat/controller/application.rb +78 -0
- data/app/controllers/wechat/my/base_controller.rb +4 -0
- data/app/controllers/wechat/my/medias_controller.rb +56 -0
- data/app/controllers/wechat/my/registers_controller.rb +74 -0
- data/app/controllers/wechat/my/subscribes_controller.rb +18 -0
- data/app/controllers/wechat/my/users_controller.rb +18 -0
- data/app/controllers/wechat/my/wechat_users_controller.rb +37 -0
- data/app/controllers/wechat/panel/agencies_controller.rb +26 -0
- data/app/controllers/wechat/panel/apps_controller.rb +50 -0
- data/app/controllers/wechat/panel/base_controller.rb +3 -2
- data/app/controllers/wechat/panel/menus_controller.rb +60 -0
- data/app/controllers/wechat/panel/platforms_controller.rb +38 -0
- data/app/controllers/wechat/panel/template_configs_controller.rb +39 -0
- data/app/controllers/wechat/platforms_controller.rb +60 -0
- data/app/controllers/wechat/program_users_controller.rb +86 -0
- data/app/controllers/wechat/share/apps_controller.rb +21 -0
- data/app/controllers/wechat/share/base_controller.rb +10 -0
- data/app/controllers/wechat/share/menus_controller.rb +93 -0
- data/app/controllers/wechat/share/scenes_controller.rb +62 -0
- data/app/controllers/wechat/share/wechat_users_controller.rb +57 -0
- data/app/controllers/wechat/wechat_controller.rb +39 -0
- data/app/controllers/wechat/wechats_controller.rb +41 -19
- data/app/jobs/wechat/agency_job.rb +9 -0
- data/app/jobs/wechat/annunciate_job.rb +10 -0
- data/app/jobs/wechat/file_reply_upload_job.rb +10 -0
- data/app/jobs/wechat/media_job.rb +10 -0
- data/app/jobs/wechat/notice_send_job.rb +10 -0
- data/app/jobs/wechat/qrcode_job.rb +10 -0
- data/app/jobs/wechat/tag_job.rb +10 -0
- data/app/jobs/wechat/user_info_job.rb +11 -0
- data/app/jobs/wechat/user_job.rb +11 -0
- data/app/jobs/wechat/user_tag_job.rb +11 -0
- data/app/jobs/wechat/user_tag_remove_job.rb +11 -0
- data/app/mailboxes/application_mailbox.rb +3 -0
- data/app/mailboxes/wechat_mailbox.rb +17 -0
- data/app/models/app/wechat/mobile_app.rb +5 -0
- data/app/models/app/wechat/program_app.rb +5 -0
- data/app/models/app/wechat/public_app.rb +5 -0
- data/app/models/app/wechat/read_app.rb +5 -0
- data/app/models/app/wechat/work_app.rb +5 -0
- data/app/models/menu/wechat/click_menu.rb +5 -0
- data/app/models/menu/wechat/mini_program_menu.rb +5 -0
- data/app/models/menu/wechat/parent_menu.rb +5 -0
- data/app/models/menu/wechat/scan_push_menu.rb +5 -0
- data/app/models/menu/wechat/scan_wait_menu.rb +5 -0
- data/app/models/menu/wechat/view_menu.rb +5 -0
- data/app/models/notice/wechat/program_notice.rb +5 -0
- data/app/models/notice/wechat/public_notice.rb +5 -0
- data/app/models/oauth_user/wechat/program_user.rb +5 -0
- data/app/models/oauth_user/wechat/wechat_user.rb +5 -0
- data/app/models/reply/wechat/image_reply.rb +5 -0
- data/app/models/reply/wechat/music_reply.rb +5 -0
- data/app/models/reply/wechat/news_reply.rb +5 -0
- data/app/models/reply/wechat/success_reply.rb +5 -0
- data/app/models/reply/wechat/text_reply.rb +5 -0
- data/app/models/reply/wechat/video_reply.rb +5 -0
- data/app/models/reply/wechat/voice_reply.rb +5 -0
- data/app/models/request/wechat/click_request.rb +5 -0
- data/app/models/request/wechat/image_request.rb +5 -0
- data/app/models/request/wechat/link_request.rb +5 -0
- data/app/models/request/wechat/location_request.rb +5 -0
- data/app/models/request/wechat/scan_request.rb +5 -0
- data/app/models/request/wechat/short_video_request.rb +4 -0
- data/app/models/request/wechat/subscribe_request.rb +5 -0
- data/app/models/request/wechat/text_request.rb +5 -0
- data/app/models/request/wechat/unsubscribe_request.rb +5 -0
- data/app/models/request/wechat/video_request.rb +5 -0
- data/app/models/request/wechat/view_request.rb +5 -0
- data/app/models/request/wechat/voice_request.rb +5 -0
- data/app/models/service/wechat/image_service.rb +5 -0
- data/app/models/service/wechat/mpnews_service.rb +5 -0
- data/app/models/service/wechat/msgmenu_service.rb +5 -0
- data/app/models/service/wechat/news_service.rb +5 -0
- data/app/models/service/wechat/text_service.rb +5 -0
- data/app/models/service/wechat/video_service.rb +5 -0
- data/app/models/service/wechat/voice_service.rb +5 -0
- data/app/models/template_config/wechat/template_program.rb +5 -0
- data/app/models/template_config/wechat/template_public.rb +5 -0
- data/app/models/wechat/agency.rb +6 -0
- data/app/models/wechat/app.rb +6 -0
- data/app/models/wechat/application_record.rb +5 -0
- data/app/models/wechat/auth.rb +5 -0
- data/app/models/wechat/ext/effective.rb +10 -0
- data/app/models/wechat/ext/organ.rb +14 -0
- data/app/models/wechat/ext/subscribed.rb +14 -0
- data/app/models/wechat/ext/user.rb +21 -0
- data/app/models/wechat/ext/user_tag.rb +38 -0
- data/app/models/wechat/extraction.rb +5 -0
- data/app/models/wechat/extractor.rb +5 -0
- data/app/models/wechat/hook.rb +5 -0
- data/app/models/wechat/media.rb +5 -0
- data/app/models/wechat/menu.rb +5 -0
- data/app/models/wechat/model/account.rb +23 -0
- data/app/models/wechat/model/agency.rb +70 -0
- data/app/models/wechat/model/annunciate.rb +32 -0
- data/app/models/wechat/model/app/mobile_app.rb +11 -0
- data/app/models/wechat/model/app/program_app.rb +18 -0
- data/app/models/wechat/model/app/public_app.rb +46 -0
- data/app/models/wechat/model/app/read_app.rb +24 -0
- data/app/models/wechat/model/app/work_app.rb +33 -0
- data/app/models/wechat/model/app.rb +198 -0
- data/app/models/wechat/model/app_sync.rb +35 -0
- data/app/models/wechat/model/auth.rb +35 -0
- data/app/models/wechat/model/extraction.rb +21 -0
- data/app/models/wechat/model/extractor.rb +77 -0
- data/app/models/wechat/model/hook.rb +13 -0
- data/app/models/wechat/model/media.rb +33 -0
- data/app/models/wechat/model/menu/click_menu.rb +18 -0
- data/app/models/wechat/model/menu/mini_program_menu.rb +20 -0
- data/app/models/wechat/model/menu/parent_menu.rb +17 -0
- data/app/models/wechat/model/menu/scan_push_menu.rb +18 -0
- data/app/models/wechat/model/menu/scan_wait_menu.rb +18 -0
- data/app/models/wechat/model/menu/view_menu.rb +37 -0
- data/app/models/wechat/model/menu.rb +28 -0
- data/app/models/wechat/model/news_reply_item.rb +29 -0
- data/app/models/wechat/model/notice/program_notice.rb +19 -0
- data/app/models/wechat/model/notice/public_notice.rb +25 -0
- data/app/models/wechat/model/notice.rb +56 -0
- data/app/models/wechat/model/oauth_user/program_user.rb +29 -0
- data/app/models/wechat/model/oauth_user/wechat_user.rb +109 -0
- data/app/models/wechat/model/platform.rb +87 -0
- data/app/models/wechat/model/post.rb +34 -0
- data/app/models/wechat/model/receive.rb +120 -0
- data/app/models/wechat/model/register.rb +137 -0
- data/app/models/wechat/model/reply/image_reply.rb +41 -0
- data/app/models/wechat/model/reply/music_reply.rb +20 -0
- data/app/models/wechat/model/reply/news_reply.rb +24 -0
- data/app/models/wechat/model/reply/success_reply.rb +9 -0
- data/app/models/wechat/model/reply/text_reply.rb +14 -0
- data/app/models/wechat/model/reply/video_reply.rb +20 -0
- data/app/models/wechat/model/reply/voice_reply.rb +16 -0
- data/app/models/wechat/model/reply.rb +39 -0
- data/app/models/wechat/model/request/click_request.rb +25 -0
- data/app/models/wechat/model/request/image_request.rb +9 -0
- data/app/models/wechat/model/request/link_request.rb +9 -0
- data/app/models/wechat/model/request/location_request.rb +9 -0
- data/app/models/wechat/model/request/scan_request.rb +17 -0
- data/app/models/wechat/model/request/subscribe_request.rb +10 -0
- data/app/models/wechat/model/request/text_request.rb +20 -0
- data/app/models/wechat/model/request/unsubscribe_request.rb +4 -0
- data/app/models/wechat/model/request/video_request.rb +9 -0
- data/app/models/wechat/model/request/view_request.rb +4 -0
- data/app/models/wechat/model/request/voice_request.rb +9 -0
- data/app/models/wechat/model/request.rb +168 -0
- data/app/models/wechat/model/response.rb +41 -0
- data/app/models/wechat/model/scene.rb +101 -0
- data/app/models/wechat/model/scene_menu.rb +12 -0
- data/app/models/wechat/model/service/image_service.rb +18 -0
- data/app/models/wechat/model/service/mpnews_service.rb +10 -0
- data/app/models/wechat/model/service/msgmenu_service.rb +10 -0
- data/app/models/wechat/model/service/news_service.rb +10 -0
- data/app/models/wechat/model/service/text_service.rb +18 -0
- data/app/models/wechat/model/service/video_service.rb +10 -0
- data/app/models/wechat/model/service/voice_service.rb +10 -0
- data/app/models/wechat/model/service.rb +42 -0
- data/app/models/wechat/model/subscribe.rb +20 -0
- data/app/models/wechat/model/tag.rb +56 -0
- data/app/models/wechat/model/template.rb +82 -0
- data/app/models/wechat/model/template_config/template_program.rb +31 -0
- data/app/models/wechat/model/template_config/template_public.rb +37 -0
- data/app/models/wechat/model/template_config.rb +44 -0
- data/app/models/wechat/model/template_key_word.rb +20 -0
- data/app/models/wechat/model/ticket.rb +28 -0
- data/app/models/wechat/model/user_tag.rb +42 -0
- data/app/models/wechat/model/user_tagged.rb +22 -0
- data/app/models/wechat/model/wechat_message_tag.rb +11 -0
- data/app/models/wechat/news_reply_item.rb +5 -0
- data/app/models/wechat/notice.rb +5 -0
- data/app/models/wechat/platform.rb +5 -0
- data/app/models/wechat/receive.rb +5 -0
- data/app/models/wechat/reply.rb +5 -0
- data/app/models/wechat/request.rb +5 -0
- data/app/models/wechat/response.rb +5 -0
- data/app/models/wechat/scene.rb +5 -0
- data/app/models/wechat/scene_menu.rb +5 -0
- data/app/models/wechat/service.rb +5 -0
- data/app/models/wechat/subscribe.rb +5 -0
- data/app/models/wechat/tag.rb +5 -0
- data/app/models/wechat/template.rb +5 -0
- data/app/models/wechat/template_config.rb +5 -0
- data/app/models/wechat/template_key_word.rb +5 -0
- data/app/models/wechat/ticket.rb +5 -0
- data/app/models/wechat/user_tag.rb +5 -0
- data/app/models/wechat.rb +11 -0
- data/app/views/admin/_wechat_nav.html.erb +11 -0
- data/app/views/application/wechat_require_login.json.jbuilder +2 -0
- data/app/views/my/_wechat_nav.html+phone.erb +10 -0
- data/app/views/my/_wechat_nav.html.erb +4 -0
- data/app/views/panel/_wechat_nav.html.erb +13 -0
- data/app/{assets/config/rails_wechat_manifest.js → views/wechat/admin/accounts/qrcode.json.jbuilder} +0 -0
- data/app/views/wechat/admin/accounts/qrcode.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/apps/_cert_form.html.erb +4 -0
- data/app/views/wechat/admin/apps/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/apps/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/apps/_form.html.erb +6 -0
- data/app/views/wechat/admin/apps/_index_tbody.html.erb +61 -0
- data/app/views/wechat/admin/apps/_index_thead.html.erb +7 -0
- data/app/views/wechat/admin/apps/_index_tr.html.erb +22 -0
- data/app/views/wechat/admin/apps/_info.html.erb +20 -0
- data/app/views/wechat/admin/apps/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/apps/_pay_form.html.erb +7 -0
- data/app/views/wechat/admin/apps/_qy_form.html.erb +4 -0
- data/app/views/wechat/admin/apps/_show.json.jbuilder +1 -0
- data/app/views/wechat/admin/apps/_show_table.html.erb +36 -0
- data/app/views/wechat/admin/apps/_wechat_app.json.jbuilder +18 -0
- data/app/views/wechat/admin/apps/edit_cert.html.erb +3 -0
- data/app/views/wechat/admin/apps/index.html.erb +5 -0
- data/app/views/wechat/admin/apps/index.json.jbuilder +1 -0
- data/app/views/wechat/admin/apps/info.html.erb +3 -0
- data/app/views/wechat/admin/base/_nav.html.erb +3 -0
- data/app/views/wechat/admin/base/_wechat_nav_user.html.erb +18 -0
- data/app/views/wechat/admin/extractors/_breadcrumb.html.erb +8 -0
- data/app/views/wechat/admin/extractors/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/extractors/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/extractors/_form.html.erb +21 -0
- data/app/views/wechat/admin/extractors/_index_tbody.html.erb +24 -0
- data/app/views/wechat/admin/extractors/_index_thead.html.erb +17 -0
- data/app/views/wechat/admin/extractors/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/extractors/_show_table.html.erb +32 -0
- data/app/views/wechat/admin/extractors/index.html.erb +5 -0
- data/app/views/wechat/admin/menus/_breadcrumb.html.erb +9 -0
- data/app/views/wechat/admin/menus/_button.html.erb +9 -0
- data/app/views/wechat/admin/menus/_edit_form.html.erb +6 -0
- data/app/views/wechat/admin/menus/_edit_parent_form.html.erb +5 -0
- data/app/views/wechat/admin/menus/_filter_form.html.erb +8 -0
- data/app/views/wechat/admin/menus/_form.html.erb +7 -0
- data/app/views/wechat/admin/menus/_index_tbody.html.erb +16 -0
- data/app/views/wechat/admin/menus/_index_thead.html.erb +9 -0
- data/app/views/wechat/admin/menus/_index_tr.html.erb +24 -0
- data/app/views/wechat/admin/menus/_new_form.html.erb +6 -0
- data/app/views/wechat/admin/menus/_new_parent_form.html.erb +7 -0
- data/app/views/wechat/admin/menus/_show_table.html.erb +20 -0
- data/app/views/wechat/admin/menus/edit_parent.html.erb +3 -0
- data/app/views/wechat/admin/menus/index.html.erb +4 -0
- data/app/views/wechat/admin/menus/new_parent.html.erb +3 -0
- data/app/views/wechat/admin/menus/sync.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/notices/_edit_form.html.erb +7 -0
- data/app/views/wechat/admin/notices/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/notices/_form.html.erb +3 -0
- data/app/views/wechat/admin/notices/_index_tbody.erb +3 -0
- data/app/views/wechat/admin/notices/_index_thead.html.erb +3 -0
- data/app/views/wechat/admin/notices/_new_form.html.erb +5 -0
- data/app/views/wechat/admin/notices/_show_table.html.erb +8 -0
- data/app/views/wechat/admin/notices/index.html.erb +5 -0
- data/app/views/wechat/admin/registers/_app_form.html.erb +5 -0
- data/app/views/wechat/admin/registers/_assign_form.html.erb +6 -0
- data/app/views/wechat/admin/registers/_bind_form.html.erb +5 -0
- data/app/views/wechat/admin/registers/_button.html.erb +3 -0
- data/app/views/wechat/admin/registers/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/registers/_filter_form.html.erb +10 -0
- data/app/views/wechat/admin/registers/_form.html.erb +5 -0
- data/app/views/wechat/admin/registers/_index_tbody.html.erb +37 -0
- data/app/views/wechat/admin/registers/_index_thead.html.erb +23 -0
- data/app/views/wechat/admin/registers/_index_tr.html.erb +25 -0
- data/app/views/wechat/admin/registers/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/registers/_qrcode_form.html.erb +5 -0
- data/app/views/wechat/admin/registers/_show_table.html.erb +32 -0
- data/app/views/wechat/admin/registers/edit_app.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/registers/edit_assign.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/registers/edit_bind.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/registers/edit_qrcode.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/registers/index.html.erb +5 -0
- data/app/views/wechat/admin/replies/_breadcrumb.html.erb +7 -0
- data/app/views/wechat/admin/replies/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/replies/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/replies/_filter_table.html.erb +11 -0
- data/app/views/wechat/admin/replies/_form.html.erb +3 -0
- data/app/views/wechat/admin/replies/_image_form.html.erb +1 -0
- data/app/views/wechat/admin/replies/_index_tbody.html.erb +29 -0
- data/app/views/wechat/admin/replies/_index_thead.html.erb +3 -0
- data/app/views/wechat/admin/replies/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/replies/_news_form.html.erb +6 -0
- data/app/views/wechat/admin/replies/_show_table.html.erb +12 -0
- data/app/views/wechat/admin/replies/_text_form.html.erb +1 -0
- data/app/views/wechat/admin/replies/add.html.erb +11 -0
- data/app/views/wechat/admin/replies/build.turbo_stream.erb +7 -0
- data/app/views/wechat/admin/replies/index.html.erb +5 -0
- data/app/views/wechat/admin/replies/index.js +12 -0
- data/app/views/wechat/admin/requests/_breadcrumb.html.erb +7 -0
- data/app/views/wechat/admin/requests/_button.html.erb +3 -0
- data/app/views/wechat/admin/requests/_filter_form.html.erb +10 -0
- data/app/views/wechat/admin/requests/_filter_table.html.erb +11 -0
- data/app/views/wechat/admin/requests/_index_tbody.html.erb +21 -0
- data/app/views/wechat/admin/requests/_index_thead.html.erb +6 -0
- data/app/views/wechat/admin/requests/_index_tr.html.erb +13 -0
- data/app/views/wechat/admin/requests/_show_table.html.erb +18 -0
- data/app/views/wechat/admin/requests/index.html.erb +5 -0
- data/app/views/wechat/admin/responses/_breadcrumb.html.erb +7 -0
- data/app/views/wechat/admin/responses/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/responses/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/responses/_filter_table.html.erb +11 -0
- data/app/views/wechat/admin/responses/_form.html.erb +4 -0
- data/app/views/wechat/admin/responses/_index_tbody.html.erb +27 -0
- data/app/views/wechat/admin/responses/_index_thead.html.erb +14 -0
- data/app/views/wechat/admin/responses/_index_tr.html.erb +19 -0
- data/app/views/wechat/admin/responses/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/responses/_reply_body.html.erb +4 -0
- data/app/views/wechat/admin/responses/_reply_form.html.erb +5 -0
- data/app/views/wechat/admin/responses/_show/_breadcrumb.html.erb +8 -0
- data/app/views/wechat/admin/responses/_show_table.html.erb +35 -0
- data/app/views/wechat/admin/responses/edit_reply.html.erb +3 -0
- data/app/views/wechat/admin/responses/filter_reply.turbo_stream.erb +1 -0
- data/app/views/wechat/admin/responses/index.html.erb +5 -0
- data/app/views/wechat/admin/responses/show.html.erb +4 -0
- data/app/views/wechat/admin/tags/_button.html.erb +6 -0
- data/app/views/wechat/admin/tags/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/tags/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/tags/_form.html.erb +2 -0
- data/app/views/wechat/admin/tags/_index_tbody.html.erb +4 -0
- data/app/views/wechat/admin/tags/_index_thead.html.erb +5 -0
- data/app/views/wechat/admin/tags/_index_tr.html.erb +16 -0
- data/app/views/wechat/admin/tags/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/tags/_show_table.html.erb +12 -0
- data/app/views/wechat/admin/tags/index.html.erb +6 -0
- data/app/views/wechat/admin/tags/sync.turbo_stream.erb +3 -0
- data/app/views/wechat/admin/templates/_breadcrumb.html.erb +7 -0
- data/app/views/wechat/admin/templates/_button.html.erb +5 -0
- data/app/views/wechat/admin/templates/_edit_form.html.erb +4 -0
- data/app/views/wechat/admin/templates/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/templates/_form.html.erb +6 -0
- data/app/views/wechat/admin/templates/_index_tbody.html.erb +13 -0
- data/app/views/wechat/admin/templates/_index_template_config.html.erb +16 -0
- data/app/views/wechat/admin/templates/_index_thead.html.erb +9 -0
- data/app/views/wechat/admin/templates/_new_form.html.erb +4 -0
- data/app/views/wechat/admin/templates/_show_table.html.erb +20 -0
- data/app/views/wechat/admin/templates/index.html.erb +5 -0
- data/app/views/wechat/admin/wechat_users/_edit_form.html.erb +5 -0
- data/app/views/wechat/admin/wechat_users/_filter_form.html.erb +9 -0
- data/app/views/wechat/admin/wechat_users/_index_tbody.html.erb +16 -0
- data/app/views/wechat/admin/wechat_users/_index_thead.html.erb +13 -0
- data/app/views/wechat/admin/wechat_users/_show_table.html.erb +20 -0
- data/app/views/wechat/admin/wechat_users/index.html.erb +7 -0
- data/app/views/wechat/apps/login.html.erb +1 -0
- data/app/views/wechat/my/medias/_edit_form.html.erb +4 -0
- data/app/views/wechat/my/medias/_filter_form.html.erb +9 -0
- data/app/views/wechat/my/medias/_form.html.erb +6 -0
- data/app/views/wechat/my/medias/_index_tbody.html.erb +5 -0
- data/app/views/wechat/my/medias/_index_thead.html.erb +6 -0
- data/app/views/wechat/my/medias/_new_form.html.erb +4 -0
- data/app/views/wechat/my/medias/_show_table.html.erb +20 -0
- data/app/views/wechat/my/medias/create.turbo_stream.erb +0 -0
- data/app/views/wechat/my/medias/index.html.erb +5 -0
- data/app/views/wechat/my/registers/_edit_form.html.erb +4 -0
- data/app/views/wechat/my/registers/_filter_form.html.erb +9 -0
- data/app/views/wechat/my/registers/_form.html+phone.erb +11 -0
- data/app/views/wechat/my/registers/_form.html.erb +4 -0
- data/app/views/wechat/my/registers/_new_form.html+phone.erb +4 -0
- data/app/views/wechat/my/registers/_new_form.html.erb +4 -0
- data/app/views/wechat/my/registers/_show_table.html.erb +8 -0
- data/app/views/wechat/my/registers/_wechat_register.html.erb +32 -0
- data/app/views/wechat/my/registers/_wechat_register_done.html.erb +29 -0
- data/app/views/wechat/my/registers/edit_code.html.erb +12 -0
- data/app/views/wechat/my/registers/index.html+phone.erb +16 -0
- data/app/views/wechat/my/registers/index.html.erb +36 -0
- data/app/views/wechat/my/registers/new.html.erb +1 -0
- data/app/views/wechat/my/subscribes/_filter_form.html.erb +7 -0
- data/app/views/wechat/my/subscribes/_form.html.erb +7 -0
- data/app/views/wechat/my/subscribes/_show_table.html.erb +12 -0
- data/app/views/wechat/my/subscribes/index.html.erb +40 -0
- data/app/views/wechat/my/users/invite_qrcode.html+phone.erb +35 -0
- data/app/views/wechat/my/users/invite_qrcode.html.erb +6 -0
- data/app/views/wechat/my/users/requests.html+phone.erb +53 -0
- data/app/views/wechat/panel/agencies/_breadcrumb.html.erb +6 -0
- data/app/views/wechat/panel/agencies/_button.html.erb +0 -0
- data/app/views/wechat/panel/agencies/_edit_form.html.erb +4 -0
- data/app/views/wechat/panel/agencies/_filter_form.html.erb +9 -0
- data/app/views/wechat/panel/agencies/_form.html.erb +6 -0
- data/app/views/wechat/panel/agencies/_index_tbody.html.erb +17 -0
- data/app/views/wechat/panel/agencies/_index_thead.html.erb +15 -0
- data/app/views/wechat/panel/agencies/_show_table.html.erb +20 -0
- data/app/views/wechat/panel/agencies/index.html.erb +5 -0
- data/app/views/wechat/panel/apps/_edit_form.html.erb +4 -0
- data/app/views/wechat/panel/apps/_filter_form.html.erb +9 -0
- data/app/views/wechat/panel/apps/_form.html.erb +17 -0
- data/app/views/wechat/panel/apps/_index_tbody.html.erb +52 -0
- data/app/views/wechat/panel/apps/_index_thead.html.erb +6 -0
- data/app/views/wechat/panel/apps/_index_tr.html.erb +16 -0
- data/app/views/wechat/panel/apps/_new_form.html.erb +4 -0
- data/app/views/wechat/panel/apps/_show.json.jbuilder +1 -0
- data/app/views/wechat/panel/apps/_show_table.html.erb +36 -0
- data/app/views/wechat/panel/apps/_wechat_app.json.jbuilder +18 -0
- data/app/views/wechat/panel/apps/edit_cert.html.erb +3 -0
- data/app/views/wechat/panel/apps/index.html.erb +5 -0
- data/app/views/wechat/panel/apps/index.json.jbuilder +1 -0
- data/app/views/wechat/panel/base/_nav.html.erb +3 -0
- data/app/views/wechat/panel/menus/_breadcrumb.html.erb +5 -0
- data/app/views/wechat/panel/menus/_button.html.erb +6 -0
- data/app/views/wechat/panel/menus/_edit_form.html.erb +6 -0
- data/app/views/wechat/panel/menus/_edit_parent_form.html.erb +5 -0
- data/app/views/wechat/panel/menus/_filter_form.html.erb +8 -0
- data/app/views/wechat/panel/menus/_form.html.erb +7 -0
- data/app/views/wechat/panel/menus/_index_tbody.html.erb +15 -0
- data/app/views/wechat/panel/menus/_index_thead.html.erb +8 -0
- data/app/views/wechat/panel/menus/_index_tr.html.erb +22 -0
- data/app/views/wechat/panel/menus/_new_form.html.erb +5 -0
- data/app/views/wechat/panel/menus/_new_parent_form.html.erb +7 -0
- data/app/views/wechat/panel/menus/_show_table.html.erb +20 -0
- data/app/views/wechat/panel/menus/edit_parent.turbo_stream.erb +1 -0
- data/app/views/wechat/panel/menus/index.html.erb +5 -0
- data/app/views/wechat/panel/menus/new_parent.html.erb +3 -0
- data/app/views/wechat/panel/platforms/_edit_form.html.erb +4 -0
- data/app/views/wechat/panel/platforms/_filter_form.html.erb +9 -0
- data/app/views/wechat/panel/platforms/_form.html.erb +7 -0
- data/app/views/wechat/panel/platforms/_index_tbody.html.erb +12 -0
- data/app/views/wechat/panel/platforms/_index_thead.html.erb +13 -0
- data/app/views/wechat/panel/platforms/_index_tr.html.erb +22 -0
- data/app/views/wechat/panel/platforms/_new_form.html.erb +4 -0
- data/app/views/wechat/panel/platforms/_show_table.html.erb +32 -0
- data/app/views/wechat/panel/platforms/index.html.erb +5 -0
- data/app/views/wechat/panel/template_configs/_edit_form.html.erb +10 -0
- data/app/views/wechat/panel/template_configs/_filter.html.erb +9 -0
- data/app/views/wechat/panel/template_configs/_index_tbody.html.erb +10 -0
- data/app/views/wechat/panel/template_configs/_index_thead.html.erb +11 -0
- data/app/views/wechat/panel/template_configs/_item_form.html.erb +6 -0
- data/app/views/wechat/panel/template_configs/_new_form.html.erb +7 -0
- data/app/views/wechat/panel/template_configs/_show_table.html.erb +28 -0
- data/app/views/wechat/panel/template_configs/index.html.erb +5 -0
- data/app/views/wechat/platforms/callback.html.erb +0 -0
- data/app/views/wechat/program_users/mobile_err.json.jbuilder +2 -0
- data/app/views/wechat/share/apps/_button.html.erb +0 -0
- data/app/views/wechat/share/apps/_filter_form.html.erb +9 -0
- data/app/views/wechat/share/apps/_form.html.erb +17 -0
- data/app/views/wechat/share/apps/_index_tbody.html.erb +27 -0
- data/app/views/wechat/share/apps/_index_thead.html.erb +5 -0
- data/app/views/wechat/share/apps/_index_tr.html.erb +10 -0
- data/app/views/wechat/share/apps/_show.json.jbuilder +1 -0
- data/app/views/wechat/share/apps/_show_table.html.erb +36 -0
- data/app/views/wechat/share/apps/_wechat_app.json.jbuilder +18 -0
- data/app/views/wechat/share/apps/index.html.erb +5 -0
- data/app/views/wechat/share/apps/index.json.jbuilder +1 -0
- data/app/views/wechat/share/base/_nav.html.erb +3 -0
- data/app/views/wechat/share/menus/_breadcrumb.html.erb +9 -0
- data/app/views/wechat/share/menus/_button.html.erb +9 -0
- data/app/views/wechat/share/menus/_edit_form.html.erb +6 -0
- data/app/views/wechat/share/menus/_edit_parent_form.html.erb +5 -0
- data/app/views/wechat/share/menus/_filter_form.html.erb +8 -0
- data/app/views/wechat/share/menus/_form.html.erb +10 -0
- data/app/views/wechat/share/menus/_index_tbody.html.erb +20 -0
- data/app/views/wechat/share/menus/_index_thead.html.erb +9 -0
- data/app/views/wechat/share/menus/_index_tr.html.erb +25 -0
- data/app/views/wechat/share/menus/_new_form.html.erb +5 -0
- data/app/views/wechat/share/menus/_new_parent_form.html.erb +7 -0
- data/app/views/wechat/share/menus/_show_table.html.erb +20 -0
- data/app/views/wechat/share/menus/edit_parent.turbo_stream.erb +1 -0
- data/app/views/wechat/share/menus/index.html.erb +4 -0
- data/app/views/wechat/share/menus/new_parent.html.erb +3 -0
- data/app/views/wechat/share/menus/sync.turbo_stream.erb +3 -0
- data/app/views/wechat/share/scenes/_breadcrumb.html.erb +7 -0
- data/app/views/wechat/share/scenes/_edit_form.html.erb +4 -0
- data/app/views/wechat/share/scenes/_filter_form.html.erb +9 -0
- data/app/views/wechat/share/scenes/_form.html.erb +3 -0
- data/app/views/wechat/share/scenes/_index_tbody.html.erb +9 -0
- data/app/views/wechat/share/scenes/_index_thead.html.erb +7 -0
- data/app/views/wechat/share/scenes/_index_tr.html.erb +25 -0
- data/app/views/wechat/share/scenes/_new_form.html.erb +4 -0
- data/app/views/wechat/share/scenes/_show_table.html.erb +10 -0
- data/app/views/wechat/share/scenes/index.html.erb +5 -0
- data/app/views/wechat/share/scenes/sync.turbo_stream.erb +3 -0
- data/app/views/wechat/share/wechat_users/_breadcrumb.html.erb +9 -0
- data/app/views/wechat/share/wechat_users/_button.html.erb +0 -0
- data/app/views/wechat/share/wechat_users/_edit_form.html.erb +4 -0
- data/app/views/wechat/share/wechat_users/_filter_form.html.erb +9 -0
- data/app/views/wechat/share/wechat_users/_index_tbody.html.erb +11 -0
- data/app/views/wechat/share/wechat_users/_index_thead.html.erb +12 -0
- data/app/views/wechat/share/wechat_users/_index_tr.html.erb +13 -0
- data/app/views/wechat/share/wechat_users/_show_table.html.erb +20 -0
- data/app/views/wechat/share/wechat_users/index.html.erb +5 -0
- data/app/views/wechat/share/wechat_users/try_match.turbo_stream.erb +3 -0
- data/app/views/wechat/wechat/login.html.erb +9 -0
- data/config/locales/en.controller.yml +28 -0
- data/config/locales/en.enum.yml +30 -0
- data/config/locales/zh.attributes.yml +66 -0
- data/config/locales/zh.controller.yml +79 -0
- data/config/locales/zh.enum.yml +65 -0
- data/config/routes.rb +142 -11
- data/lib/omniauth/strategies/wechat.rb +74 -0
- data/lib/omniauth/strategies/wechat_qiye.rb +82 -0
- data/lib/omniauth/strategies/wechat_qr.rb +21 -0
- data/lib/rails_wechat/config.rb +88 -0
- data/lib/rails_wechat/engine.rb +38 -0
- data/lib/rails_wechat/helpers.rb +32 -0
- data/lib/rails_wechat.rb +14 -3
- metadata +549 -44
- data/app/controllers/wechat/admin/wechat_configs_controller.rb +0 -86
- data/app/controllers/wechat/panel/wechat_configs_controller.rb +0 -62
- data/app/models/rails_wechat/organ.rb +0 -11
- data/app/models/wechat_config.rb +0 -44
- data/app/models/wechat_session.rb +0 -16
- data/app/views/wechat/admin/wechat_configs/_filter.html.erb +0 -8
- data/app/views/wechat/admin/wechat_configs/_form.html.erb +0 -21
- data/app/views/wechat/admin/wechat_configs/_show_table.html.erb +0 -80
- data/app/views/wechat/admin/wechat_configs/_wechat_config.json.jbuilder +0 -21
- data/app/views/wechat/admin/wechat_configs/edit.html.erb +0 -9
- data/app/views/wechat/admin/wechat_configs/edit.js.erb +0 -3
- data/app/views/wechat/admin/wechat_configs/index.html.erb +0 -84
- data/app/views/wechat/admin/wechat_configs/index.json.jbuilder +0 -1
- data/app/views/wechat/admin/wechat_configs/new.html.erb +0 -9
- data/app/views/wechat/admin/wechat_configs/new.js.erb +0 -3
- data/app/views/wechat/admin/wechat_configs/show.html.erb +0 -7
- data/app/views/wechat/admin/wechat_configs/show.js.erb +0 -3
- data/app/views/wechat/admin/wechat_configs/show.json.jbuilder +0 -1
- data/app/views/wechat/panel/wechat_configs/_filter.html.erb +0 -8
- data/app/views/wechat/panel/wechat_configs/_form.html.erb +0 -21
- data/app/views/wechat/panel/wechat_configs/_show_table.html.erb +0 -80
- data/app/views/wechat/panel/wechat_configs/_wechat_config.json.jbuilder +0 -21
- data/app/views/wechat/panel/wechat_configs/edit.html.erb +0 -9
- data/app/views/wechat/panel/wechat_configs/edit.js.erb +0 -3
- data/app/views/wechat/panel/wechat_configs/index.html.erb +0 -84
- data/app/views/wechat/panel/wechat_configs/index.json.jbuilder +0 -1
- data/app/views/wechat/panel/wechat_configs/new.html.erb +0 -9
- data/app/views/wechat/panel/wechat_configs/new.js.erb +0 -3
- data/app/views/wechat/panel/wechat_configs/show.html.erb +0 -7
- data/app/views/wechat/panel/wechat_configs/show.js.erb +0 -3
- data/app/views/wechat/panel/wechat_configs/show.json.jbuilder +0 -1
- data/lib/tasks/rails_wechat_tasks.rake +0 -4
@@ -0,0 +1,31 @@
|
|
1
|
+
module Wechat::Api
|
2
|
+
module Program::Wxaapi
|
3
|
+
BASE = 'https://api.weixin.qq.com/wxaapi/'
|
4
|
+
|
5
|
+
# https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.getTemplateList.html
|
6
|
+
def templates
|
7
|
+
r = get 'newtmpl/gettemplate', base: BASE
|
8
|
+
if r['errcode'] === 0
|
9
|
+
r['data']
|
10
|
+
else
|
11
|
+
Rails.logger.info r
|
12
|
+
[]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.getPubTemplateKeyWordsById.html
|
17
|
+
def template_key_words(tid)
|
18
|
+
r = get 'newtmpl/getpubtemplatekeywords', params: { tid: tid }, base: BASE
|
19
|
+
r['data']
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_template(tid, kid_list, description: 'tst')
|
23
|
+
post 'newtmpl/addtemplate', tid: tid, kidList: kid_list, sceneDesc: description, base: BASE
|
24
|
+
end
|
25
|
+
|
26
|
+
def del_template(template_id)
|
27
|
+
post 'newtmpl/deltemplate', params: { priTmplId: template_id }, base: BASE
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Wechat::Api
|
4
|
+
module Public::Base
|
5
|
+
BASE = 'https://api.weixin.qq.com/cgi-bin/'
|
6
|
+
|
7
|
+
def callbackip
|
8
|
+
get 'getcallbackip', base: BASE
|
9
|
+
end
|
10
|
+
|
11
|
+
def token
|
12
|
+
client.get 'token', params: { grant_type: 'client_credential', appid: app.appid, secret: app.secret }, base: BASE
|
13
|
+
end
|
14
|
+
|
15
|
+
def jsapi_ticket
|
16
|
+
get 'ticket/getticket', params: { type: 'jsapi' }, base: BASE
|
17
|
+
end
|
18
|
+
|
19
|
+
# see: https://developers.weixin.qq.com/doc/offiaccount/Message_Management/API_Call_Limits.html
|
20
|
+
def clear_quota
|
21
|
+
post 'clear_quota', appid: app.appid, base: BASE
|
22
|
+
end
|
23
|
+
|
24
|
+
def qrcode_create_scene(scene_id_or_str, expire_seconds = 2592000)
|
25
|
+
case scene_id_or_str
|
26
|
+
when 0.class
|
27
|
+
post 'qrcode/create', expire_seconds: expire_seconds, action_name: 'QR_SCENE', action_info: { scene: { scene_id: scene_id_or_str } }, base: BASE
|
28
|
+
else
|
29
|
+
post 'qrcode/create', expire_seconds: expire_seconds, action_name: 'QR_STR_SCENE', action_info: { scene: { scene_str: scene_id_or_str } }, base: BASE
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def qrcode_create_limit_scene(scene_id_or_str)
|
34
|
+
case scene_id_or_str
|
35
|
+
when 0.class
|
36
|
+
post 'qrcode/create', action_name: 'QR_LIMIT_SCENE', action_info: { scene: { scene_id: scene_id_or_str } }, base: BASE
|
37
|
+
else
|
38
|
+
post 'qrcode/create', action_name: 'QR_LIMIT_STR_SCENE', action_info: { scene: { scene_str: scene_id_or_str } }, base: BASE
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def shorturl(long_url)
|
43
|
+
post 'shorturl', action: 'long2short', long_url: long_url, base: BASE
|
44
|
+
end
|
45
|
+
|
46
|
+
# https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Batch_Sends_and_Originality_Checks.html
|
47
|
+
def media_uploadimg(file)
|
48
|
+
post_file 'media/uploadimg', file, base: BASE
|
49
|
+
end
|
50
|
+
|
51
|
+
# https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Batch_Sends_and_Originality_Checks.html
|
52
|
+
def media_uploadnews(mpnews_message)
|
53
|
+
post 'media/uploadnews', mpnews_message, base: BASE
|
54
|
+
end
|
55
|
+
|
56
|
+
def message_mass_delete(msg_id)
|
57
|
+
post 'message/mass/delete', msg_id: msg_id, base: BASE
|
58
|
+
end
|
59
|
+
|
60
|
+
def message_mass_preview(message)
|
61
|
+
post 'message/mass/preview', message, base: BASE
|
62
|
+
end
|
63
|
+
|
64
|
+
def message_mass_get(msg_id)
|
65
|
+
post 'message/mass/get', msg_id: msg_id, base: BASE
|
66
|
+
end
|
67
|
+
|
68
|
+
def wxa_create_qrcode(path, width = 430)
|
69
|
+
post 'wxaapp/createwxaqrcode', path: path, width: width, base: BASE
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Wechat::Api
|
2
|
+
module Public::Material
|
3
|
+
BASE = 'https://api.weixin.qq.com/cgi-bin/'
|
4
|
+
|
5
|
+
def media(media_id)
|
6
|
+
get 'media/get', params: { media_id: media_id }, as: :file, base: BASE
|
7
|
+
end
|
8
|
+
|
9
|
+
def media_hq(media_id)
|
10
|
+
get 'media/get/jssdk', params: { media_id: media_id }, as: :file, base: BASE
|
11
|
+
end
|
12
|
+
|
13
|
+
def media_create(type, file)
|
14
|
+
post_file 'media/upload', file, params: { type: type }, base: BASE
|
15
|
+
end
|
16
|
+
|
17
|
+
def material(media_id)
|
18
|
+
get 'material/get', params: { media_id: media_id }, as: :file, base: BASE
|
19
|
+
end
|
20
|
+
|
21
|
+
def material_count
|
22
|
+
get 'material/get_materialcount', base: BASE
|
23
|
+
end
|
24
|
+
|
25
|
+
def material_list(type = 'news', offset = 0, count = 20)
|
26
|
+
post 'material/batchget_material', type: type, offset: offset, count: count, base: BASE
|
27
|
+
end
|
28
|
+
|
29
|
+
def material_add(type, file)
|
30
|
+
post_file 'material/add_material', file, params: { type: type }, base: BASE
|
31
|
+
end
|
32
|
+
|
33
|
+
def material_add_news(*news)
|
34
|
+
post 'material/add_news', articles: news, base: BASE
|
35
|
+
end
|
36
|
+
|
37
|
+
def material_delete(media_id)
|
38
|
+
post 'material/del_material', media_id: media_id, base: BASE
|
39
|
+
end
|
40
|
+
|
41
|
+
def message_custom_send(message)
|
42
|
+
post 'message/custom/send', **message, base: BASE
|
43
|
+
end
|
44
|
+
|
45
|
+
def message_custom_typing(openid, command = 'Typing')
|
46
|
+
post 'message/custom/typing', touser: openid, command: command, base: BASE
|
47
|
+
end
|
48
|
+
|
49
|
+
def customservice_getonlinekflist
|
50
|
+
get 'customservice/getonlinekflist', base: BASE
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Wechat::Api
|
2
|
+
module Public::Menu
|
3
|
+
BASE = 'https://api.weixin.qq.com/cgi-bin/'
|
4
|
+
|
5
|
+
def menu
|
6
|
+
get 'menu/get', base: BASE
|
7
|
+
end
|
8
|
+
|
9
|
+
def menu_delete
|
10
|
+
get 'menu/delete', base: BASE
|
11
|
+
end
|
12
|
+
|
13
|
+
def menu_create(menu)
|
14
|
+
post 'menu/create', **menu, base: BASE
|
15
|
+
end
|
16
|
+
|
17
|
+
def menu_addconditional(menu)
|
18
|
+
post 'menu/addconditional', **menu, base: BASE
|
19
|
+
end
|
20
|
+
|
21
|
+
def menu_trymatch(user_id)
|
22
|
+
post 'menu/trymatch', user_id: user_id, base: BASE
|
23
|
+
end
|
24
|
+
|
25
|
+
def menu_delconditional(menuid)
|
26
|
+
post 'menu/delconditional', menuid: menuid, base: BASE
|
27
|
+
end
|
28
|
+
|
29
|
+
def templates
|
30
|
+
r = get 'template/get_all_private_template', base: BASE
|
31
|
+
r['template_list']
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_template(template_id_short, _ = nil)
|
35
|
+
post 'template/api_add_template', template_id_short: template_id_short, base: BASE
|
36
|
+
end
|
37
|
+
|
38
|
+
def del_template(template_id)
|
39
|
+
post 'template/del_private_template', template_id: template_id, base: BASE
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
## 用户相关功能
|
2
|
+
# 用户标签管理:https://developers.weixin.qq.com/doc/offiaccount/User_Management/User_Tag_Management.html
|
3
|
+
|
4
|
+
module Wechat::Api
|
5
|
+
module Public::User
|
6
|
+
BASE = 'https://api.weixin.qq.com/cgi-bin/'
|
7
|
+
|
8
|
+
# https://developers.weixin.qq.com/doc/offiaccount/User_Management/User_Tag_Management.html
|
9
|
+
def tags
|
10
|
+
get 'tags/get', base: BASE
|
11
|
+
end
|
12
|
+
|
13
|
+
def tag_create(tag_name, tag_id = nil)
|
14
|
+
if tag_id.present?
|
15
|
+
r = post 'tags/update', tag: { id: tag_id, name: tag_name }, base: BASE
|
16
|
+
else
|
17
|
+
r = post 'tags/create', tag: { name: tag_name }, base: BASE
|
18
|
+
end
|
19
|
+
|
20
|
+
if r['errcode'] == 0
|
21
|
+
{ 'tag' => { 'id' => tag_id, 'name' => tag_name } }
|
22
|
+
elsif r['errcode'] == 45157
|
23
|
+
{ 'tag' => tags['tags'].find { |i| i['name'] == tag_name } }
|
24
|
+
else
|
25
|
+
r
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def tag_delete(tagid)
|
30
|
+
post 'tags/delete', tag: { id: tagid }, base: BASE
|
31
|
+
end
|
32
|
+
|
33
|
+
def tag_add_user(tagid, *openids)
|
34
|
+
post 'tags/members/batchtagging', openid_list: openids, tagid: tagid, base: BASE
|
35
|
+
end
|
36
|
+
|
37
|
+
def tag_del_user(tagid, *openids)
|
38
|
+
post 'tags/members/batchuntagging', openid_list: openids, tagid: tagid, base: BASE
|
39
|
+
end
|
40
|
+
|
41
|
+
def tag(tagid, next_openid = '')
|
42
|
+
post 'user/tag/get', tagid: tagid, next_openid: next_openid, base: BASE
|
43
|
+
end
|
44
|
+
|
45
|
+
def users(nextid = nil)
|
46
|
+
params = {}
|
47
|
+
params.merge! next_openid: nextid if nextid.present?
|
48
|
+
|
49
|
+
get 'user/get', params: params, base: BASE
|
50
|
+
end
|
51
|
+
|
52
|
+
def user(openid)
|
53
|
+
get 'user/info', params: { openid: openid }, base: BASE
|
54
|
+
end
|
55
|
+
|
56
|
+
def user_batchget(openids, lang = 'zh-CN')
|
57
|
+
post 'user/info/batchget', user_list: openids.collect { |v| { openid: v, lang: lang } }, base: BASE
|
58
|
+
end
|
59
|
+
|
60
|
+
def user_group(openid)
|
61
|
+
post 'groups/getid', openid: openid, base: BASE
|
62
|
+
end
|
63
|
+
|
64
|
+
def user_change_group(openid, to_groupid)
|
65
|
+
post 'groups/members/update', openid: openid, to_groupid: to_groupid, base: BASE
|
66
|
+
end
|
67
|
+
|
68
|
+
def user_update_remark(openid, remark)
|
69
|
+
post 'user/info/updateremark', openid: openid, remark: remark, base: BASE
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Wechat::Api
|
2
|
+
module Work::Agent
|
3
|
+
BASE = 'https://qyapi.weixin.qq.com/cgi-bin/'
|
4
|
+
|
5
|
+
def token
|
6
|
+
client.get 'gettoken', params: { corpid: app.appid, corpsecret: app.secret }
|
7
|
+
end
|
8
|
+
|
9
|
+
def jsapi_ticket
|
10
|
+
get 'get_jsapi_ticket'
|
11
|
+
end
|
12
|
+
|
13
|
+
def agent_list
|
14
|
+
get 'agent/list', base: BASE
|
15
|
+
end
|
16
|
+
|
17
|
+
def agent(agentid)
|
18
|
+
get 'agent/get', params: { agentid: agentid }, base: BASE
|
19
|
+
end
|
20
|
+
|
21
|
+
def checkin(useridlist, starttime = Time.now.beginning_of_day, endtime = Time.now.end_of_day, opencheckindatatype = 3)
|
22
|
+
post 'checkin/getcheckindata', opencheckindatatype: opencheckindatatype, starttime: starttime.to_i, endtime: endtime.to_i, useridlist: useridlist, base: BASE
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Wechat::Api
|
2
|
+
module Work::Menu
|
3
|
+
BASE = 'https://qyapi.weixin.qq.com/cgi-bin/'
|
4
|
+
|
5
|
+
def menu
|
6
|
+
get 'menu/get', params: { agentid: @agentid }, base: BASE
|
7
|
+
end
|
8
|
+
|
9
|
+
def menu_delete
|
10
|
+
get 'menu/delete', params: { agentid: @agentid }, base: BASE
|
11
|
+
end
|
12
|
+
|
13
|
+
def menu_create(menu)
|
14
|
+
# 微信不接受7bit escaped json(eg \uxxxx), 中文必须UTF-8编码, 这可能是个安全漏洞
|
15
|
+
post 'menu/create', menu, params: { agentid: @agentid }, base: BASE
|
16
|
+
end
|
17
|
+
|
18
|
+
def material_count
|
19
|
+
get 'material/get_count', params: { agentid: @agentid }, base: BASE
|
20
|
+
end
|
21
|
+
|
22
|
+
def material_list(type, offset, count)
|
23
|
+
post 'material/batchget', type: type, agentid: @agentid, offset: offset, count: count, base: BASE
|
24
|
+
end
|
25
|
+
|
26
|
+
def material(media_id)
|
27
|
+
get 'material/get', params: { media_id: media_id, agentid: @agentid }, as: :file, base: BASE
|
28
|
+
end
|
29
|
+
|
30
|
+
def material_add(type, file)
|
31
|
+
post_file 'material/add_material', file, params: { type: type, agentid: @agentid }, base: BASE
|
32
|
+
end
|
33
|
+
|
34
|
+
def material_delete(media_id)
|
35
|
+
get 'material/del', params: { media_id: media_id, agentid: @agentid }, base: BASE
|
36
|
+
end
|
37
|
+
|
38
|
+
def message_send(userid, message)
|
39
|
+
post 'message/send', Message.to(userid).text(message).agent_id(@agentid), base: BASE
|
40
|
+
end
|
41
|
+
|
42
|
+
def custom_message_send(message)
|
43
|
+
post 'message/send', message.is_a?(Wechat::Message) ? message.agent_id(@agentid).as_json : message.merge(agent_id: @agentid)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
module Wechat::Api
|
2
|
+
module Work::User
|
3
|
+
BASE = 'https://qyapi.weixin.qq.com/cgi-bin/'
|
4
|
+
|
5
|
+
def getuserinfo(code)
|
6
|
+
get 'user/getuserinfo', params: { code: code }
|
7
|
+
end
|
8
|
+
|
9
|
+
def convert_to_openid(userid)
|
10
|
+
post 'user/convert_to_openid', userid: userid, agentid: @agentid
|
11
|
+
end
|
12
|
+
|
13
|
+
def invite_user(userid)
|
14
|
+
post 'invite/send', userid: userid
|
15
|
+
end
|
16
|
+
|
17
|
+
def user_auth_success(userid)
|
18
|
+
get 'user/authsucc', params: { userid: userid }
|
19
|
+
end
|
20
|
+
|
21
|
+
## 成员管理
|
22
|
+
# 创建成员
|
23
|
+
def user_create(user)
|
24
|
+
post 'user/create', user
|
25
|
+
end
|
26
|
+
|
27
|
+
# 读取成员
|
28
|
+
def user(userid)
|
29
|
+
get 'user/get', params: { userid: userid }
|
30
|
+
end
|
31
|
+
|
32
|
+
# 更新成员
|
33
|
+
def user_update(user)
|
34
|
+
post 'user/update', user
|
35
|
+
end
|
36
|
+
|
37
|
+
# 删除成员
|
38
|
+
def user_delete(userid)
|
39
|
+
get 'user/delete', params: { userid: userid }
|
40
|
+
end
|
41
|
+
|
42
|
+
# 批量删除成员
|
43
|
+
def user_batchdelete(useridlist)
|
44
|
+
post 'user/batchdelete', useridlist: useridlist
|
45
|
+
end
|
46
|
+
|
47
|
+
def batch_job_result(jobid)
|
48
|
+
get 'batch/getresult', params: { jobid: jobid }
|
49
|
+
end
|
50
|
+
|
51
|
+
def batch_replaceparty(media_id)
|
52
|
+
post 'batch/replaceparty', media_id: media_id
|
53
|
+
end
|
54
|
+
|
55
|
+
def batch_syncuser(media_id)
|
56
|
+
post 'batch/syncuser', media_id: media_id
|
57
|
+
end
|
58
|
+
|
59
|
+
def batch_replaceuser(media_id)
|
60
|
+
post 'batch/replaceuser', media_id: media_id
|
61
|
+
end
|
62
|
+
|
63
|
+
def department_create(name, parentid)
|
64
|
+
post 'department/create', name: name, parentid: parentid
|
65
|
+
end
|
66
|
+
|
67
|
+
def department_delete(departmentid)
|
68
|
+
get 'department/delete', params: { id: departmentid }
|
69
|
+
end
|
70
|
+
|
71
|
+
def department_update(departmentid, name = nil, parentid = nil, order = nil)
|
72
|
+
post 'department/update', { id: departmentid, name: name, parentid: parentid, order: order }.reject { |_k, v| v.nil? }
|
73
|
+
end
|
74
|
+
|
75
|
+
def department(departmentid = 1)
|
76
|
+
get 'department/list', params: { id: departmentid }
|
77
|
+
end
|
78
|
+
|
79
|
+
def user_simplelist(department_id, fetch_child = 0, status = 0)
|
80
|
+
get 'user/simplelist', params: { department_id: department_id, fetch_child: fetch_child, status: status }
|
81
|
+
end
|
82
|
+
|
83
|
+
def user_list(department_id, fetch_child = 0, status = 0)
|
84
|
+
get 'user/list', params: { department_id: department_id, fetch_child: fetch_child, status: status }
|
85
|
+
end
|
86
|
+
|
87
|
+
def tag_create(tagname, tagid = nil)
|
88
|
+
post 'tag/create', tagname: tagname, tagid: tagid
|
89
|
+
end
|
90
|
+
|
91
|
+
def tag_update(tagid, tagname)
|
92
|
+
post 'tag/update', tagid: tagid, tagname: tagname
|
93
|
+
end
|
94
|
+
|
95
|
+
def tag_delete(tagid)
|
96
|
+
get 'tag/delete', params: { tagid: tagid }
|
97
|
+
end
|
98
|
+
|
99
|
+
def tags
|
100
|
+
get 'tag/list'
|
101
|
+
end
|
102
|
+
|
103
|
+
def tag(tagid)
|
104
|
+
get 'tag/get', params: { tagid: tagid }
|
105
|
+
end
|
106
|
+
|
107
|
+
def tag_add_user(tagid, userids = nil, departmentids = nil)
|
108
|
+
post 'tag/addtagusers', tagid: tagid, userlist: userids, partylist: departmentids
|
109
|
+
end
|
110
|
+
|
111
|
+
def tag_del_user(tagid, userids = nil, departmentids = nil)
|
112
|
+
post 'tag/deltagusers', tagid: tagid, userlist: userids, partylist: departmentids
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|