whatsapp-docs-mcp 1.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.
- package/LICENSE +22 -0
- package/README.md +181 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +22 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +305 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +24 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +132 -0
- package/dist/resources.js.map +1 -0
- package/dist/tools.d.ts +6 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +379 -0
- package/dist/tools.js.map +1 -0
- package/dist/utils/fileLoader.d.ts +19 -0
- package/dist/utils/fileLoader.d.ts.map +1 -0
- package/dist/utils/fileLoader.js +126 -0
- package/dist/utils/fileLoader.js.map +1 -0
- package/dist/utils/search.d.ts +27 -0
- package/dist/utils/search.d.ts.map +1 -0
- package/dist/utils/search.js +91 -0
- package/dist/utils/search.js.map +1 -0
- package/docs/QUICK_REFERENCE.md +223 -0
- package/docs/anuncios_com_clique_para_whatsapp/AGENTS.md +8 -0
- package/docs/anuncios_com_clique_para_whatsapp/welcome_message_sequences.md +449 -0
- package/docs/ativos_da_conta/AGENTS.md +9 -0
- package/docs/ativos_da_conta/outros_ativos/AGENTS.md +12 -0
- package/docs/ativos_da_conta/outros_ativos/business_profiles.md +137 -0
- package/docs/ativos_da_conta/outros_ativos/display_names.md +108 -0
- package/docs/ativos_da_conta/outros_ativos/official_business_accounts.md +123 -0
- package/docs/ativos_da_conta/outros_ativos/qr_codes.md +198 -0
- package/docs/ativos_da_conta/outros_ativos/whatsapp_business_accounts.md +99 -0
- package/docs/ativos_da_conta/telefones_comerciais/AGENTS.md +11 -0
- package/docs/ativos_da_conta/telefones_comerciais/conversational_components.md +347 -0
- package/docs/ativos_da_conta/telefones_comerciais/phone_numbers.md +486 -0
- package/docs/ativos_da_conta/telefones_comerciais/registration.md +171 -0
- package/docs/ativos_da_conta/telefones_comerciais/two_step_verification.md +66 -0
- package/docs/catalogos/AGENTS.md +12 -0
- package/docs/catalogos/receive_responses.md +28 -0
- package/docs/catalogos/sell_products_and_services.md +24 -0
- package/docs/catalogos/set_commerce_settings.md +163 -0
- package/docs/catalogos/share_products.md +401 -0
- package/docs/catalogos/upload_inventory.md +28 -0
- package/docs/comecar/AGENTS.md +8 -0
- package/docs/comecar/get_started.md +127 -0
- package/docs/dados_privacidade_e_politica/AGENTS.md +16 -0
- package/docs/dados_privacidade_e_politica/block_users.md +549 -0
- package/docs/dados_privacidade_e_politica/data_privacy_and_security.md +78 -0
- package/docs/dados_privacidade_e_politica/encryption.md +8 -0
- package/docs/dados_privacidade_e_politica/getting_opt_in.md +41 -0
- package/docs/dados_privacidade_e_politica/identity_change.md +34 -0
- package/docs/dados_privacidade_e_politica/local_storage.md +277 -0
- package/docs/dados_privacidade_e_politica/no_storage.md +132 -0
- package/docs/dados_privacidade_e_politica/policy_enforcement.md +85 -0
- package/docs/dados_privacidade_e_politica/policy_enforcement_violations.md +127 -0
- package/docs/grupos/AGENTS.md +15 -0
- package/docs/grupos/error_codes.md +170 -0
- package/docs/grupos/faq.md +30 -0
- package/docs/grupos/get_started.md +73 -0
- package/docs/grupos/groups.md +75 -0
- package/docs/grupos/groups_messaging.md +340 -0
- package/docs/grupos/pricing.md +322 -0
- package/docs/grupos/reference.md +1059 -0
- package/docs/grupos/webhooks.md +298 -0
- package/docs/index.md +318 -0
- package/docs/insights/AGENTS.md +8 -0
- package/docs/insights/analytics.md +944 -0
- package/docs/ligacoes/AGENTS.md +20 -0
- package/docs/ligacoes/app_review_guidelines.md +48 -0
- package/docs/ligacoes/business_initiated_calls.md +858 -0
- package/docs/ligacoes/call_button_messages_deep_links.md +454 -0
- package/docs/ligacoes/call_settings.md +643 -0
- package/docs/ligacoes/calling.md +130 -0
- package/docs/ligacoes/faq.md +468 -0
- package/docs/ligacoes/integration_patterns.md +121 -0
- package/docs/ligacoes/pricing.md +339 -0
- package/docs/ligacoes/reference.md +1923 -0
- package/docs/ligacoes/sip.md +1090 -0
- package/docs/ligacoes/troubleshooting.md +483 -0
- package/docs/ligacoes/user_call_permissions.md +672 -0
- package/docs/ligacoes/user_initiated_calls.md +1030 -0
- package/docs/mensagens/AGENTS.md +46 -0
- package/docs/mensagens/limites_de_mensagens/AGENTS.md +9 -0
- package/docs/mensagens/limites_de_mensagens/messaging_limits.md +91 -0
- package/docs/mensagens/limites_de_mensagens/upcoming_changes.md +8 -0
- package/docs/mensagens/recursos_adicionais/AGENTS.md +13 -0
- package/docs/mensagens/recursos_adicionais/contextual_replies.md +82 -0
- package/docs/mensagens/recursos_adicionais/link_previews.md +58 -0
- package/docs/mensagens/recursos_adicionais/mark_message_as_read.md +111 -0
- package/docs/mensagens/recursos_adicionais/media.md +419 -0
- package/docs/mensagens/recursos_adicionais/payload_encryption.md +8 -0
- package/docs/mensagens/recursos_adicionais/typing_indicators.md +117 -0
- package/docs/mensagens/tipos_de_mensagens/AGENTS.md +24 -0
- package/docs/mensagens/tipos_de_mensagens/address_messages.md +465 -0
- package/docs/mensagens/tipos_de_mensagens/audio_messages.md +211 -0
- package/docs/mensagens/tipos_de_mensagens/contacts_messages.md +482 -0
- package/docs/mensagens/tipos_de_mensagens/document_messages.md +232 -0
- package/docs/mensagens/tipos_de_mensagens/image_messages.md +176 -0
- package/docs/mensagens/tipos_de_mensagens/interactive_cta_url_messages.md +240 -0
- package/docs/mensagens/tipos_de_mensagens/interactive_flow_messages.md +8 -0
- package/docs/mensagens/tipos_de_mensagens/interactive_list_messages.md +300 -0
- package/docs/mensagens/tipos_de_mensagens/interactive_reply_buttons_messages.md +271 -0
- package/docs/mensagens/tipos_de_mensagens/location_messages.md +156 -0
- package/docs/mensagens/tipos_de_mensagens/location_request_messages.md +310 -0
- package/docs/mensagens/tipos_de_mensagens/message_with_link.md +8 -0
- package/docs/mensagens/tipos_de_mensagens/reaction_messages.md +144 -0
- package/docs/mensagens/tipos_de_mensagens/sticker_messages.md +157 -0
- package/docs/mensagens/tipos_de_mensagens/template_messages.md +20 -0
- package/docs/mensagens/tipos_de_mensagens/text_messages.md +142 -0
- package/docs/mensagens/tipos_de_mensagens/video_messages.md +149 -0
- package/docs/mensagens/visao_geral/AGENTS.md +8 -0
- package/docs/mensagens/visao_geral/send_messages.md +370 -0
- package/docs/mensagens_de_marketing/AGENTS.md +10 -0
- package/docs/mensagens_de_marketing/implementacao/AGENTS.md +10 -0
- package/docs/mensagens_de_marketing/implementacao/get_started.md +107 -0
- package/docs/mensagens_de_marketing/implementacao/onboard_business_customers.md +180 -0
- package/docs/mensagens_de_marketing/implementacao/send_marketing_messages.md +260 -0
- package/docs/mensagens_de_marketing/recursos/AGENTS.md +12 -0
- package/docs/mensagens_de_marketing/recursos/automatic_creative_optimization.md +8 -0
- package/docs/mensagens_de_marketing/recursos/conversion_measurement.md +8 -0
- package/docs/mensagens_de_marketing/recursos/deep_links.md +302 -0
- package/docs/mensagens_de_marketing/recursos/track_click_events.md +119 -0
- package/docs/mensagens_de_marketing/recursos/view_metrics.md +338 -0
- package/docs/mensagens_de_marketing/visao_geral/AGENTS.md +8 -0
- package/docs/mensagens_de_marketing/visao_geral/overview.md +26 -0
- package/docs/modelos/AGENTS.md +12 -0
- package/docs/modelos/gerenciamento_de_modelos/AGENTS.md +21 -0
- package/docs/modelos/gerenciamento_de_modelos/components.md +717 -0
- package/docs/modelos/gerenciamento_de_modelos/supported_languages.md +462 -0
- package/docs/modelos/gerenciamento_de_modelos/tap_target_url_title_override.md +211 -0
- package/docs/modelos/gerenciamento_de_modelos/template_categorization.md +499 -0
- package/docs/modelos/gerenciamento_de_modelos/template_comparison.md +136 -0
- package/docs/modelos/gerenciamento_de_modelos/template_library.md +526 -0
- package/docs/modelos/gerenciamento_de_modelos/template_management.md +148 -0
- package/docs/modelos/gerenciamento_de_modelos/template_media.md +8 -0
- package/docs/modelos/gerenciamento_de_modelos/template_migration.md +164 -0
- package/docs/modelos/gerenciamento_de_modelos/template_pacing.md +38 -0
- package/docs/modelos/gerenciamento_de_modelos/template_pausing.md +58 -0
- package/docs/modelos/gerenciamento_de_modelos/template_quality.md +47 -0
- package/docs/modelos/gerenciamento_de_modelos/template_review.md +74 -0
- package/docs/modelos/gerenciamento_de_modelos/time_to_live.md +88 -0
- package/docs/modelos/modelos_de_autenticacao/AGENTS.md +13 -0
- package/docs/modelos/modelos_de_autenticacao/authentication_best_practices.md +73 -0
- package/docs/modelos/modelos_de_autenticacao/authentication_templates.md +252 -0
- package/docs/modelos/modelos_de_autenticacao/autofill_button_authentication_templates.md +732 -0
- package/docs/modelos/modelos_de_autenticacao/copy_code_button_authentication_templates.md +402 -0
- package/docs/modelos/modelos_de_autenticacao/error_signals.md +143 -0
- package/docs/modelos/modelos_de_autenticacao/zero_tap_authentication_templates.md +742 -0
- package/docs/modelos/modelos_de_marketing/AGENTS.md +18 -0
- package/docs/modelos/modelos_de_marketing/call_permission_request_message_template.md +221 -0
- package/docs/modelos/modelos_de_marketing/catalog_templates.md +308 -0
- package/docs/modelos/modelos_de_marketing/coupon_templates.md +425 -0
- package/docs/modelos/modelos_de_marketing/custom_marketing_templates.md +537 -0
- package/docs/modelos/modelos_de_marketing/limited_time_offer_templates.md +496 -0
- package/docs/modelos/modelos_de_marketing/marketing_templates.md +112 -0
- package/docs/modelos/modelos_de_marketing/media_card_carousel_templates.md +770 -0
- package/docs/modelos/modelos_de_marketing/mpm_templates.md +717 -0
- package/docs/modelos/modelos_de_marketing/per_user_limits.md +42 -0
- package/docs/modelos/modelos_de_marketing/product_card_carousel_templates.md +515 -0
- package/docs/modelos/modelos_de_marketing/spm_templates.md +466 -0
- package/docs/modelos/modelos_de_utilidade/AGENTS.md +8 -0
- package/docs/modelos/modelos_de_utilidade/utility_templates.md +583 -0
- package/docs/modelos/visao_geral/AGENTS.md +8 -0
- package/docs/modelos/visao_geral/overview.md +163 -0
- package/docs/pagamentos/AGENTS.md +9 -0
- package/docs/pagamentos/pagamentos_na_india/AGENTS.md +19 -0
- package/docs/pagamentos/pagamentos_na_india/checkout_button_templates.md +1332 -0
- package/docs/pagamentos/pagamentos_na_india/enhanced_payment_links.md +93 -0
- package/docs/pagamentos/pagamentos_na_india/onboarding_apis.md +580 -0
- package/docs/pagamentos/pagamentos_na_india/orderdetailstemplate.md +205 -0
- package/docs/pagamentos/pagamentos_na_india/orderstatustemplate.md +143 -0
- package/docs/pagamentos/pagamentos_na_india/overview.md +102 -0
- package/docs/pagamentos/pagamentos_na_india/payment_links.md +581 -0
- package/docs/pagamentos/pagamentos_na_india/pg.md +1228 -0
- package/docs/pagamentos/pagamentos_na_india/upi_intent/AGENTS.md +12 -0
- package/docs/pagamentos/pagamentos_na_india/upi_intent/dynamic_vpa.md +572 -0
- package/docs/pagamentos/pagamentos_na_india/upi_intent/pg_guide_billdesk.md +343 -0
- package/docs/pagamentos/pagamentos_na_india/upi_intent/pg_guide_cashfree.md +145 -0
- package/docs/pagamentos/pagamentos_na_india/upi_intent/pg_guide_ccavenue.md +146 -0
- package/docs/pagamentos/pagamentos_na_india/upi_intent/upi_intent.md +660 -0
- package/docs/pagamentos/pagamentos_no_brasil/AGENTS.md +14 -0
- package/docs/pagamentos/pagamentos_no_brasil/boleto.md +104 -0
- package/docs/pagamentos/pagamentos_no_brasil/offsite_pix.md +128 -0
- package/docs/pagamentos/pagamentos_no_brasil/one_click_payments.md +226 -0
- package/docs/pagamentos/pagamentos_no_brasil/orderdetailstemplate.md +180 -0
- package/docs/pagamentos/pagamentos_no_brasil/orders.md +768 -0
- package/docs/pagamentos/pagamentos_no_brasil/overview.md +32 -0
- package/docs/pagamentos/pagamentos_no_brasil/payment_links.md +104 -0
- package/docs/parceiros/AGENTS.md +12 -0
- package/docs/parceiros/analise_do_app/AGENTS.md +8 -0
- package/docs/parceiros/analise_do_app/app_review.md +91 -0
- package/docs/parceiros/gerenciamento/AGENTS.md +14 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/AGENTS.md +15 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/manage_accounts.md +274 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/manage_system_users.md +106 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/manage_webhooks.md +277 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/numeros_de_telefone/AGENTS.md +9 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/numeros_de_telefone/manage_phone_numbers.md +248 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/numeros_de_telefone/registering_phone_numbers.md +373 -0
- package/docs/parceiros/gerenciamento/gerenciar_ativos_do_cliente/share_and_revoke_credit_lines.md +551 -0
- package/docs/parceiros/gerenciamento/partner_led_business_verification.md +367 -0
- package/docs/parceiros/gerenciamento/pixel_tracking.md +35 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/AGENTS.md +18 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/adding_waba_to_mps.md +64 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/business_customer_support.md +102 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_customers_off_solutions_via_embedded_signup.md +151 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_customers_off_solutions_via_meta_business_suite.md +234 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_phone_numbers_among_solution_partners_programmatically.md +292 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_phone_numbers_among_solution_partners_via_embedded_signup.md +118 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_wabas_among_solution_partners_via_embedded_signup.md +76 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_wabas_among_solutions_via_embedded_signup.md +90 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/migrating_wabas_among_solutions_via_meta_business_suite.md +265 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/support.md +48 -0
- package/docs/parceiros/gerenciamento/suporte_ao_parceiro/transferring_wabas_to_customers.md +8 -0
- package/docs/parceiros/integracao_de_clientes/AGENTS.md +9 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/AGENTS.md +26 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/app_only_install.md +135 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/automatic_events_api.md +204 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/bypass_phone_addition.md +52 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/custom_flows.md +40 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/default_flow.md +90 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/errors.md +185 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/hosted_es.md +153 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/implementation.md +417 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/onboarding_business_app_users.md +926 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/onboarding_customers_as_a_solution_partner.md +402 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/onboarding_customers_as_a_tech_provider.md +332 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/overview.md +168 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/pre_filled_data.md +524 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/pre_verified_numbers.md +291 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/versions/AGENTS.md +12 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/versions/version_2_public_preview.md +88 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/versions/version_3.md +98 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/versions/version_3_public_preview.md +88 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/versions/version_4.md +92 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/versions/versions.md +463 -0
- package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/website_optional.md +57 -0
- package/docs/parceiros/integracao_de_clientes/outras_opcoes_de_integracao/AGENTS.md +11 -0
- package/docs/parceiros/integracao_de_clientes/outras_opcoes_de_integracao/multi_partner_solution_embedded_creation.md +178 -0
- package/docs/parceiros/integracao_de_clientes/outras_opcoes_de_integracao/multi_partner_solutions.md +775 -0
- package/docs/parceiros/integracao_de_clientes/outras_opcoes_de_integracao/multi_solution_conversations.md +319 -0
- package/docs/parceiros/integracao_de_clientes/outras_opcoes_de_integracao/partner_initiated_waba_creation.md +74 -0
- package/docs/parceiros/seja_um_parceiro/AGENTS.md +11 -0
- package/docs/parceiros/seja_um_parceiro/get_started_for_solution_partners.md +280 -0
- package/docs/parceiros/seja_um_parceiro/get_started_for_tech_providers.md +194 -0
- package/docs/parceiros/seja_um_parceiro/measurement_partners.md +146 -0
- package/docs/parceiros/seja_um_parceiro/upgrade_to_tech_partner.md +94 -0
- package/docs/parceiros/visao_geral/AGENTS.md +8 -0
- package/docs/parceiros/visao_geral/overview.md +190 -0
- package/docs/recado/AGENTS.md +9 -0
- package/docs/recado/precos/AGENTS.md +11 -0
- package/docs/recado/precos/pricing.md +915 -0
- package/docs/recado/precos/pricing_authentication_international_rates.md +464 -0
- package/docs/recado/precos/pricing_conversation_based_pricing.md +773 -0
- package/docs/recado/precos/pricing_updates_to_pricing.md +8 -0
- package/docs/recado/sobre_a_plataforma/AGENTS.md +10 -0
- package/docs/recado/sobre_a_plataforma/about_the_platform.md +217 -0
- package/docs/recado/sobre_a_plataforma/access_tokens.md +110 -0
- package/docs/recado/sobre_a_plataforma/permissions.md +55 -0
- package/docs/referencia/AGENTS.md +92 -0
- package/docs/referencia/bot_do_whatsapp_business/AGENTS.md +8 -0
- package/docs/referencia/bot_do_whatsapp_business/bot_details_api.md +762 -0
- package/docs/referencia/business/AGENTS.md +14 -0
- package/docs/referencia/business/add_phone_numbers_api.md +726 -0
- package/docs/referencia/business/client_whatsapp_business_accounts_api.md +1006 -0
- package/docs/referencia/business/owned_whatsapp_business_accounts.md +802 -0
- package/docs/referencia/business/whatsapp_business_accounts_api.md +1550 -0
- package/docs/referencia/business/whatsapp_business_partner_onboarding_to_mm_lite_api.md +783 -0
- package/docs/referencia/business/whatsapp_business_pre_verified_phone_number_sharing_api.md +790 -0
- package/docs/referencia/business/whatsapp_business_pre_verified_phone_numbers_api.md +886 -0
- package/docs/referencia/changelog.md +10 -0
- package/docs/referencia/conta_do_whatsapp_business/AGENTS.md +24 -0
- package/docs/referencia/conta_do_whatsapp_business/assigned_users_management_api.md +2202 -0
- package/docs/referencia/conta_do_whatsapp_business/business_account_api.md +267 -0
- package/docs/referencia/conta_do_whatsapp_business/business_account_extended_credits_api.md +275 -0
- package/docs/referencia/conta_do_whatsapp_business/conversational_automation_api.md +782 -0
- package/docs/referencia/conta_do_whatsapp_business/flows_api.md +1532 -0
- package/docs/referencia/conta_do_whatsapp_business/in_progress_on_behalf_requests_api.md +8 -0
- package/docs/referencia/conta_do_whatsapp_business/migration_intent_api.md +1581 -0
- package/docs/referencia/conta_do_whatsapp_business/obo_mobility_intent_api.md +8 -0
- package/docs/referencia/conta_do_whatsapp_business/phone_number_management_api.md +1686 -0
- package/docs/referencia/conta_do_whatsapp_business/schedules_api.md +1772 -0
- package/docs/referencia/conta_do_whatsapp_business/set_obo_mobility_intent_api.md +8 -0
- package/docs/referencia/conta_do_whatsapp_business/set_solution_migration_intent_api.md +8 -0
- package/docs/referencia/conta_do_whatsapp_business/subscribed_apps_api.md +2178 -0
- package/docs/referencia/conta_do_whatsapp_business/template_api.md +976 -0
- package/docs/referencia/conta_do_whatsapp_business/whatsapp_business_account_activities_api.md +842 -0
- package/docs/referencia/conta_do_whatsapp_business/whatsapp_business_account_api.md +1384 -0
- package/docs/referencia/conta_do_whatsapp_business/whatsapp_business_account_solutions_list_api.md +854 -0
- package/docs/referencia/grupo/AGENTS.md +11 -0
- package/docs/referencia/grupo/groups_invite_link_api.md +304 -0
- package/docs/referencia/grupo/groups_join_requests_api.md +686 -0
- package/docs/referencia/grupo/groups_participants_api.md +274 -0
- package/docs/referencia/grupo/groups_query_api.md +436 -0
- package/docs/referencia/historico_de_mensagens/AGENTS.md +8 -0
- package/docs/referencia/historico_de_mensagens/whatsapp_business_message_history_events_api.md +866 -0
- package/docs/referencia/inscricao/AGENTS.md +10 -0
- package/docs/referencia/inscricao/application_connected_client_businesses.md +812 -0
- package/docs/referencia/inscricao/application_solutions_api.md +874 -0
- package/docs/referencia/inscricao/solution_creation_api.md +824 -0
- package/docs/referencia/intencao_de_migracao_da_conta_do_whatsapp_business/AGENTS.md +8 -0
- package/docs/referencia/intencao_de_migracao_da_conta_do_whatsapp_business/migration_intent_details_api.md +724 -0
- package/docs/referencia/midias/AGENTS.md +9 -0
- package/docs/referencia/midias/media_api.md +342 -0
- package/docs/referencia/midias/media_download_api.md +160 -0
- package/docs/referencia/numero_da_conta_do_whatsapp/AGENTS.md +8 -0
- package/docs/referencia/numero_da_conta_do_whatsapp/whatsapp_account_number_api.md +778 -0
- package/docs/referencia/perfil_do_whatsapp_business/AGENTS.md +8 -0
- package/docs/referencia/perfil_do_whatsapp_business/whatsapp_business_profile_node_api.md +1494 -0
- package/docs/referencia/solucao_do_whatsapp_business/AGENTS.md +14 -0
- package/docs/referencia/solucao_do_whatsapp_business/accept_deactivation_request_api.md +762 -0
- package/docs/referencia/solucao_do_whatsapp_business/access_token_api.md +704 -0
- package/docs/referencia/solucao_do_whatsapp_business/reject_deactivation_request_api.md +812 -0
- package/docs/referencia/solucao_do_whatsapp_business/send_deactivation_request_api.md +778 -0
- package/docs/referencia/solucao_do_whatsapp_business/solution_accept_api.md +812 -0
- package/docs/referencia/solucao_do_whatsapp_business/solution_details_api.md +768 -0
- package/docs/referencia/solucao_do_whatsapp_business/solution_reject_api.md +798 -0
- package/docs/referencia/telefone_do_whatsapp_business/AGENTS.md +29 -0
- package/docs/referencia/telefone_do_whatsapp_business/block_api.md +542 -0
- package/docs/referencia/telefone_do_whatsapp_business/business_compliance_information_api.md +1608 -0
- package/docs/referencia/telefone_do_whatsapp_business/business_encryption_api.md +1402 -0
- package/docs/referencia/telefone_do_whatsapp_business/calling_api.md +598 -0
- package/docs/referencia/telefone_do_whatsapp_business/encrypted_messages_api.md +482 -0
- package/docs/referencia/telefone_do_whatsapp_business/groups_management_api.md +485 -0
- package/docs/referencia/telefone_do_whatsapp_business/marketing_messages_lite_api.md +315 -0
- package/docs/referencia/telefone_do_whatsapp_business/media_upload_api.md +188 -0
- package/docs/referencia/telefone_do_whatsapp_business/message_api.md +1798 -0
- package/docs/referencia/telefone_do_whatsapp_business/phone_number_api.md +377 -0
- package/docs/referencia/telefone_do_whatsapp_business/phone_number_deregister_api.md +714 -0
- package/docs/referencia/telefone_do_whatsapp_business/phone_number_registration.md +780 -0
- package/docs/referencia/telefone_do_whatsapp_business/phone_number_verification_request_code_api.md +734 -0
- package/docs/referencia/telefone_do_whatsapp_business/register_api.md +411 -0
- package/docs/referencia/telefone_do_whatsapp_business/settings_api.md +674 -0
- package/docs/referencia/telefone_do_whatsapp_business/verify_code_api.md +746 -0
- package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_account_message_history_api.md +932 -0
- package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_account_official_business_account_status_api.md +1540 -0
- package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_account_phone_number_api.md +1600 -0
- package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_profile_api.md +1478 -0
- package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_qr_code_api.md +1179 -0
- package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_qr_code_management_api.md +1315 -0
- package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/AGENTS.md +11 -0
- package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/request_verification_code_api.md +778 -0
- package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/verify_code_api.md +768 -0
- package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/whatsapp_business_pre_verified_phone_number_api.md +1382 -0
- package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/whatsapp_business_pre_verified_phone_number_partners_api.md +820 -0
- package/docs/referencia/usuario/AGENTS.md +8 -0
- package/docs/referencia/usuario/assigned_whatsapp_business_accounts_api.md +864 -0
- package/docs/referencia/webhooks/AGENTS.md +8 -0
- package/docs/referencia/webhooks/whatsapp_incoming_webhook_payload.md +1655 -0
- package/docs/suporte/AGENTS.md +13 -0
- package/docs/suporte/api_status_page.md +134 -0
- package/docs/suporte/error_codes.md +1194 -0
- package/docs/suporte/experiments.md +26 -0
- package/docs/suporte/health_status.md +225 -0
- package/docs/suporte/load_testing.md +340 -0
- package/docs/suporte/support.md +408 -0
- package/docs/visao_geral/AGENTS.md +8 -0
- package/docs/visao_geral/overview.md +2590 -0
- package/docs/webhooks/AGENTS.md +41 -0
- package/docs/webhooks/referencia/AGENTS.md +20 -0
- package/docs/webhooks/referencia/account_alerts.md +190 -0
- package/docs/webhooks/referencia/account_review_update.md +90 -0
- package/docs/webhooks/referencia/account_update.md +379 -0
- package/docs/webhooks/referencia/business_capability_update.md +121 -0
- package/docs/webhooks/referencia/history.md +302 -0
- package/docs/webhooks/referencia/message_template_components_update.md +179 -0
- package/docs/webhooks/referencia/message_template_quality_update.md +136 -0
- package/docs/webhooks/referencia/message_template_status_update.md +253 -0
- package/docs/webhooks/referencia/messages/AGENTS.md +24 -0
- package/docs/webhooks/referencia/messages/audio.md +298 -0
- package/docs/webhooks/referencia/messages/button.md +170 -0
- package/docs/webhooks/referencia/messages/contacts.md +491 -0
- package/docs/webhooks/referencia/messages/document.md +307 -0
- package/docs/webhooks/referencia/messages/errors.md +132 -0
- package/docs/webhooks/referencia/messages/image.md +304 -0
- package/docs/webhooks/referencia/messages/interactive.md +225 -0
- package/docs/webhooks/referencia/messages/location.md +296 -0
- package/docs/webhooks/referencia/messages/messages.md +44 -0
- package/docs/webhooks/referencia/messages/order.md +208 -0
- package/docs/webhooks/referencia/messages/reaction.md +178 -0
- package/docs/webhooks/referencia/messages/status.md +364 -0
- package/docs/webhooks/referencia/messages/sticker.md +298 -0
- package/docs/webhooks/referencia/messages/system.md +140 -0
- package/docs/webhooks/referencia/messages/text.md +322 -0
- package/docs/webhooks/referencia/messages/unsupported.md +165 -0
- package/docs/webhooks/referencia/messages/video.md +304 -0
- package/docs/webhooks/referencia/outros_webhooks/AGENTS.md +16 -0
- package/docs/webhooks/referencia/outros_webhooks/partner_solutions.md +114 -0
- package/docs/webhooks/referencia/outros_webhooks/payment_configuration_update.md +135 -0
- package/docs/webhooks/referencia/outros_webhooks/phone_number_name_update.md +129 -0
- package/docs/webhooks/referencia/outros_webhooks/phone_number_quality_update.md +172 -0
- package/docs/webhooks/referencia/outros_webhooks/security.md +108 -0
- package/docs/webhooks/referencia/outros_webhooks/smb_app_state_sync.md +146 -0
- package/docs/webhooks/referencia/outros_webhooks/smb_message_echoes.md +143 -0
- package/docs/webhooks/referencia/outros_webhooks/template_category_update.md +154 -0
- package/docs/webhooks/referencia/outros_webhooks/user_preferences.md +150 -0
- package/docs/webhooks/visao_geral/AGENTS.md +11 -0
- package/docs/webhooks/visao_geral/message_echoes.md +8 -0
- package/docs/webhooks/visao_geral/override.md +235 -0
- package/docs/webhooks/visao_geral/overview.md +158 -0
- package/docs/webhooks/visao_geral/set_up_whatsapp_echo_bot.md +109 -0
- package/package.json +50 -0
|
@@ -0,0 +1,742 @@
|
|
|
1
|
+
<!-- Source: https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/authentication-templates/zero-tap-authentication-templates -->
|
|
2
|
+
<!-- Scraped: 2025-12-20T17:30:46.220Z -->
|
|
3
|
+
|
|
4
|
+
# Modelos de autenticação sem toque
|
|
5
|
+
|
|
6
|
+
Updated: 4 de nov de 2025
|
|
7
|
+
|
|
8
|
+
Os modelos de autenticação de toque zero permitem que seus usuários recebam senhas ou códigos descartáveis via WhatsApp sem que precisem sair do app.
|
|
9
|
+
|
|
10
|
+
Quando um usuário solicita uma senha ou um código e você entrega essa chave usando um modelo de autenticação sem toque, o cliente do WhatsApp simplesmente transmite a senha ou o código incluído, que pode ser capturado pelo seu app usando um receptor de transmissão.
|
|
11
|
+
|
|
12
|
+
Do ponto de vista do usuário, ele solicita uma senha ou um código no seu app, e o item solicitado aparece automaticamente no app. Caso o usuário do app verifique a mensagem no cliente do WhatsApp, ele verá apenas uma mensagem exibindo o texto fixo padrão: _< code > é seu código de verificação._
|
|
13
|
+
|
|
14
|
+
Assim como acontece com os modelos de autenticação com botão de preencher automaticamente com um toque, quando o cliente do WhatsApp recebe o modelo de mensagem com a senha ou o código do usuário, realizamos uma série de verificações de qualificação. Se a mensagem falhar nessa verificação e não conseguirmos transmitir a senha ou o código, ela exibirá um botão de preencher automaticamente com um toque ou um botão de copiar código. Por isso, ao criar um modelo de autenticação sem toque, será preciso incluir o botão de preencher automaticamente com um toque e copiar código na carga do corpo do post, mesmo que o usuário não veja esses botões.
|
|
15
|
+
|
|
16
|
+
Observação: o Android SDK para senha descartável está disponível na versão beta e apresenta um fluxo de trabalho simplificado para implementar modelos de autenticação com um toque e sem toque. Veja como usar o recurso abaixo.
|
|
17
|
+
|
|
18
|
+
## Limitações
|
|
19
|
+
|
|
20
|
+
O recurso de toque zero só é compatível com o Android. Se você enviar um modelo de autenticação sem toque a um usuário cujo dispositivo não seja Android, o cliente do WhatsApp exibirá um botão de copiar código.
|
|
21
|
+
|
|
22
|
+
URLs, mídia e emojis não são compatíveis.
|
|
23
|
+
|
|
24
|
+
## Boas práticas
|
|
25
|
+
|
|
26
|
+
- Não use o WhatsApp como método de entrega de senha/código padrão.- Deixe claro para os usuários do app que a senha ou o código será entregue automaticamente no app quando eles selecionarem o WhatsApp como opção de entrega.- Confira o artigo da Central de Ajuda [Sobre códigos de segurança preenchidos automaticamente no WhatsApp](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F659113242716268%2F&h=AT3ZepR5Nalg6VDCV1Va5hdioY0kJfJ4eMMjhimJpTtEpmx5tG2WjFwzHU-pckkaFwFseihRH1bM8B6ccsUt2r1lmAsQiAGb-NOGoXECYiSfRrFllNvE4CbgRF0neeSNsKRd2sPAIaRWj4V9v5uxttTXTqM) se os seus usuários estiverem preocupados com a entrega automática da senha ou do código.- Depois que a senha/código for usado no app, confirme ao usuário que ele foi recebido com sucesso.
|
|
27
|
+
|
|
28
|
+
Confira alguns exemplos que explicam ao usuário que o código será exibido automaticamente no app.
|
|
29
|
+
|
|
30
|
+

|
|
31
|
+
|
|
32
|
+
## Como criar modelos de autenticação
|
|
33
|
+
|
|
34
|
+
Use o ponto de extremidade em [Conta do WhatsApp Business > Modelos de mensagem](/documentation/business-messaging/whatsapp/reference/whatsapp-business-account/template-api) para criar um modelo de autenticação sem toque.
|
|
35
|
+
|
|
36
|
+
### Sintaxe da solicitação
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
curl -X POST "https://graph.facebook.com/v19.0/<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates" \
|
|
40
|
+
-H "Authorization: Bearer <ACCESS_TOKEN>" \
|
|
41
|
+
-H "Content-Type: application/json" \
|
|
42
|
+
-d '
|
|
43
|
+
{
|
|
44
|
+
"name": "<TEMPLATE_NAME>",
|
|
45
|
+
"language": "<TEMPLATE_LANGUAGE>",
|
|
46
|
+
"category": "authentication",
|
|
47
|
+
"message_send_ttl_seconds": <TIME_TO_LIVE>,
|
|
48
|
+
"components": [
|
|
49
|
+
{
|
|
50
|
+
"type": "body",
|
|
51
|
+
"add_security_recommendation": <SECURITY_RECOMMENDATION>
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "footer",
|
|
55
|
+
"code_expiration_minutes": <CODE_EXPIRATION>
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "buttons",
|
|
59
|
+
"buttons": [
|
|
60
|
+
{
|
|
61
|
+
"type": "otp",
|
|
62
|
+
"otp_type": "zero_tap",
|
|
63
|
+
"text": "<CODY_CODE_BUTTON_TEXT>",
|
|
64
|
+
"autofill_text": "<AUTOFILL_BUTTON_TEXT>",
|
|
65
|
+
"zero_tap_terms_accepted": <TERMS_ACCEPTED>,
|
|
66
|
+
"supported_apps": [
|
|
67
|
+
{
|
|
68
|
+
"package_name": "<PACKAGE_NAME>",
|
|
69
|
+
"signature_hash": "<SIGNATURE_HASH>"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Na solicitação de criação do modelo, o tipo de botão é designado como `otp`. Porém, quando ele for criado, o tipo do botão será definido como `url`. É possível confirmar isso ao executar uma solicitação GET em um modelo de autenticação recém-criado e analisar os componentes.
|
|
80
|
+
|
|
81
|
+
### Parâmetros de solicitação
|
|
82
|
+
|
|
83
|
+
Espaço reservado
|
|
84
|
+
|
|
85
|
+
Descrição
|
|
86
|
+
|
|
87
|
+
Valor de exemplo
|
|
88
|
+
|
|
89
|
+
`<AUTOFILL_BUTTON_TEXT>`
|
|
90
|
+
|
|
91
|
+
_String_
|
|
92
|
+
|
|
93
|
+
**Opcional.**
|
|
94
|
+
|
|
95
|
+
O texto da etiqueta do botão de preencher automaticamente com um toque.
|
|
96
|
+
|
|
97
|
+
Em caso de omissão, o texto de preenchimento automático será, por padrão, um valor predefinido no idioma do modelo. Por exemplo, "Preenchimento automático para português (BR)".
|
|
98
|
+
|
|
99
|
+
Máximo de 25 caracteres.
|
|
100
|
+
|
|
101
|
+
`Autofill`
|
|
102
|
+
|
|
103
|
+
`<COPY_CODE_BUTTON_TEXT>`
|
|
104
|
+
|
|
105
|
+
_String_
|
|
106
|
+
|
|
107
|
+
**Opcional.**
|
|
108
|
+
|
|
109
|
+
O texto da etiqueta do botão de copiar código.
|
|
110
|
+
|
|
111
|
+
Se a mensagem não for aprovada na [verificação de qualificação](#eligibility-check) e exibir um botão de copiar código, o botão usará esse rótulo de texto.
|
|
112
|
+
|
|
113
|
+
Se for omitido, e a mensagem não for aprovada na verificação de qualificação e exibir um botão de copiar código, o texto padrão usará um valor predefinido localizado para o idioma do modelo. Por exemplo, `Copy Code` para português (BR).
|
|
114
|
+
|
|
115
|
+
Máximo de 25 caracteres.
|
|
116
|
+
|
|
117
|
+
`Copy Code`
|
|
118
|
+
|
|
119
|
+
`<CODE_EXPIRATION>`
|
|
120
|
+
|
|
121
|
+
_Número inteiro_
|
|
122
|
+
|
|
123
|
+
**Opcional.**
|
|
124
|
+
|
|
125
|
+
A validade da senha ou do código em minutos.
|
|
126
|
+
|
|
127
|
+
Se for incluído, o aviso de expiração do código e esse valor serão exibidos na mensagem entregue. Caso a mensagem não passe na [verificação de qualificação](#eligibility-check) e exiba um botão de preencher automaticamente com um toque, o botão será desabilitado na mensagem com base no número de minutos indicado, decorridos após o envio da mensagem.
|
|
128
|
+
|
|
129
|
+
Caso seja omitido, o aviso de expiração do código não será exibido na mensagem. Se a mensagem não for aprovada na verificação de qualificação e exibir um botão de preencher automaticamente com um toque, o botão será desabilitado dez minutos após o envio da mensagem.
|
|
130
|
+
|
|
131
|
+
Mínimo 1, máximo 90.
|
|
132
|
+
|
|
133
|
+
`5`
|
|
134
|
+
|
|
135
|
+
`<PACKAGE_NAME>`
|
|
136
|
+
|
|
137
|
+
_String_
|
|
138
|
+
|
|
139
|
+
**Obrigatório.**
|
|
140
|
+
|
|
141
|
+
O nome do pacote do app Android.
|
|
142
|
+
|
|
143
|
+
A string deve ter pelo menos dois segmentos (um ou mais pontos), e cada segmento precisa começar com uma letra.
|
|
144
|
+
|
|
145
|
+
Todos os caracteres devem ser alfanuméricos ou um sublinhado (`a-zA-Z0-9_`).
|
|
146
|
+
|
|
147
|
+
Ao usar a Graph API 20.0 ou versões anteriores, você poderá definir o nome do pacote do seu app fora da matriz `supported_apps`, mas isso não é recomendado. Consulte [Apps compatíveis](#supported-apps) abaixo.
|
|
148
|
+
|
|
149
|
+
Máximo de 224 caracteres.
|
|
150
|
+
|
|
151
|
+
`com.example.luckyshrub`
|
|
152
|
+
|
|
153
|
+
`<SECURITY_RECOMMENDATION>`
|
|
154
|
+
|
|
155
|
+
_Booliano_
|
|
156
|
+
|
|
157
|
+
**Opcional.**
|
|
158
|
+
|
|
159
|
+
Defina como `true` se quiser que o modelo inclua a string fixa, Para sua segurança, não compartilhe este código. Caso contrário, defina como `false`.
|
|
160
|
+
|
|
161
|
+
`true`
|
|
162
|
+
|
|
163
|
+
`<SIGNATURE_HASH>`
|
|
164
|
+
|
|
165
|
+
_String_
|
|
166
|
+
|
|
167
|
+
**Obrigatório.**
|
|
168
|
+
|
|
169
|
+
O hash da chave de assinatura do app. Consulte [Hash da chave de assinatura do app](#app-signing-key-hash) abaixo.
|
|
170
|
+
|
|
171
|
+
Todos os caracteres devem ser alfanuméricos, `+`, `/` ou `=` (`a-zA-Z0-9+/=`).
|
|
172
|
+
|
|
173
|
+
Ao usar a Graph API 20.0 ou versões anteriores, você poderá definir o hash de assinatura do seu app fora da matriz `supported_apps`, mas isso não é recomendado. Consulte [Apps compatíveis](#supported-apps) abaixo.
|
|
174
|
+
|
|
175
|
+
Precisa ter exatamente 11 caracteres.
|
|
176
|
+
|
|
177
|
+
`K8a/AINcGX7`
|
|
178
|
+
|
|
179
|
+
`<TEMPLATE_LANGUAGE>`
|
|
180
|
+
|
|
181
|
+
_String_
|
|
182
|
+
|
|
183
|
+
**Obrigatório.**
|
|
184
|
+
|
|
185
|
+
O [código de localidade e idioma](/documentation/business-messaging/whatsapp/templates/supported-languages) do modelo.
|
|
186
|
+
|
|
187
|
+
`en_US`
|
|
188
|
+
|
|
189
|
+
`<TEMPLATE_NAME>`
|
|
190
|
+
|
|
191
|
+
_String_
|
|
192
|
+
|
|
193
|
+
**Obrigatório.**
|
|
194
|
+
|
|
195
|
+
O nome do modelo.
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
Máximo de 512 caracteres.
|
|
199
|
+
|
|
200
|
+
`zero_tap_auth_template`
|
|
201
|
+
|
|
202
|
+
`<TERMS_ACCEPTED>`
|
|
203
|
+
|
|
204
|
+
_Booliano_
|
|
205
|
+
|
|
206
|
+
**Obrigatório.**
|
|
207
|
+
|
|
208
|
+
Defina como `true` para indicar que você entende que o uso da autenticação de toque zero está sujeito aos Termos de Serviço do WhatsApp Business e que é sua responsabilidade garantir que os clientes esperem o preenchimento automático do código em nome deles quando optarem por recebê-lo por meio do WhatsApp.
|
|
209
|
+
|
|
210
|
+
Se estiver definido como `false`, o modelo **não** será criado, já que você precisa aceitar os termos da opção sem toque antes de criar modelos de mensagem habilitados para essa opção.
|
|
211
|
+
|
|
212
|
+
`true`
|
|
213
|
+
|
|
214
|
+
`<TIME_TO_LIVE>`
|
|
215
|
+
|
|
216
|
+
_Número inteiro_
|
|
217
|
+
|
|
218
|
+
**Opcional.**
|
|
219
|
+
|
|
220
|
+
Valor do tempo de vida da mensagem de autenticação, em segundos. Consulte a seção [Tempo de vida](/documentation/business-messaging/whatsapp/templates/authentication-templates/authentication-templates#time-to-live).
|
|
221
|
+
|
|
222
|
+
`60`
|
|
223
|
+
|
|
224
|
+
### Exemplo de solicitação
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
curl 'https://graph.facebook.com/v24.0/102290129340398/message_templates' \
|
|
228
|
+
-H 'Content-Type: application/json' \
|
|
229
|
+
-H 'Authorization: Bearer EAAJB...' \
|
|
230
|
+
-d '
|
|
231
|
+
{
|
|
232
|
+
"name": "zero_tap_auth_template",
|
|
233
|
+
"language": "en_US",
|
|
234
|
+
"category": "authentication",
|
|
235
|
+
"message_send_ttl_seconds": 60,
|
|
236
|
+
"components": [
|
|
237
|
+
{
|
|
238
|
+
"type": "body",
|
|
239
|
+
"add_security_recommendation": true
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"type": "footer",
|
|
243
|
+
"code_expiration_minutes": 5
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"type": "buttons",
|
|
247
|
+
"buttons": [
|
|
248
|
+
{
|
|
249
|
+
"type": "otp",
|
|
250
|
+
"otp_type": "zero_tap",
|
|
251
|
+
"text": "Copy Code",
|
|
252
|
+
"autofill_text": "Autofill",
|
|
253
|
+
"zero_tap_terms_accepted": true,
|
|
254
|
+
"supported_apps": [
|
|
255
|
+
{
|
|
256
|
+
"package_name": "com.example.luckyshrub",
|
|
257
|
+
"signature_hash": "K8a/AINcGX7"
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
}'
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Exemplo de resposta
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
{ "id": "594425479261596", "status": "PENDING", "category": "AUTHENTICATION"}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Hash de chave de assinatura do app
|
|
274
|
+
|
|
275
|
+
É preciso incluir o hash de chave de assinatura do seu app no corpo do post.
|
|
276
|
+
|
|
277
|
+
Para calcular o hash, siga as instruções do Google para [calcular a string de hash do app](https://l.facebook.com/l.php?u=https%3A%2F%2Fdevelopers.google.com%2Fidentity%2Fsms-retriever%2Fverify%23computing_your_apps_hash_string&h=AT3ZepR5Nalg6VDCV1Va5hdioY0kJfJ4eMMjhimJpTtEpmx5tG2WjFwzHU-pckkaFwFseihRH1bM8B6ccsUt2r1lmAsQiAGb-NOGoXECYiSfRrFllNvE4CbgRF0neeSNsKRd2sPAIaRWj4V9v5uxttTXTqM).
|
|
278
|
+
|
|
279
|
+
Como alternativa, se você seguir as instruções do Google e baixar o certificado da chave de assinatura do seu app (etapa 1), será possível usar o certificado com o script de shell [sms\_retriever\_hash\_v9.sh](https://l.facebook.com/l.php?u=http%3A%2F%2Ftinyurl.com%2F43bkdrdt&h=AT3ZepR5Nalg6VDCV1Va5hdioY0kJfJ4eMMjhimJpTtEpmx5tG2WjFwzHU-pckkaFwFseihRH1bM8B6ccsUt2r1lmAsQiAGb-NOGoXECYiSfRrFllNvE4CbgRF0neeSNsKRd2sPAIaRWj4V9v5uxttTXTqM) para calcular o hash. Por exemplo:
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
./sms_retriever_hash_v9.sh --package "com.example.myapplication" --keystore ~/.android/debug.keystore
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## apps compatíveis
|
|
286
|
+
|
|
287
|
+
A matriz `supported_apps` permite definir pares de nomes de pacote de apps e hashes de chave de assinatura para até cinco apps. Isso pode ser útil se você tem compilações diferentes do app e quer que cada uma delas seja capaz de iniciar o handshake:
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
"buttons": [
|
|
291
|
+
{
|
|
292
|
+
"type": "otp",
|
|
293
|
+
...
|
|
294
|
+
"supported_apps": [
|
|
295
|
+
{
|
|
296
|
+
"package_name": "<PACKAGE_NAME_1>",
|
|
297
|
+
"signature_hash": "<SIGNATURE_HASH_1>"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"package_name": "<PACKAGE_NAME_2>",
|
|
301
|
+
"signature_hash": "<SIGNATURE_HASH_2>"
|
|
302
|
+
},
|
|
303
|
+
...
|
|
304
|
+
]
|
|
305
|
+
}
|
|
306
|
+
]
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Como alternativa, se você estiver usando a Graph API versão 20.0 ou anterior e tiver apenas um app, será possível definir o nome do pacote e o hash da chave de assinatura como propriedades de objeto de `buttons`. Porém, isso não é recomendado, já que esse método não será mais compatível a partir da versão 21.0:
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
"buttons": [
|
|
313
|
+
{
|
|
314
|
+
"type": "otp",
|
|
315
|
+
...
|
|
316
|
+
"package_name": "<PACKAGE_NAME>",
|
|
317
|
+
"signature_hash": "<SIGNATURE_HASH>"
|
|
318
|
+
}
|
|
319
|
+
]
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Handshake
|
|
323
|
+
|
|
324
|
+
É preciso informar ao cliente do WhatsApp sobre a possível entrega de uma senha ou um código. Você pode fazer isso iniciando um "handshake".
|
|
325
|
+
|
|
326
|
+
Um handshake é uma classe pública e um intent do Android que você implementa, mas que pode ser iniciado pelo cliente do WhatsApp.
|
|
327
|
+
|
|
328
|
+
Quando um usuário do seu app solicitar o envio de uma senha ou um código para o número do WhatsApp dele, primeiro você precisará [iniciar o handshake](#initiating-the-handshake). Depois, faça uma chamada de API para enviar a mensagem do modelo de autenticação. Quando o cliente do WhatsApp receber a mensagem, será feita a [verificação de qualificação](#eligibility-check). Se não houver erros, será iniciada uma transmissão.
|
|
329
|
+
|
|
330
|
+
Se você não iniciar o handshake antes de enviar a mensagem ou se a mensagem não for aprovada na verificação de qualificação, a transmissão não será iniciada. Em vez disso, a mensagem entregue exibirá um botão de preenchimento automático em um toque, se possível. Caso contrário, será exibido um botão de copiar código.
|
|
331
|
+
|
|
332
|
+
### Verificação de qualificação
|
|
333
|
+
|
|
334
|
+
Ao receber uma mensagem de modelo de autenticação, o cliente do WhatsApp faz as verificações a seguir. Se alguma verificação falhar, o WhatsApp tentará exibir o botão de preencher automaticamente com um toque na mensagem. Se não for possível fazer isso, o usuário verá um botão de copiar código.
|
|
335
|
+
|
|
336
|
+
- O handshake foi iniciado há não mais que dez minutos (ou não mais que o número de minutos indicado pela propriedade `code_expiration_minutes` do modelo, se o valor estiver presente).- O nome do pacote na mensagem (definido na propriedade `package_name` na matriz `components` ao criar o modelo) é o mesmo definido na intenção. A correspondência é determinada por meio do método `getCreatorPackage` chamado no objeto `PendingIntent` fornecido pelo app. Consulte [Classe do botão de preencher automaticamente com um toque](#one-tap-autofill-button-class--optional-).- O hash da chave de assinatura do app na mensagem (definido na propriedade `signature_hash` na matriz de componentes ao criar o modelo) corresponde ao do seu app instalado.- O app definiu uma atividade e classe de botão de preencher automaticamente com um toque para receber a senha ou o código.- O app definiu uma classe e um recebedor de transmissão sem toque para receber a senha ou o código.
|
|
337
|
+
|
|
338
|
+
### Notificações no Android
|
|
339
|
+
|
|
340
|
+
As notificações que indicam o recebimento da mensagem do modelo de autenticação do WhatsApp só aparecerão no dispositivo Android do usuário se:
|
|
341
|
+
|
|
342
|
+
- o usuário estiver conectado ao app WhatsApp ou WhatsApp Business com o número de telefone (conta) para o qual a mensagem foi enviada;- o usuário estiver conectado ao seu app;- o SO do Android for KitKat (4.4, API 19) ou posterior;- **Mostrar notificações** estiver habilitado (**Configurações** > **Notificações**) no app WhatsApp ou WhatsApp Business;- as notificações de nível do dispositivo estiverem habilitadas para o app WhatsApp ou WhatsApp Business;- os tópicos de mensagens anteriores no app WhatsApp ou WhatsApp Business entre o usuário e sua empresa não estiverem silenciados.
|
|
343
|
+
|
|
344
|
+
### Usar o SDK (beta)
|
|
345
|
+
|
|
346
|
+
O Android SDK para senha descartável está disponível na versão beta. Ele pode ser usado para executar handshakes, bem como outras funções em modelos de autenticação de um toque e sem toque.
|
|
347
|
+
|
|
348
|
+
Para acessar a funcionalidade do SDK, adicione a seguinte configuração ao arquivo Gradle:
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
dependencies {
|
|
352
|
+
…
|
|
353
|
+
implementation 'com.whatsapp.otp:whatsapp-otp-android-sdk:0.1.0'
|
|
354
|
+
…
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
Nos seus repositórios, inclua `mavenCentral()`:
|
|
359
|
+
|
|
360
|
+
```
|
|
361
|
+
repositories {
|
|
362
|
+
…
|
|
363
|
+
mavenCentral()
|
|
364
|
+
…
|
|
365
|
+
}
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Destinatário da transmissão sem toque
|
|
369
|
+
|
|
370
|
+
Declare um filtro de intenção e um Destinatário que possa receber a senha ou o código descartável. O filtro de intenção deve ter o nome da ação com.whatsapp.otp.OTP\_RETRIEVED.
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
<receiver
|
|
374
|
+
android:name=".app.receiver.OtpCodeReceiver"
|
|
375
|
+
android:enabled="true"
|
|
376
|
+
android:exported="true">
|
|
377
|
+
<intent-filter><action android:name="com.whatsapp.otp.OTP_RETRIEVED" /></intent-filter></receiver>
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Esse é o destinatário que o app WhatsApp ou WhatsApp Business iniciará quando a mensagem do modelo de autenticação for recebida e passar pelas [verificações de elegibilidade](/documentation/business-messaging/whatsapp/templates/authentication-templates/authentication-templates#eligibility-checks).
|
|
381
|
+
|
|
382
|
+
### Classe de receptores sem toque
|
|
383
|
+
|
|
384
|
+
Usar o SDK (recomendado)
|
|
385
|
+
|
|
386
|
+
Defina uma classe que estenda `BroadcastReceiver` e, depois, defina o método `onReceive`, transmitindo seu contexto e intenção. Instancie um objeto `WhatsAppOtpIncomingIntentHandler` e execute o método `.processOtpCode()`, que receberá a intenção, validará o código OTP e lidará com os erros.
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
public class OtpCodeReceiver extends BroadcastReceiver {
|
|
390
|
+
|
|
391
|
+
@Override
|
|
392
|
+
public void onReceive(Context context, Intent intent) {
|
|
393
|
+
WhatsAppOtpIncomingIntentHandler whatsAppOtpIncomingIntentHandler = new WhatsAppOtpIncomingIntentHandler();
|
|
394
|
+
whatsAppOtpIncomingIntentHandler.processOtpCode(intent,
|
|
395
|
+
// call your function to validate
|
|
396
|
+
(code) -> validateCode(code),
|
|
397
|
+
// call your function to handle errors
|
|
398
|
+
(error, exception) -> handleError(error, exception));
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
#### Sem o SDK
|
|
404
|
+
|
|
405
|
+
A classe de receptores de transmissão deverá ficar assim:
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
public class OtpCodeReceiver extends BroadcastReceiver
|
|
409
|
+
|
|
410
|
+
@Override
|
|
411
|
+
public void onReceive(Context context, Intent intent) {
|
|
412
|
+
PendingIntent pendingIntent = intent.getParcelableExtra("_ci_");
|
|
413
|
+
// verify source of the pendingIntent
|
|
414
|
+
String pendingIntentCreatorPackage = pendingIntent.getCreatorPackage();
|
|
415
|
+
|
|
416
|
+
String creatorPackage = pendingIntent.getCreatorPackage();
|
|
417
|
+
if ("com.whatsapp".equals(creatorPackage) ||
|
|
418
|
+
"com.whatsapp.w4b".equals(creatorPackage)) {
|
|
419
|
+
// use OTP code
|
|
420
|
+
String otpCode = intent.getStringExtra("code");
|
|
421
|
+
// ...
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### Atividade do botão de preencher automaticamente com um toque (opcional)
|
|
428
|
+
|
|
429
|
+
Se quiser que mensagem entregue seja preenchida automaticamente com um toque, caso não seja aprovada na verificação de qualificação, implemente essa atividade e filtro de intenção no seu app para receber a senha ou o código de uso único.
|
|
430
|
+
|
|
431
|
+
O filtro de intenção deve ter o nome da ação `com.whatsapp.otp.OTP_RETRIEVED`.
|
|
432
|
+
|
|
433
|
+
```
|
|
434
|
+
<activity
|
|
435
|
+
android:name=".ReceiveCodeActivity"
|
|
436
|
+
android:enabled="true"
|
|
437
|
+
android:exported="true"
|
|
438
|
+
android:launchMode="standard">
|
|
439
|
+
<intent-filter><action android:name="com.whatsapp.otp.OTP_RETRIEVED" /></intent-filter></activity>
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Essa é a atividade que será iniciada pelo cliente do WhatsApp se a mensagem não for aprovada na verificação de qualificação, mas ainda estiver qualificada para exibir um botão de preencher automaticamente com um toque.
|
|
443
|
+
|
|
444
|
+
### Classe de atividade do botão de preencher automaticamente com um toque (opcional)
|
|
445
|
+
|
|
446
|
+
Se você quiser que a mensagem mostre um botão de preenchimento automático com um toque em caso de falha na verificação de qualificação, defina a classe pública de atividade que aceitará o código assim que o usuário tocar no botão.
|
|
447
|
+
|
|
448
|
+
```
|
|
449
|
+
public class ReceiveCodeActivity extends AppCompatActivity {
|
|
450
|
+
|
|
451
|
+
@Override
|
|
452
|
+
protected void onCreate(Bundle savedInstanceState) {
|
|
453
|
+
super.onCreate(savedInstanceState);
|
|
454
|
+
Intent intent = getIntent();
|
|
455
|
+
// retrieve PendingIntent from extras bundle
|
|
456
|
+
PendingIntent pendingIntent = intent.getParcelableExtra("_ci_");
|
|
457
|
+
// verify source of the pendingIntent
|
|
458
|
+
String pendingIntentCreatorPackage = pendingIntent.getCreatorPackage();
|
|
459
|
+
// check if creatorPackage is "com.whatsapp" -> WA consumer app Or
|
|
460
|
+
// "com.whatsapp.w4b" -> WA business app
|
|
461
|
+
if ("com.whatsapp".equals(creatorPackage) || "com.whatsapp.w4b".equals(creatorPackage)) {
|
|
462
|
+
// use OTP code
|
|
463
|
+
String otpCode = intent.getStringExtra("code");
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
### Iniciar o handshake
|
|
470
|
+
|
|
471
|
+
#### Usar o SDK (recomendado)
|
|
472
|
+
|
|
473
|
+
Para executar um handshake, você pode instanciar o objeto `WhatsAppOtpHandler` e passar no seu contexto para o método `.sendOtpIntentToWhatsApp()`:
|
|
474
|
+
|
|
475
|
+
```
|
|
476
|
+
WhatsAppOtpHandler whatsAppOtpHandler = new WhatsAppOtpHandler();
|
|
477
|
+
whatsAppOtpHandler.sendOtpIntentToWhatsApp(context);
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
#### Sem o SDK
|
|
481
|
+
|
|
482
|
+
O exemplo abaixo demonstra uma forma de iniciar o handshake com o app WhatsApp ou WhatsApp Business.
|
|
483
|
+
|
|
484
|
+
```
|
|
485
|
+
public void sendOtpIntentToWhatsApp() {
|
|
486
|
+
// Send OTP_REQUESTED intent to both WA and WA Business App
|
|
487
|
+
sendOtpIntentToWhatsApp("com.whatsapp");
|
|
488
|
+
sendOtpIntentToWhatsApp("com.whatsapp.w4b");
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
private void sendOtpIntentToWhatsApp(String packageName) {
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Starting with Build.VERSION_CODES.S, it will be required to explicitly
|
|
495
|
+
* specify the mutability of PendingIntents on creation with either
|
|
496
|
+
* (@link #FLAG_IMMUTABLE} or FLAG_MUTABLE
|
|
497
|
+
*/
|
|
498
|
+
int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ? FLAG_IMMUTABLE : 0;
|
|
499
|
+
PendingIntent pi = PendingIntent.getActivity(
|
|
500
|
+
getApplicationContext(),
|
|
501
|
+
0,
|
|
502
|
+
new Intent(),
|
|
503
|
+
flags);
|
|
504
|
+
|
|
505
|
+
// Send OTP_REQUESTED intent to WhatsApp
|
|
506
|
+
Intent intentToWhatsApp = new Intent();
|
|
507
|
+
intentToWhatsApp.setPackage(packageName);
|
|
508
|
+
intentToWhatsApp.setAction("com.whatsapp.otp.OTP_REQUESTED");
|
|
509
|
+
// WA will use this to verify the identity of the caller app.
|
|
510
|
+
Bundle extras = intentToWhatsApp.getExtras();
|
|
511
|
+
if (extras == null) {
|
|
512
|
+
extras = new Bundle();
|
|
513
|
+
}
|
|
514
|
+
extras.putParcelable("_ci_", pi);
|
|
515
|
+
intentToWhatsApp.putExtras(extras);
|
|
516
|
+
getApplicationContext().sendBroadcast(intentToWhatsApp);
|
|
517
|
+
}
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
### Verificar se o WhatsApp foi instalado
|
|
521
|
+
|
|
522
|
+
É possível verificar o status de instalação do WhatsApp antes de oferecê-lo como opção caso você acredite que o WhatsApp e seu app estejam presentes no mesmo dispositivo.
|
|
523
|
+
|
|
524
|
+
Primeiro, adicione o seguinte ao seu arquivo `AndroidManifest.xml`:
|
|
525
|
+
|
|
526
|
+
```
|
|
527
|
+
<queries><package android:name="com.whatsapp"/><package android:name="com.whatsapp.w4b"/></queries>
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
Instancie o objeto `WhatsAppOtpHandler`:
|
|
531
|
+
|
|
532
|
+
```
|
|
533
|
+
WhatsAppOtpHandler whatsAppOtpHandler = new WhatsAppOtpHandler();
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
Verifique se o cliente do WhatsApp está instalado passando o método `.isWhatsAppInstalled()` como a cláusula de uma instrução `If`:
|
|
537
|
+
|
|
538
|
+
```
|
|
539
|
+
If (whatsAppOtpHandler.isWhatsAppInstalled(context)) {
|
|
540
|
+
// ... do something
|
|
541
|
+
}
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
## Sinais de erro
|
|
545
|
+
|
|
546
|
+
Consulte [Sinais de erro](/documentation/business-messaging/whatsapp/templates/authentication-templates/error-signals) para ajudar na depuração de erros.
|
|
547
|
+
|
|
548
|
+
## Enviar modelos de autenticação
|
|
549
|
+
|
|
550
|
+
Importante: **primeiro, você precisa iniciar um handshake** entre seu app e o cliente do WhatsApp. Consulte a seção [Handshake](#handshake) acima.
|
|
551
|
+
|
|
552
|
+
### Solicitação
|
|
553
|
+
|
|
554
|
+
Use o ponto de extremidade em [Número de telefone do WhatsApp Business > Mensagens](/documentation/business-messaging/whatsapp/reference/whatsapp-business-phone-number/message-api) para enviar uma [mensagem de modelo de autenticação com um botão de senha descartável](/documentation/business-messaging/whatsapp/templates/authentication-templates/authentication-templates).
|
|
555
|
+
|
|
556
|
+
### Sintaxe da solicitação
|
|
557
|
+
|
|
558
|
+
```
|
|
559
|
+
curl -X POST "https://graph.facebook.com/<API_VERSION>/<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages" \
|
|
560
|
+
-H "Authorization: Bearer <ACCESS_TOKEN>" \
|
|
561
|
+
-H "Content-Type: application/json" \
|
|
562
|
+
-d '
|
|
563
|
+
{
|
|
564
|
+
"messaging_product": "whatsapp",
|
|
565
|
+
"recipient_type": "individual",
|
|
566
|
+
"to": "<CUSTOMER_PHONE_NUMBER>",
|
|
567
|
+
"type": "template",
|
|
568
|
+
"template": {
|
|
569
|
+
"name": "<TEMPLATE_NAME>",
|
|
570
|
+
"language": {
|
|
571
|
+
"code": "<TEMPLATE_LANGUAGE_CODE>"
|
|
572
|
+
},
|
|
573
|
+
"components": [
|
|
574
|
+
{
|
|
575
|
+
"type": "body",
|
|
576
|
+
"parameters": [
|
|
577
|
+
{
|
|
578
|
+
"type": "text",
|
|
579
|
+
"text": "<ONE-TIME PASSWORD>"
|
|
580
|
+
}
|
|
581
|
+
]
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"type": "button",
|
|
585
|
+
"sub_type": "url",
|
|
586
|
+
"index": "0",
|
|
587
|
+
"parameters": [
|
|
588
|
+
{
|
|
589
|
+
"type": "text",
|
|
590
|
+
"text": "<ONE-TIME PASSWORD>"
|
|
591
|
+
}
|
|
592
|
+
]
|
|
593
|
+
}
|
|
594
|
+
]
|
|
595
|
+
}
|
|
596
|
+
}'
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
### Parâmetros de solicitação
|
|
600
|
+
|
|
601
|
+
Espaço reservado
|
|
602
|
+
|
|
603
|
+
Descrição
|
|
604
|
+
|
|
605
|
+
Exemplo de valor
|
|
606
|
+
|
|
607
|
+
`<CUSTOMER_PHONE_NUMBER>`
|
|
608
|
+
|
|
609
|
+
O número de telefone do WhatsApp do cliente.
|
|
610
|
+
|
|
611
|
+
`12015553931`
|
|
612
|
+
|
|
613
|
+
`<ONE-TIME PASSWORD>`
|
|
614
|
+
|
|
615
|
+
A senha descartável ou o código de verificação que será entregue ao cliente.
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
Esse valor precisa aparecer duas vezes na carga.
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
Máximo de 15 caracteres.
|
|
622
|
+
|
|
623
|
+
`J$FpnYnP`
|
|
624
|
+
|
|
625
|
+
`<TEMPLATE_LANGUAGE_CODE>`
|
|
626
|
+
|
|
627
|
+
O [código de localidade e idioma](/documentation/business-messaging/whatsapp/templates/supported-languages) do modelo.
|
|
628
|
+
|
|
629
|
+
`en_US`
|
|
630
|
+
|
|
631
|
+
`<TEMPLATE_NAME>`
|
|
632
|
+
|
|
633
|
+
O nome do modelo.
|
|
634
|
+
|
|
635
|
+
`verification_code`
|
|
636
|
+
|
|
637
|
+
### Resposta
|
|
638
|
+
|
|
639
|
+
Se o processo for bem-sucedido, a API enviará a seguinte resposta:
|
|
640
|
+
|
|
641
|
+
```
|
|
642
|
+
{
|
|
643
|
+
"messaging_product": "whatsapp",
|
|
644
|
+
"contacts": [
|
|
645
|
+
{
|
|
646
|
+
"input": "<INPUT>",
|
|
647
|
+
"wa_id": "<WA_ID>"
|
|
648
|
+
}
|
|
649
|
+
],
|
|
650
|
+
"messages": [
|
|
651
|
+
{
|
|
652
|
+
"id": "<ID>"
|
|
653
|
+
}
|
|
654
|
+
]
|
|
655
|
+
}
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
### Parâmetros de resposta
|
|
659
|
+
|
|
660
|
+
Espaço reservado
|
|
661
|
+
|
|
662
|
+
Descrição
|
|
663
|
+
|
|
664
|
+
Exemplo de valor
|
|
665
|
+
|
|
666
|
+
`<INPUT>`
|
|
667
|
+
|
|
668
|
+
_String_
|
|
669
|
+
|
|
670
|
+
O número de telefone do cliente para quem a mensagem foi enviada. Talvez esse valor não corresponda a `wa_id`.
|
|
671
|
+
|
|
672
|
+
`+16315551234`
|
|
673
|
+
|
|
674
|
+
`<WA_ID>`
|
|
675
|
+
|
|
676
|
+
_String_
|
|
677
|
+
|
|
678
|
+
O ID do cliente para quem a mensagem foi enviada. Talvez esse valor não corresponda a `input`.
|
|
679
|
+
|
|
680
|
+
`+16315551234`
|
|
681
|
+
|
|
682
|
+
`<ID>`
|
|
683
|
+
|
|
684
|
+
_String_
|
|
685
|
+
|
|
686
|
+
ID da mensagem do WhatsApp. Use o ID listado depois de "wamid." para acompanhar o status da mensagem.
|
|
687
|
+
|
|
688
|
+
`wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI3N0EyQUJDMjFEQzZCQUMzODMA`
|
|
689
|
+
|
|
690
|
+
### Exemplo de solicitação
|
|
691
|
+
|
|
692
|
+
```
|
|
693
|
+
curl -L 'https://graph.facebook.com/v24.0/105954558954427/messages' \
|
|
694
|
+
-H 'Content-Type: application/json' \
|
|
695
|
+
-H 'Authorization: Bearer EAAJB...' \
|
|
696
|
+
-d '{
|
|
697
|
+
"messaging_product": "whatsapp",
|
|
698
|
+
"recipient_type": "individual",
|
|
699
|
+
"to": "12015553931",
|
|
700
|
+
"type": "template",
|
|
701
|
+
"template": {
|
|
702
|
+
"name": "verification_code",
|
|
703
|
+
"language": {
|
|
704
|
+
"code": "en_US"
|
|
705
|
+
},
|
|
706
|
+
"components": [
|
|
707
|
+
{
|
|
708
|
+
"type": "body",
|
|
709
|
+
"parameters": [
|
|
710
|
+
{
|
|
711
|
+
"type": "text",
|
|
712
|
+
"text": "J$FpnYnP"
|
|
713
|
+
}
|
|
714
|
+
]
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"type": "button",
|
|
718
|
+
"sub_type": "url",
|
|
719
|
+
"index": "0",
|
|
720
|
+
"parameters": [
|
|
721
|
+
{
|
|
722
|
+
"type": "text",
|
|
723
|
+
"text": "J$FpnYnP"
|
|
724
|
+
}
|
|
725
|
+
]
|
|
726
|
+
}
|
|
727
|
+
]
|
|
728
|
+
}
|
|
729
|
+
}'
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
### Exemplo de resposta
|
|
733
|
+
|
|
734
|
+
```
|
|
735
|
+
{ "messaging_product": "whatsapp", "contacts": [ { "input": "12015553931", "wa_id": "12015553931" } ], "messages": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI4Qzc5QkNGNTc5NTMyMDU5QzEA" } ]}
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
Você achou esta página útil?
|
|
739
|
+
|
|
740
|
+

|
|
741
|
+
|
|
742
|
+

|