Preguntas frecuentes de desarrolladores
Account Kit

Si recibes un error como "Se produjo un error" y tienes problemas para identificar la causa, puedes activar mensajes de error más detallados en los que se incluya información más práctica. Consulta la documentación incluida en https://developers.facebook.com/docs/accountkit/webjs/reference para obtener más información sobre la marca "debug" del método init() del SDK.

Gracias a la verificación instantánea de Account Kit, se omite el envío de un código de verificación por SMS cuando los consumidores de Android ingresan un número de teléfono que coincide con el que se especificó en Facebook.

Esto solo es posible si la persona en cuestión utiliza la aplicación de Facebook para Android. Si no encontramos una coincidencia, se la dirigirá al proceso de inicio de sesión habitual, por lo que se le enviará un código de verificación por SMS.

En Account Kit, encontrarás la interfaz de usuario localizada en los idiomas que figuran en la lista incluida en https://developers.facebook.com/docs/accountkit/languages.

No, solo admitimos que se enlace al SDK para JavaScript a través de https://sdk.accountkit.com/en_US/sdk.js. Este script recupera el cargador del SDK, que cargará el SDK más reciente desde accountkit.com o desde la caché de tu navegador.

En los casos en los que quieras alojar el SDK a través de tu propio servidor, existe un período de gracia de 24 horas. Una vez que finalice este período de gracia, el SDK comenzará a emitir advertencias y dejará de funcionar después de 7 días.

Establece el parámetro enableSendToFacebook (en iOS) o setFacebookNotificationsEnabled (en Android) como "true".

Los usuarios que inicien sesión en tu aplicación recibirán el mensaje de confirmación a través de las notificaciones de Facebook si no se puede entregar el SMS correspondiente y si el número de teléfono que utilizan coincide con el número principal que tienen asociado a la cuenta de Facebook.

Debes agregar el permiso INTERNET para llamar a los métodos de la API. Además, puedes agregar otros permisos para reducir los problemas durante el proceso de inicio de sesión:

  • Para el acceso por SMS, agrega los permisos RECEIVE_SMS y READ_PHONE_STATE.
  • Para las funciones de correo electrónico, agrega el permiso GET_ACCOUNTS.

Puedes obtener más información sobre cómo integrar Account Kit en tu aplicación para Android aquí.

SDK para Android

Cuando el usuario abre el cuadro de diálogo de contenido compartido o de noticias para celulares, pero lo cierra cancelándolo, se notificará a la aplicación a través del método de devolución de llamada "onSuccess()". Puedes considerar la devolución de llamada "onSuccess()" como un mecanismo para indicar que se cerró correctamente el cuadro de diálogo de alguna manera, pero no puedes usarlo para establecer si algo se publicó realmente. Si el usuario también le otorgó a la aplicación el alcance del permiso "publish_actions", se invocará el método de devolución de llamada "onCancel()" en el momento de la cancelación.

Para conocer todos los detalles de la clase "FacebookCallback", consulta la documentación de referencia.

El botón "Me gusta" (LikeView) funciona igual que el botón "Me gusta" basado en la web. La mayoría de las URL basadas en Facebook no se pueden usar por razones de privacidad. Esto excluye a las páginas y la página de inicio de Facebook.

Puedes realizar una comprobación preliminar usando la vista previa del botón "Me gusta".

Este comportamiento es intencional. Recibimos muchos reportes de spam y uso abusivo de esta función, así que decidimos aplicar este cambio para mejorar la experiencia general del usuario.

Para obtener información sobre mejores formas de compartir en Android, consulta aquí.

Revisión de la app

We’ve moved all Messenger permissions to the Permissions and Features page.

We've consolidated this into one Permissions and Features page for Business apps, where you can see what access levels you have for each permission and feature.

Yes, developers may opt out of the Business app type and return to the previous App Review process for their app by selecting “Change App Type” on the App Dashboard. However, developers may not opt back into the Business app type and will need to create a new app to do so.

Additionally, apps previously in Development Mode that opt out to the legacy experience that have been approved for Advanced Access via App Review in the new model will lose access to data beyond what their business or anyone with a role on their app owns until they turn their app to Live Mode.

We have replaced Development and Live Mode with Standard and Advanced Access. Standard Access is always active and allows you to access data that a developer’s business or anyone with a role on their app owns. You may submit for App Review for permissions and features to access data owned by other businesses or people. Refer to our Access Levels document to learn more.

Business apps designed to help businesses and organizations manage Pages, Groups, Events, Ads, and ad-related assets.

A continuación, se detallan los motivos por los cuales tu app perdió los permisos luego de la aprobación inicial:
  • La app se trasladó a una empresa diferente no verificada. Todos los permisos aprobados previamente se bloquearon.
    • Si la app se traslada nuevamente a la empresa verificada, los permisos se desbloquearán.
  • La app está marcada como Proporciona servicios a otras empresas, pero se trasladó después a una empresa diferente que no se verificó.

Yes, ALL apps that leverage permissions that require review (Pages API, Groups API, Events API, Business Manager API, Instagram Graph API, Messenger Platform, extended Facebook Login permissions, Marketing API and Lead Ads API) must submit for app review in adherence with the communicated deadlines.

Active apps that leverage permissions with an August 1st deadline (Pages API, Groups API, Events API, Business Manager API, Instagram Graph API, Messenger Platform, extended Facebook Login permissions) and have not yet proactively submitted for review will be auto-enrolled in the review process. You can accelerate the App Review process by submitting your app for review prior to auto-enrollment. This will give you more control over when your app is reviewed and what information is used for the review.

Para obtener más detalles, consulta esta página. El proceso te ofrecerá la oportunidad de proporcionar detalles sobre los permisos que necesitas y el modo en que se usarán. Facebook revisará el caso de uso y determinará si es admisible de acuerdo con nuestra política. Luego de la revisión de permisos, en función de la API o del permiso, es posible que solicitemos el cumplimiento de requisitos adicionales, como la verificación del negocio y la firma del contrato.

La revisión de apps se requiere en función del nivel del identificador de la app. Cada app individual que use esos permisos o funciones debe someterse a revisión.

Yes, if your apps have made calls to the Graph API in the last 28 days as of July 31, 2018 and require access to the reviewable permissions with an August 1st deadline, your app will be auto-enrolled in the app review process. We will notify you when we have a process available to send us the additional information needed to complete the review process.

As we announced earlier this year, all apps accessing the Pages API, Groups API, Events API, Business Manager API, Instagram Graph API, Messenger Platform, and Facebook Login were expected to submit for app review by August 1.

To help protect the integrity of our platform, we have removed API access for apps that require these permissions, have not gone through app review, and have not been active within the last 28 days as of July 31, 2018. If you still need access to our APIs, we encourage you to submit for review through your app's App Dashboard.

All active apps that require these permissions will be auto-enrolled in app review in the coming weeks. Developers will be notified if we require additional information to complete the app review submission. If responses are not received in the allocated timeframe, reviewable API access will be disabled.

Si se requiere información adicional para tu solicitud actual, tendrás 30 días a partir de la recepción de la solicitud para resolver el problema y volver a enviar la solicitud de revisión. Durante esos 30 días, es posible que el equipo de revisión de apps te pida más información. Ten en cuenta que el período de 30 días no se reiniciará cada vez que vuelvas a enviar la solicitud durante ese período.

Si deseas probar una función o un permiso nuevo luego de que tu app se haya revisado y publicado, usa la función Crear app de prueba en el panel de apps para crear un clon de tu app de producción. En el panel de la app de producción, haz clic en la flecha hacia abajo junto al nombre de la app en el panel de navegación izquierdo superior y haz clic en Crear app de prueba. El clon de la app, que se creó con el estado En desarrollo, les permite a todos los roles de la app acceder a todas las funciones y a todos los permisos.

Si los clientes son también los "dueños" de la app, entonces deben efectuar el proceso ellos mismos como desarrolladores directos. Si los clientes tienen un desarrollador externo como "dueño" de la app, entonces es el desarrollador quien efectuará el proceso.

Debes solicitar los permisos leads_retrieval y pages_manage_ads.

Puedes proporcionar una captura de video de tu integración o, si tu aplicación no cuenta con una experiencia de usuario final, puedes facilitar al menos dos capturas de pantalla en las que se muestre la configuración de tu página, tu CRM o tu administrador comercial. Además, deberás incluir el identificador de la página que usarás con estos productos.

En nuestra documentación de aplicaciones de servidor a servidor también encontrarás normas para completar la revisión de aplicaciones que no disponen de interfaz de usuario.

El proceso de revisión de apps hace referencia a las apps que requieren determinados permisos de la API. Puedes obtener información sobre los permisos que se requieren para la revisión aquí. La configuración del SDK no requiere la revisión de apps. Sin embargo, el SDK no permite que las apps se comuniquen con las API de Facebook; por lo tanto, si esas API requieren revisión, se deberá enviar la solicitud de revisión de la app.

Si ya tienes una cuenta de administrador comercial, te recomendamos que conectes la app a la cuenta existente.

Si el negocio posee varias cuentas de administrador comercial, recomendamos determinar el motivo por el que existen varias cuentas y alinear la app con el administrador comercial más adecuado. Si el negocio tiene una línea de crédito configurada mediante el administrador comercial, recomendamos conectar la app a la cuenta que tenga la línea de crédito.

Si los desarrolladores quieren usar información adicional relativa a la configuración, listas blancas o el perfil del usuario de prueba, tienen la oportunidad de especificar este tipo de usuario. Si no especifican uno, usaremos uno de los nuestros. Tienes que marcar el campo como opcional, pero no debería bloquearse si no lo completas.

La revisión de apps se debe realizar en cada app. Te recomendamos que revises el panel de apps para obtener la lista específica de los permisos que requieren revisión.

La verificación del negocio se requiere una vez por cada administrador comercial. Si eliges asociar todas tus apps al mismo administrador comercial, entonces deberás pasar por la verificación del negocio una sola vez.

La app debe estar vinculada al administrador comercial del negocio que, en definitiva, sea el propietario de la app y tenga acceso a los datos que se generan desde ella. Ese negocio es el que debe someterse al proceso de verificación del negocio.

Puedes consultar el estado de contratos o de verificación de negocios, además de los pasos que debes realizar, en el panel de verificación de empresas, disponible en la pestaña de revisión del panel de apps. Durante todo el proceso, te enviaremos notificaciones para avisarte qué acciones debes realizar.

You need to initiate app review before August 1, 2018 for these APIs: Pages API, Groups API, Events API, Instagram Platform API, Messenger Platform, Business Manager API, and Facebook Login.

You need to initiate App Review before February 1, 2019 for these APIs and features: the Marketing API and the Lead Ads Retrieval feature.

Actualmente, tenemos un mayor volumen de solicitudes. El proceso completo puede demorar varias semanas.

  • La revisión de permisos puede tardar varias semanas. Puedes encontrar las últimas actualizaciones sobre los plazos aquí.
  • La verificación del negocio debería demorar algunos días; sin embargo, esto dependerá de la calidad de la documentación.
  • La firma del contrato se puede completar tan pronto como el funcionario designado lo firme.

Como parte del proceso de revisión, se te solicitará información de la empresa, como la razón social, la dirección y el número de teléfono. Además, deberás presentar documentación de la empresa, como comprobantes de pago de servicios públicos, licencias, certificado de constitución o acta constitutiva.

A partir del 1 de agosto de 2018, solo debes verificar el administrador comercial al que la app está conectada.

A medida que estén disponibles API nuevas, se deberán solicitar a través de la revisión de apps. Sin embargo, la verificación del negocio solo se requiere una vez por entidad del administrador comercial; por lo tanto, no deberá solicitarse la verificación del negocio nuevamente si se requieren permisos o API nuevos para la app.

Todas las aplicaciones existentes que llamen a los permisos ampliados de inicio de sesión con Facebook y a las seis API (de páginas, grupos, eventos, del administrador comercial, Messenger e Instagram) deberán someterse al nuevo proceso de revisión de aplicaciones, donde se incluye la verificación del negocio y la firma de contratos. Ten en cuenta que no es necesario completar el proceso antes de esta fecha, pero sí enviar la solicitud. Si no se envía una solicitud antes del 1 de agosto de 2018, al día siguiente se perderá el acceso a dichas API.

Aquellas aplicaciones que llamen a la API de marketing y de recuperación de anuncios para clientes potenciales también deben enviar una solicitud para la revisión, donde también se llevará a cabo la verificación del negocio y la firma de contratos, antes del 1 de febrero de 2019.

Para obtener más información, visita esta página. En este proceso, debes facilitar información sobre los permisos que necesitas, así como especificar el uso que harás de ellos. Facebook revisará cada caso de uso y determinará si están permitidos de acuerdo con nuestra política. Tras la revisión de los permisos y en función de la API y dichos permisos, es posible que establezcamos requisitos adicionales, como la verificación del negocio y la firma de un contrato.

Los negocios solo deben verificarse una vez. En el caso de los contratos, también deben firmarse una sola vez para el negocio. No obstante, si se envían más aplicaciones, estas deberán revisarse, pero no será necesario realizar el proceso de verificación.

La necesidad de revisar una aplicación se determina por el identificador de la aplicación. Todas aquellas aplicaciones que empleen estos permisos o funciones deben enviarse a revisión.

El 1 de mayo de 2018 anunciamos un nuevo proceso de revisión de aplicaciones obligatorio para el inicio de sesión con Facebook (permisos ampliados) y seis API (de páginas, grupos, eventos, del administrador comercial, Messenger e Instagram). Por lo tanto, para conservar el acceso a dichas API y poder usar estos permisos, se deberá superar este proceso antes del 1 de agosto de 2018.

Asimismo, el día 2 de julio de este año también anunciamos otras API que requieren la revisión de aplicaciones: la API de marketing y de recuperación de anuncios para clientes potenciales. En este caso, se deberá enviar la aplicación a revisión antes del 1 de febrero de 2019 para poder seguir accediendo a estas API. Puedes obtener más información sobre los plazos establecidos aquí.

No se realizaron cambios a las API del administrador comercial en la API Graph versión 3.0. Las apps que soliciten acceso a los permisos "Business_Management" deberán pasar por la revisión de Facebook.

No se realizaron cambios a la política de revisión de apps de Facebook que afecten a las apps que usan la API de marketing de Facebook. Para obtener información sobre los cambios a la API, consulta el registro de cambios de la API Graph.

Sí. Las apps solo pueden acceder al nombre de usuario, la dirección de correo electrónico y la imagen del perfil sin la revisión de apps. Todos los permisos restantes requerirán la revisión de Facebook.

La API de Instagram no se ve afectada por la versión 3.0 de la API Graph. Sin embargo, todas las apps que usan la API de Instagram deben someterse a la revisión de Facebook.

En la versión 3.0 de la API Graph, las apps que acceden a eventos deben usar el permiso user_events. Las apps que usan ese permiso deben someterse a la revisión de Facebook.

El permiso user_managed_groups quedó obsoleto en la versión 3.0 de la API Graph. En su lugar, las apps pueden usar la nueva API de grupos junto con los permisos publish_groups y read_groups_user_data. La API y los permisos nuevos requieren que la app se someta a la revisión de Facebook.

El permiso publish_actions quedó obsoleto en la versión 3.0 de la API Graph. Las apps aún pueden publicar historias a través de experiencias mediadas, como el cuadro de diálogo de contenido compartido de Facebook en la web o las hojas de contenido compartido para iOS o Android. Las apps pueden publicar en grupos mediante el permiso publish_groups, que requiere que la app se someta a revisión.

Sí. En la versión 3.0, todas las API de la plataforma de Messenger se incluyen en el permiso "pages_messaging" y requieren revisión.

Sí. Las apps que acceden al contenido de las páginas públicas deben solicitar la función "Acceso a contenido público de páginas" y la revisión de Facebook.

Durante el proceso de revisión, nuestro equipo sigue tus instrucciones para reproducir el modo en que la app utiliza los permisos. Si no podemos replicar esta experiencia, por ejemplo, porque no hay forma de seguir las instrucciones o porque no es posible iniciar sesión, no se aprobará la solicitud.

Para evitarlo, realiza lo siguiente:

  • Proporciona una versión funcional de la app que utiliza el permiso.
  • Asegúrate de que las instrucciones de la sección "Agregar notas" sean claras.
  • Asegúrate de que los permisos de inicio de sesión solicitados personalicen la experiencia del usuario y cumplan nuestros principios.

En particular, en el caso del permiso "publish_actions", comprueba que la funcionalidad de publicación de la app esté configurada correctamente. Durante el proceso de revisión, debemos ser capaces de publicar el contenido de tu app en Facebook.

El proceso de revisión de apps consiste en cargar la app en cada una de las plataformas compatibles, iniciar sesión con Facebook y usar todas las integraciones con Facebook que solicitas en la revisión. Durante el proceso, se puede producir lo que denominamos "problemas generales". Se trata de errores o fallos relacionados con la carga de la app, el inicio de sesión y otras funcionalidades generales. Esto significa que no pudimos probar los permisos indicados en tu solicitud.

Como son problemas que nos impiden comprobar las funciones de Facebook que enviaste para revisión, no podemos comentar en detalle el uso que la app hace de ellas. Por ese motivo, la rechazamos por "problemas generales" y ofrecemos comentarios sobre cada plataforma.

Si el rechazo de la revisión es por "problemas generales", lee atentamente todos los comentarios. Recibirás comentarios y explicaciones correspondientes a cada plataforma sobre los problemas que se produjeron durante la revisión.

La respuesta de la revisión incluirá una explicación clara de por qué se rechazó la app, así como los próximos pasos que debes seguir. Queremos que el proceso sea lo más rápido posible, así que lee detenidamente estos comentarios. Una vez que realices los cambios necesarios, podrás volver a solicitar la revisión.

Si tu aplicación utiliza un permiso de un modo que no es admisible, se te indicará en los comentarios. En ese caso, no debes solicitar de nuevo la revisión.

A fin de obtener la aprobación para el centro de apps, la app debe cumplir nuestros requisitos. Los requisitos del centro de apps de Facebook incluyen utilizar el inicio de sesión con Facebook o tener una app en Canvas de Facebook.

Estas son las apps que pueden aparecer en el centro de apps:

Los activos de texto y las imágenes promocionales también deben cumplir nuestras normas.

Si utilizas el cuadro de diálogo de contenido compartido o cualquier otro plugin social para publicar contenido en Facebook, no es necesario que solicites la revisión. Si no estás seguro, puedes obtener más información en nuestra documentación sobre revisión general.

Incentivar a las personas a usar plugins sociales o el botón "Me gusta" infringe la sección 4.5 de la Política de la plataforma. Eso incluye ofrecer recompensas o condicionar apps o contenido de estas a cambio de que una persona indique que le gusta una página. "User_likes" no se aprueba para estos propósitos.

Para garantizar conexiones de calidad y ayudar a que las empresas lleguen a las personas que les importan, queremos que las personas indiquen que les gustan las páginas porque quieren conectarse con la empresa y recibir noticias de ella, no debido a incentivos artificiales. Creemos que esta política beneficia tanto a los usuarios como a los anunciantes.

Para completar su trabajo, el equipo de revisión puede necesitar credenciales de inicio de sesión nuevas.

Si la aplicación necesita un inicio de sesión secundario antes o después del inicio de sesión con Facebook, asegúrate de proporcionarnos los nombres de usuario y las contraseñas correspondientes. Esto puede incluir credenciales de inicio de sesión para un servidor de pruebas o de demostración, un inicio de sesión secundario para la app o un proceso de registro de correo electrónico.

Las apps alojadas en servidores de almacenamiento temporal o de desarrollo pueden necesitar un inicio de sesión adicional para acceder a dicho servidor. Proporciona también estas credenciales.

Si aún no estás seguro de qué credenciales faltan, puedes incluir en tu próxima solicitud un video que muestre la opción de inicio de sesión con Facebook y todas las integraciones con Facebook relevantes de las que busques aprobación.

Para aprobar tu app, el equipo de revisión tiene que iniciar sesión en ella y comprobar todas las integraciones con Facebook.

Si el revisor no fue capaz de cargar o utilizar la app, asegúrate de lo siguiente:

  • que la URL de la app sea de acceso público y no esté configurada como un host local;
  • que proporcionaste el nombre de usuario y la contraseña necesarios para acceder a tu sitio de desarrollo o almacenamiento provisional;
  • que los certificados de seguridad de tu sitio estén actualizados y no provoquen errores para los nuevos usuarios;
  • que eres capaz de iniciar sesión y utilizar la app con un usuario de prueba recién creado;
  • que los elementos enviados para su revisión estén correctamente creados y funcionen en la app.

Si se vuelve a rechazar la solicitud por el mismo motivo, actualiza las instrucciones de revisión o la sección Agregar notas para solicitar al revisor que te aclare el problema o que te proporcione más información.

Una captura de video es un modo excelente de guiarnos por la app y mostrarnos cómo utilizas los permisos solicitados. Estas son algunas prácticas recomendadas y algunos recursos de terceros para realizar una captura de video:

El video debe mostrar cómo la app usa cada uno de los permisos que solicita. Si solicitas el permiso "publish_actions", también deberá mostrar cómo se crea contenido en la app y se comparte en Facebook.

El identificador de la app de Facebook creado para tu juego instantáneo no se puede usar para ninguna otra plataforma. Puedes consultar más información en nuestra documentación.

Nuestro equipo de revisión utilizará las instrucciones que le proporciones para probar la integración de la app con Facebook.

Si crees que los revisores rechazaron de forma incorrecta la app, vuelve a enviarla con instrucciones actualizadas que nos aporten más información.

El proceso de revisión es el mejor modo de comunicarte con el revisor, así que actualiza las notas para responder a cualquier comentario recibido.

Nuestro equipo de revisión utiliza varios usuarios de prueba y no siempre usa los que nos proporcionan los desarrolladores. Si es necesario que una app se revise utilizando un usuario de prueba específico, infórmalo en las instrucciones de revisión.

Si proporcionas un usuario de prueba, asegúrate de haberlo creado correctamente y adjuntado a la solicitud.

No. Una vez que se te concedió un permiso, puedes utilizarlo en cualquier versión de la app y en cualquier plataforma.

Si amplías y desarrollas la app en una nueva plataforma, no es necesario enviarla para revisión. Solo deberás enviarla de nuevo si quieres solicitar un nuevo permiso, por ejemplo, cuando agregues una nueva función. Cambiar y enviar detalles de la app o acciones de Open Graph no afecta tus permisos aprobados.

Si tu app es un juego y aparece en Canvas de Facebook

Puedes invitar nuevos usuarios a tu juego mediante los siguientes métodos:

  • Cuadro de diálogo de solicitudes. Al usar el cuadro de diálogo de solicitudes, puedes establecer "filters=app_non_users" para filtrar el cuadro de diálogo y que muestre únicamente a las personas que no utilizan la app. Si la app aparece en Canvas, también puedes usar el cuadro de diálogo de solicitudes en iOS y Android.
  • API de invitación de amigos. Si tu aplicación es un juego y quieres crear tu propio selector de amigos, puedes usar la API de invitación de amigos, que devuelve una lista de los amigos que no usan la app. Una vez que hayas seleccionado varios amigos a los que deseas invitar, puedes pasar los tokens devueltos por la API de invitación de amigos al campo del cuadro de diálogo de solicitudes para enviar las invitaciones.

Si tu aplicación no aparece en Canvas de Facebook

Puedes utilizar el cuadro de diálogo de mensajes en iOS y Android, o el cuadro de diálogo de envío en la web. Estos productos permiten a una persona enviar un mensaje con un enlace a la app directamente a sus amigos.

Este tipo de mensajes es un canal estupendo para crear una comunicación directa con un número reducido de personas. Los cuadros de diálogo de mensajes y de envío incluyen un encabezado que permite seleccionar fácilmente varios amigos para enviarles la invitación.

Actualmente, no se requiere la revisión de apps si solo usan la app los usuarios que tienen un rol en ella y los que solo publican en sus propias biografías o páginas. Sin embargo, a partir del 1 de agosto de 2018, las apps ya no podrán publicar en la biografía de los usuarios, y toda app que permita a los usuarios publicar en grupos o páginas deberá someterse a la revisión de apps.

Nuestro equipo de revisión prueba cómo la app usa cada uno de los permisos en cada una de las plataformas que indicaste en la sección de configuración de la app. El revisor se asegura de que la integración del inicio de sesión con Facebook sea correcta y de que todos los permisos solicitados se adhieran a nuestros principios y normas de utilidades, al mismo tiempo que proporcionan una experiencia del usuario mejorada.

Consulta nuestros principios y normas de utilidades para obtener más información.

Antes de aprobar la solicitud de "user_likes", el revisor tiene que confirmar que la app proporciona a los usuarios una experiencia única basada en la información de "Me gusta" recibida. Para ello, el equipo de revisión probará la app con una variedad de usuarios de prueba, cada uno con un conjunto distinto de gustos e intereses.

Al enviar una solicitud de "user_likes", debes escribir instrucciones detalladas que incluyan lo siguiente:

  • una explicación clara de por qué solicitas "user_likes" y cómo mejora la experiencia de la persona en la app;
  • una lista de páginas de ejemplo para que los revisores indiquen que les gustan y puedan comprobar el uso de "user_likes". Proporciona enlaces directos a las páginas que el revisor debe indicar que le gustan antes de probar la app.

Si utilizas "user_likes" como parte de un algoritmo, es importante que el revisor pueda ver su resultado y cómo influye en el contenido que se muestra a las personas.

En ciertos casos, puede ser necesario que el revisor reproduzca un comportamiento o una experiencia que solo está disponible para un usuario de prueba específico. Si es así, puedes agregar este usuario a la solicitud en la página "Revisión de apps". En la sección "Elementos en revisión", verás el apartado "Usuario de prueba (opcional)", que te permite escribir el nombre del usuario que quieres que se utilice en la revisión.

Los únicos usuarios de prueba disponibles aquí son los indicados como tales en la sección "Roles" de la app. No compartas en las instrucciones de revisión credenciales de inicio de sesión con Facebook de usuarios.

Obtén más información sobre cómo crear un usuario de prueba.

No, no necesitas enviarla a revisión para poner en circulación anuncios de instalación de apps para celulares. Solo necesitas una aplicación activa en iTunes App Store o Google Play Store. Puedes seguir nuestra guía para crear anuncios de instalación de apps para celulares.

Debes explicar exactamente cómo probar cada permiso o función de la app, de modo que nos aseguremos de que funciona y cumple nuestras políticas. No es posible aprobar una app si no podemos probar exhaustivamente cómo se integra con Facebook. Si proporcionas instrucciones detalladas, será menos probable que debas volver a enviarla para revisión.

Por cada permiso que solicites, indica las instrucciones de reproducción paso a paso. Todas las instrucciones deben estar en inglés.

Las instrucciones deben evitar:

  • hacer referencia a instrucciones o documentación de solicitudes anteriores;
  • resumir lo que hace la app (en lugar de dar indicaciones);
  • dar detalles técnicos sobre el funcionamiento de tu API.

Este es un buen ejemplo de instrucciones paso a paso:

  1. Presiona el botón "Configuración" en el menú de la izquierda.
  2. Selecciona Iniciar sesión con Facebook.
  3. Realiza el tercer paso.
  4. Realiza el cuarto paso.

Si aún no estás seguro de lo que debes incluir, consulta más ejemplos en la sección de ejemplos de la revisión de apps.

Debido a cambios en el proceso de revisión y al alto volumen de solicitudes que se esperan recibir, es posible que nos lleve varias semanas completar el proceso de revisión de las apps enviadas.

Debes proporcionar toda la información posible para ayudar al revisor, incluidas capturas de pantalla claras, instrucciones paso a paso detalladas y capturas de video de la app y su integración con Facebook.

Las apps que usan productos compartidos de terceros, como plugins sociales, cuadros de diálogo y hojas de uso compartido, o un subconjunto de inicio de sesión con Facebook, no deben someterse a la revisión de Facebook. Para obtener más información sobre los requisitos de revisión, consulta la documentación Revisión de apps.

Revisamos tu app para que la experiencia en Facebook sea de alta calidad en todas las plataformas. En general, las personas deben ser conscientes de que están iniciando sesión y publicando en Facebook. Además, deben tener la posibilidad de controlar la información que comparten con tu app o en Facebook.

Nota: Las personas que se incluyen en la pestaña "Roles" de la app tendrán acceso a permisos ampliados sin pasar por la revisión (por ejemplo, user_posts). Sin embargo, cuando la app se publica, debe pasar por la revisión de apps para poder acceder a la información, incluso en el caso de las personas que tengan roles en la app.

Todas las funciones de la app deben estar disponibles cuando la app está en modo de desarrollo, pero solo podrás acceder a tus datos, a los datos del usuario de prueba y a los datos de tus páginas. Si deseas publicar tu app, incluso si eres el único usuario, esta debe pasar por la revisión de apps.

Administrador comercial

Si solicitas una lista de las páginas de un negocio mediante el extremo /BUSINESS_ID/pages, no podrás solicitar todos los campos de la página. Además, es posible que la API responda con el error (#100) Unknown fields: <FIELD_NAME>.

Esto es debido a que este extremo no devuelve un objeto de página como otros extremos parecidos y también incluye, por ejemplo, solicitudes pendientes que no se aprobaron. Por lo tanto, no es posible devolver campos de la página mediante la expansión de estos.

En su lugar, puedes usar los extremos <BUSINESS_ID>/owned_pages o <BUSINESS_ID>/client_pages, que deberían devolver objetos de página y ser compatibles con la expansión de campos.

Para enviar una solicitud a una página verificada, un ejecutivo de cuenta de Facebook debe configurar el negocio para que se pueda hacer este tipo de solicitudes a la organización asociada con la página. Los negocios que no cuenten con un ejecutivo de cuenta de Facebook no podrán enviar estas solicitudes.

Comprobación de uso de datos

En la comprobación de uso de datos, el administrador de una app debe hacer lo siguiente:
1. Revisar los permisos y las funciones aprobados de una app
2. Certificar que la app cumple el uso permitido
3. Certificar el cumplimiento de las Condiciones de la plataforma de Facebook y las Políticas para desarrolladores junto con todas las demás condiciones y políticas

La comprobación de uso de datos y la revisión de apps son dos medidas de integridad de la plataforma diferentes, pero relacionadas. La revisión de apps es un proceso prospectivo que limita el acceso a ciertos permisos de la plataforma de Facebook y requiere que los desarrolladores envíen una solicitud, que luego nuestro equipo de operaciones para desarrolladores revisa de forma manual, para justificar el acceso a ella. Luego de que se concede acceso a la plataforma, la comprobación de uso de datos es un proceso anual que requiere que los desarrolladores certifiquen que su uso continuo de los datos de Facebook cumple nuestras Condiciones de la plataforma y las Políticas para desarrolladores.

Debes certificar el uso para cada app que tu negocio administre.

Los desarrolladores que administren muchas apps podrán completar la comprobación de uso de datos para varias apps de una sola vez. Puedes acceder a este flujo desde la página "Mis apps" del panel de apps. Desde allí, verás todas las apps de las que eres administrador, podrás filtrar un subconjunto (p. ej., solo aquellas que requieren la comprobación de uso de datos) y completar la comprobación de uso de datos.

Deberás completar la comprobación para cada app que administres (es posible que cada app tenga varios permisos). Puedes certificar el uso para apps de forma individual y priorizarlas como quieras, siempre y cuando completes el proceso antes de la fecha límite establecida para cada una.

Se te pedirá certificar el uso de todos los permisos a los que tengas acceso. Sin embargo, si descubres que ya no necesitas acceso a ciertos permisos, puedes eliminarlos y ya no deberás certificar su uso.

El modo activo y el modo de desarrollo son dos modos de apps que influyen en la función y la comprobación de uso de datos de una app. El modo de desarrollo suele usarse para hacer pruebas, explorar productos o permisos de la API y completar la revisión de la app. Las apps en este modo no pueden acceder a datos en el nivel del usuario. El modo activo se usa en la etapa de producción y no limita el acceso a los datos o los permisos aprobados para las apps en su revisión. Solo las apps en modo activo requieren la comprobación de uso de datos.

En general, intentamos agrupar las fechas límite de las apps que tienen el mismo administrador, así que deberían ser iguales para tus apps. Sin embargo, es posible que haya excepciones que requieran que algunos administradores de apps completen el proceso con diferentes fechas límite. Por ejemplo, si creaste una app luego de realizar la comprobación de uso de datos para otras, tendrá una fecha límite anual distinta.

Puedes ver todas las apps que requieren la comprobación de uso de datos en la página "Mis apps" del panel de apps. Allí puedes ver todas las apps que administras y filtrar aquellas que requieren la comprobación de uso de datos.

El administrador de la app debe completar el proceso. Para revisar quién es administrador en tu app, inicia sesión en el panel de apps y haz clic en "Roles" en el lado izquierdo de la página. Los administradores de apps deben tener autoridad para actuar en nombre de tu organización.

Cualquier administrador de la app puede certificar el uso para esta. Si tu app tiene varios administradores, solo uno necesita certificarlo.

Tendrás 60 días a partir del inicio del proceso (cuando recibas la primera alerta para desarrolladores) hasta la fecha límite.

Luego de la fecha límite, comenzaremos a revocar el acceso a la plataforma mediante la limitación de las llamadas a la API durante el mes siguiente a dicha fecha. En este período, podrás acceder al panel de apps y completar la comprobación de uso de datos para que la app vuelva a cumplir los requisitos y restaurar por completo el acceso a la plataforma. Sin embargo, luego de un mes desde la fecha límite, revocaremos por completo el acceso a la plataforma.

Es posible que aún puedas volver al panel de apps, completar la comprobación de uso de datos y restaurar el acceso. Sin embargo, retiramos de forma periódica permisos de las apps inactivas, lo que implica que, luego de cierto tiempo de inactividad, es posible que tus permisos se eliminen definitivamente y tengas que enviar la app a revisión para volver a obtener acceso. Recomendamos completar la comprobación de uso de datos antes de la fecha límite para evitar esta situación.

En la comprobación de uso de datos, se muestran todos los permisos a los que tiene acceso tu app, independientemente de si los usas de manera activa o no. Recomendamos aprovechar esta oportunidad para evaluar la integración, conocer mejor las funciones de la app y eliminar el acceso a los permisos que no necesites.

En algunos casos, mostraremos la información de uso de la API directamente en el flujo de comprobación de uso de datos. De lo contrario, puedes ver los niveles de uso para cada permiso en la sección "Permisos y funciones" del panel de apps. Después de iniciar sesión, haz clic en "Revisión de la app" en el lado izquierdo de la página y, luego, selecciona "Permisos y funciones" en el menú desplegable. En la columna "Llamadas a la API", verás una marca de verificación verde si nuestros registros indican que usas el permiso de forma activa. Recuerda que esto es solo una estimación y que debes consultar a tu equipo de desarrollo para comprobar si se requiere el permiso para tu integración.

Pedimos a los desarrolladores certificar el uso de estos permisos "básicos" que se conceden automáticamente porque se emplean de forma amplia y proporcionan acceso a datos de los usuarios. Sin embargo, incluso si no utilizaste estos datos, puedes completar este proceso sin problemas, ya que la certificación indica el cumplimiento de cualquier uso del permiso, aunque no se emplee.

Primero debes eliminar el permiso desde el panel de apps (haz clic en "Mis permisos y funciones" en el menú desplegable de la izquierda, en "Revisión de la app"). Luego puedes certificar los demás permisos y funciones que aún usas.

Sin embargo, es posible que se te solicite certificar el uso de algunos permisos que se conceden automáticamente y no pueden eliminarse. Incluso si no utilizaste estos datos, puedes completar este proceso sin problemas, ya que la certificación indica el cumplimiento de cualquier uso del permiso, aunque no se emplee.

No. Luego de eliminar el permiso en el panel de apps, puedes actualizar la página "Comprobación de uso de datos" y ese permiso desaparecerá.

Deberás completar la comprobación de uso de datos para todos los permisos a los que tiene acceso tu app.

Lanzaremos la comprobación de uso de datos en fases, así que, si bien deberás completar el proceso en los próximos meses, la fecha límite específica variará. Asegúrate de que tu información de contacto esté actualizada en el panel de apps y consulta los detalles de la fecha límite en las alertas para desarrolladores.

Cuentas y servicios de desarrolladores

In order to comply with certain legal obligations, Meta’s developer services may not be available in all locations, including countries and regions currently subject to U.S. sanctions prohibitions.

Registration reviews may take longer and you may be unable to access our service during that time. Please try again in a few days. For more information, please refer to Meta’s Terms of Service.

We are currently reviewing your registration details. This takes 24 to 48 hours. Once completed and approved, you may be able to login and complete your registration.

Herramientas para desarrolladores

No puedes eliminar las imágenes de capturas de pantalla ni los banners que ya se aprobaron para el centro de aplicaciones. Para reemplazar estas imágenes con otras nuevas, haz clic en "Editar" en la captura de pantalla o el banner, y elige una imagen de reemplazo.

Comprueba si puedes ver el mensaje de error sin hacer una solicitud de fotos del usuario y verifica que dicho mensaje fuera visible inicialmente. Luego realiza la siguiente solicitud "me/photos" a la API y vuelve a comprobar si el mensaje de error sigue siendo visible o si ya no lo es. Al hacer la llamada "me/photos" de prueba, asegúrate de usar la aplicación pertinente y obtener el token de acceso correcto que requiere el permiso "user_photos", lo que debería resolver el problema.

El propósito de esta comprobación es que los desarrolladores prueben completamente la función en la aplicación antes de solicitarnos el mismo permiso. Hacerlo en la aplicación de prueba no garantiza un comportamiento estable de esta función en la aplicación principal. Debes hacer la solicitud de prueba desde la aplicación principal para asegurarte de que funcione según lo previsto antes de activarla para el público externo. Sigue los pasos suministrados para hacer una solicitud manualmente y comprueba que esta advertencia ya no aparezca en el panel.

La migración "Seguridad de URL en conjuntos de publicaciones" impide que la aplicación de Facebook publique URL que no dirijan a un dominio de su propiedad. No uses esta opción si la aplicación publicará enlaces a otros sitios.

Se eliminó esta función del panel. Tendrás que usar el extremo "/{app-id}/accounts/test-users/" para asociar a un usuario de prueba con una aplicación. Obtén más información al respecto aquí.

Ese comportamiento es intencional y está documentado aquí: https://developers.facebook.com/docs/apps/test-users#rules. Los usuarios de prueba no pueden ser fans de una página de Facebook pública o crear contenido en ella, por ejemplo, escribir en el muro. Sin embargo, sí pueden ver cualquier pestaña de la página asociada a la aplicación que la creó e interactuar con ella.

Este comportamiento es intencional. Por razones de seguridad, no permitimos varios dominios arbitrarios.

Inicio de sesión de Facebook

Este comportamiento es intencional. El cuadro de diálogo de inicio de sesión usa un ancho fijo, por lo que no se amplía para adaptarse a pantallas más grandes.

Este comportamiento es intencional. El desarrollador tiene la responsabilidad de establecer el valor de "redirect_uri" adecuado en función del dispositivo del usuario. Por consiguiente, si el usuario está en un dispositivo móvil, el valor de "redirect_uri" deberá ser la URL del sitio para celulares.

Este comportamiento es intencional, ya que evita una posible vulnerabilidad de seguridad. Algunos navegadores anexan el fragmento hash de una URL al final de una nueva URL a la que se les redireccionó (si la nueva no tiene dicho fragmento).

Por ejemplo, si ejemplo1.com devuelve una redirección a ejemplo2.com, un navegador que vaya a ejemplo1.com#abc irá a ejemplo2.com#abc, por lo que el contenido del fragmento hash de ejemplo1.com sería accesible a un script en ejemplo2.com.

Como es posible hacer que un flujo de autenticación redireccione a otro, sería posible hacer que los datos confidenciales de autenticación de una aplicación sean accesibles para otra. Esto se evita anexando un nuevo fragmento hash a la URL de redireccionamiento para evitar este comportamiento del navegador. Si te preocupa la estética o el comportamiento del lado del cliente de la URL resultante, sería posible usar window.location.hash (o incluso un redireccionamiento tuyo del lado del servidor) para eliminar los caracteres adicionales.

API Graph

Test apps created from Business apps will have Standard Access for all permissions and features.

No. For a given permission, Business apps have either None, Standard, or Advanced Access.

Yes. For Business apps, the Advanced Access level includes access to all data within the Standard Access level.

Para compartir una URL, la imagen asociada tiene que tener un tamaño de, al menos, 200 x 200 píxeles. Si no es el caso, obtendrás un error semejante a este: "Provided og:image is not big enough. Please use an image that's at least 200x200 px" (La etiqueta "og:image" proporcionada no es lo suficientemente grande. Usa una imagen de al menos 200 x 200 píxeles).

Para seleccionar una imagen para una URL, primero nos fijamos en la etiqueta "og:image", vemos si existe y si es superior al requisito de 200 x 200 píxeles. Si la etiqueta "og:image" no existe, elegimos la primera imagen que encontramos en la página web.

Si obtienes el error, pero crees que el tamaño de la imagen del sitio es mayor que 200 x 200 píxeles, debes verificar si definiste correctamente la etiqueta "og:image", ya que la causa más probable es que estemos recuperando una imagen incorrecta del sitio.

Cambiamos el comportamiento del plugin "Compartir" para que fuera coherente con otros plugins y funciones de la plataforma.

El plugin "Compartir" ya no aceptará los parámetros personalizados y Facebook extraerá la información que se muestre en la vista previa de la misma manera que aparecería en Facebook como una publicación, a partir de las metaetiquetas de Open Graph de la URL.

No, no es posible reemplazar el valor de "caption" en una URL compartida, solo "title" y "description".

Una aplicación no puede subir contenido a los álbumes creados por otras aplicaciones.

En algunos casos, hay álbumes que no están asociados con ninguna aplicación (álbum "Fotos del muro"). Te recomendamos comprobar el campo "can_upload". Si el campo "can_upload" devuelve el valor "false", esto quiere decir que los usuarios no pueden colocar fotos directamente en este álbum mediante la vista de álbumes en el perfil.

La llamada a la acción se mostrará debajo del icono "Volver a reproducir" una vez que termine el video.

Los GIF deben tener un tamaño inferior a 8 MB para poder reproducirse en Facebook.

Actualmente, no se admite la creación de comentarios para las publicaciones sin publicar a través de la API.

Las publicaciones con video creadas directamente no se muestran en el extremo "promotable_posts" porque ya están promocionadas. Una publicación con video creada directamente es aquella que se creó como parte de un anuncio y que, por lo tanto, no se puede promocionar de manera individual.

Por lo tanto, es de esperar que la publicación creada directamente no se muestre en el extremo "/promotable_posts endpoint".

Esto puede suceder si usas un token de acceso a la página en el que el usuario asociado con este aparece registrado con un rol de analista en "Roles de página" de la configuración de la página.

Cuando se usa la API Graph para realizar una solicitud de datos, se aplican varias reglas de privacidad que pueden ocasionar que algunos datos no se devuelvan, incluso si puedes visualizarlos en el sitio web. Esto puede depender de varios factores, como la configuración de privacidad del usuario, los permisos de la aplicación, etc., lo que significa que los datos que la API devuelve no incluyen necesariamente todos los que se ven en el sitio web.

Si la publicación se creó usando el parámetro "object_story_spec" de la API de anuncios, estas publicaciones se clasifican como directas. Para visualizar dichas publicaciones, tendrás que usar el perímetro "/{page-id}/promotable_posts" y el modificador "is_inline" en la versión 2.3 y anteriores, e "include_inline" en la versión 2.4 y posteriores. Obtén más información aquí.

El campo "shares" se devolverá cuando la publicación se comparta más de diez veces. Si una publicación se compartió menos de diez veces, es posible que omitamos este campo o que tratemos de devolver un número.

Obtén más información sobre este extremo aquí: https://developers.facebook.com/docs/graph-api/reference/v2.4/post.

Este era un valor antiguo que usábamos en la infraestructura anterior y lo mantuvimos para ofrecer compatibilidad inversa cuando la cambiamos por una nueva.

Esto sucede con las publicaciones históricas, pero no con las recientes.

Este comportamiento es intencional. No existe conexión entre la publicación y las fotos en una publicación. Solo devolvemos la primera imagen que se sube en la publicación.

El campo "application" no se devolverá si la publicación está atribuida al sitio web de Facebook o la aplicación para celulares. Esto coincide con el sitio, que no muestra la atribución para tales tipos de publicaciones.

El campo "privacy" de una publicación incluirá información sobre la visibilidad de dicha publicación en Facebook. Sin embargo, cuando una publicación de la página está segmentada o limitada para que sea visible solo para un público específico, la información en el campo "privacy" no muestra todas las opciones de segmentación seleccionadas.

Para ver todos los detalles de cómo se segmenta o limita la publicación, comprueba el campo "targeting" (para la limitación) y el campo "feed_targeting" (para la segmentación de la sección de noticias). Consulta la documentación sobre publicaciones para obtener más información sobre los campos que están disponibles.

El valor de "comment_count" devuelto para una publicación puede incluir comentarios que se ocultaron o eliminaron. La cantidad de comentarios visibles en una publicación nunca superará el valor de "comment_count".

No es posible reemplazar el valor de "caption" de una URL compartida. Solo puedes reemplazar los valores de "title" y "description" de dicha URL.

Obtén más información al respecto y los campos que puedes publicar mediante la API Graph en la documentación sobre el extremo "/feed" aquí: https://developers.facebook.com/docs/graph-api/reference/v2.3/page/feed#publish.

Esto es intencional, ya que coincide con la manera en que el contenido generado por la aplicación de Facebook (para celulares o sitio web) se muestra (sin atribución a Facebook propiamente).

Realizamos actualizaciones por nuestra parte en la manera en que se obtienen y presentan los datos de transmisión y publicación a través de la API.

Si tienes problemas con la recuperación de publicaciones desde la API y crees que no funciona según la documentación, verifica que

  • el token de acceso que usas tenga los permisos adecuados para acceder a las publicaciones que te interesan.
  • Asegúrate de que las llamadas a la API que hagas para obtener publicaciones usen el "id" que se te devolvió en una llamada anterior y que no estés elaborando manualmente identificadores basados en una página, un usuario o de otro tipo.

Las fotos que se suben a través de Instagram se publican como acciones de Open Graph, por lo que requieren los permisos adecuados de este último para leerlas desde la API Graph.

En el caso de las fotos de Instagram, el permiso que se requiere es "user_actions:instapp", ya que "instapp" es el espacio de nombres de la aplicación para Instagram.

Las acciones de Open Graph no aparecen en la conexión "/feed", pero, cuando se sube una foto como una acción de Open Graph, se puede acceder a ella con los permisos adecuados a través de la conexión de álbumes del usuario o la conexión "/photos", según corresponda.

Obtén más información sobre los permisos de Open Graph aquí.

Este comportamiento es intencional. Nuestro sistema devuelve el mensaje de error anterior para los objetos que se eliminaron o no son visibles por razones de privacidad o comprobación de permisos.

Este comportamiento está previsto y esta forma de paginación no es compatible con los comentarios.

Es posible que el campo "total_count" del parámetro "summary" del extremo "/{user-id}/accounts" devuelva un número más alto del que se espera. Esto es debido a que el valor de "total_count" incluye todas las páginas eliminadas de las que el usuario fue administrador.

Sin embargo, los datos devueltos por el propio extremo solo incluyen las páginas que no se eliminaron.

El extremo "/user/likes" cambió de una paginación basada en el tiempo (usando los parámetros "since" y "until") a una basada en el cursor (usando los parámetros "before" y "after").

Obtén más información sobre estas diferencias en: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging.

Con la introducción de los identificadores de usuario específicos de la aplicación, cambiamos la manera en que el extremo devuelve datos.

Como la versión 1.0 quedó obsoleta, nos centraremos aquí en la versión 2.x. El extremo "/v2.0/{id}" puede devolver https://www.facebook.com/{id} o https://www.facebook.com/app_scoped_user_id/{id}.

Este comportamiento es intencional. El error significa que el token de acceso que estás tratando de extender no puede acceder al identificador de la aplicación que está tratando de hacerlo.

La razón más probable para esto es que la aplicación tenga restricciones demográficas en vigor y que detectemos que el usuario cuyo token quieres extender no cumple con tales restricciones (o ya no las cumple, pudo haber cambiado de ubicación o es posible que ahora tengamos una ubicación más precisa detectada para él).

La segunda razón más probable es que no podamos confirmar que el usuario cumple con los requisitos (por ejemplo, no conocemos su ubicación), por lo que las restricciones de la aplicación no le permiten acceder a ella.

Desde julio de 2013, ya no es posible usar el extremo de búsqueda usando un correo electrónico en el tipo de búsqueda del usuario.

Además, se realizaron muchos cambios a la API Graph a partir de la versión 2.0, por lo que ya no están disponibles la búsqueda en publicaciones públicas ni las búsquedas de palabras clave.

Consulta el registro de cambios para obtener más información.

Las aplicaciones creadas después del 30 de abril de 2014 usan la versión 2 y posteriores de la API, que solo devolverán los amigos de la aplicación con el extremo /me/friends, como se indicó. Además, todos los identificadores de usuario ahora son específicos de la aplicación, que son únicos y permanentes para una aplicación en concreto.

Obtén más información sobre todas las funciones nuevas y los cambios que se aplicaron en la versión 2.0.

La documentación para el campo email del objeto User aclara el comportamiento previsto aquí, a saber, "este campo no se devolverá si no hay disponible una dirección de correo electrónico".

Existen varias circunstancias en las que es posible pensar que se debería devolver una dirección de correo electrónico a un usuario, pero no sucede. Por razones de privacidad y seguridad, no es posible explicar en detalle la razón precisa por la que no se devuelve la dirección de correo electrónico de un usuario en particular.

Estas son algunas de las razones:

  • La cuenta no tiene dirección de correo electrónico.
  • La cuenta no tiene dirección de correo electrónico confirmada.
  • La cuenta no tiene dirección de correo electrónico verificada.
  • El usuario ingresó a un punto de control de seguridad en el que se le solicitó que reconfirmara la dirección de correo electrónico, pero todavía no lo hizo.
  • No es posible comunicarse con la dirección de correo electrónico.
También necesitas el permiso ampliado "email", incluso para los usuarios que tengan una dirección de correo electrónico archivada que sea válida, que esté confirmada y con la que sea posible comunicarse.

Estas publicaciones no se pueden recuperar mediante la API porque, en ellas, el contenido de un usuario se volvió a compartir en una página y dicho usuario no autorizó a la aplicación a ver su contenido.

Las publicaciones del usuario compartidas en la biografía de una página no están disponibles a través de la API si el usuario tiene desactivado el permiso de base para el tipo de contenido de la publicación.

Como solución alternativa para ver las publicaciones con foto faltantes de los fans, puedes recuperar los álbumes de la página usando el token de acceso a la página (las fotos deben estar en el álbum de fotos de la biografía).

Incluso si una publicación es pública y menciona a la página que se está solicitando, la aplicación no puede ver dichas publicaciones sin el permiso "read_stream" de su propietario. Esto significa que el extremo "{page_id}/tagged" no devuelve todas las publicaciones.

Obtén más información al respecto en la documentación sobre la sección de noticias de la página.

En algunos casos, una aplicación específica (o cualquier aplicación) no puede obtener información sobre un usuario de Facebook debido a la configuración de privacidad de este. Esto incluye el acceso a publicaciones realizadas por el usuario en un contexto en el que se prevé que la aplicación pueda ver la publicación (por ejemplo, la administración de la página).

Por ejemplo, cuando un usuario bloqueó la aplicación o desactivó el acceso a su información a través de la API para todas las aplicaciones de la plataforma.

Con el lanzamiento de la versión 2.1 de la API Graph, se eliminó esta funcionalidad. Para las aplicaciones creadas antes del 7 de agosto de 2014, este campo ya no está presente en el objeto signed_request.

Para las aplicaciones creadas antes de esta fecha, la propiedad liked siempre se devolverá como true sin importar si la persona indicó o no que le gustó la página.

Usa los enlaces "paging.next" y "paging.previous" que se devuelven en la respuesta directamente para obtener las demás páginas de resultados. Si usas los enlaces proporcionados, la aplicación no se verá afectada cuando el formato de los enlaces de paginación cambie en el futuro.

Como la mayoría de los elementos en la API, esta no es una asignación diseñada para ser idéntica a las funciones y funcionalidades del sitio principal de Facebook. Lo que la interfaz de usuario de las estadísticas de las páginas llama "alcance orgánico" es muy diferente a lo que es mediante la API y se calcula de manera distinta.

Por ejemplo, el valor de "organic" en la interfaz de usuario de las estadísticas de la página corresponde al valor de "unpaid" en el resultado de "page_impressions_by_paid_non_paid_unique" disponible a través de la API Graph.

Estamos analizando la manera de alinearlos, pero esto puede tomar algo de tiempo.

Este error indica que el usuario asociado con el token de acceso no puede ver la página por razones de privacidad. Por ejemplo, es posible que la página no esté publicada y que el usuario tampoco tenga un administrador válido de la página.

Este error suele presentarse cuando tratas de recuperar estadísticas de una página muy activa. Esto se puede resolver si reduces el intervalo de tiempo para el que solicitas las estadísticas mediante los campos "since" y "until".

Este comportamiento es intencional para las aplicaciones de prueba y en modo de desarrollo. Luego de publicar la aplicación, funciona según lo previsto.

Puedes ver el error relacionado con esta limitación de diseño aquí.

Solo los administradores, editores o moderadores pueden leer y enviar mensajes de la página. Las personas con otros roles, como los anunciantes y analistas, no pueden leer las conversaciones de la página.

Obtén más información sobre los diferentes roles de página en: https://www.facebook.com/help/289207354498410.

Los recuentos totales de "page_fans" y "page_fans_country" no siempre son iguales. Existen muchos factores que pueden afectar al valor de "page_fans_country". Por ejemplo, es posible que algunos fans de la página no hayan definido el país en la cuenta o que tengan una configuración de privacidad que lo oculta.

Obtén más información sobre la configuración de privacidad de Facebook en esta página del servicio de ayuda: https://www.facebook.com/help/445588775451827.

Las publicaciones de algunas páginas públicas son contenido del usuario que se vuelve a compartir. Si el usuario que creó la publicación no otorgó los permisos necesarios a la aplicación, esta no puede acceder a sus publicaciones a través de la API Graph y, por lo tanto, no puede hacer comentarios en esas publicaciones.

Las publicaciones que se crean directamente como parte de una creación del contenido del anuncio no se pueden promocionar de manera independiente. Por lo tanto, estas publicaciones tampoco aparecerán en una llamada al extremo "/promotable_posts endpoint" de una página.

Esto ocurre si usas una aplicación que todavía está en modo de desarrollo para programar las publicaciones. Usa una aplicación que esté activa y así se debería solucionar el problema.

Lamentablemente, por ahora no admitimos la creación, actualización ni eliminación de las fotos de portada mediante la API.

Obtén más información sobre la API de fotos de portada en: https://developers.facebook.com/docs/graph-api/reference/cover-photo/#Creating

Este es el comportamiento actual. Los administradores de la página no pueden publicar en páginas como ellos mismos a través de la API Graph, ya que esta funcionalidad solo está disponible en http://www.facebook.com/ y en nuestras aplicaciones para celulares.

No, no es posible obtener la lista completa de las personas que indicaron que les gusta una página. Este comportamiento es intencional.

Asegúrate de usar un token de acceso a la página al realizar acciones en nombre de una de estas. El mensaje de error indica que estás usando un token de acceso de usuario en vez de un token de acceso a la página.

Obtén información sobre las diferentes clases de tokens de acceso aquí: https://developers.facebook.com/docs/facebook-login/access-tokens

Esto no es posible, ya que solo los productos nativos de Facebook permiten marcar publicaciones y leer las que están marcadas.

Si en algún momento se activó la reproducción de comentarios para una URL externa, las reacciones a las publicaciones en las que se reproduzcan los comentarios se registrarán en la propia URL y se devolverán cuando se llame a {URL-id}/reactions>.

En estos momentos, no admitimos que se extraigan datos para más de 1.000 valores del desglose del extremo /app_insights/app_event. Si quieres desglosar los datos en categorías específicas, te recomendamos utilizar la interfaz de usuario de Facebook Analytics para dividir la información en puntos de datos específicos, como países concretos.

Es probable que estés llamando al extremo con demasiada rapidez, incluso antes de que los datos se hayan transferido a nuestros servidores.

Las llamadas a la API deben realizarse tras esperar entre uno y dos segundos para permitir que la información llegue a todos nuestros servidores.

El resultado "page_fans_country" es normalmente un subconjunto del recuento de "page_fans". Este resultado abarca un desglose por país de los fans de la página, siempre que podamos determinar el país del usuario con precisión.

Además, el resultado no incluye todos los países en los que haya fans de la página, sino solo aquellos que tengan el mayor número de fans. En el caso de las páginas que tengan fans en muchos países, los menos poblados no se incluirán en este resultado.

La API no admite el uso de la paginación basada en el intervalo.

En su lugar, debes usar los enlaces "paging" que se devuelven al final de cada respuesta de la API Graph o la paginación basada en el cursor, que es más recomendable.

Obtén más información sobre cómo paginar correctamente a través de la API Graph aquí: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging

Hay tokens de acceso de corta y larga duración. Un token de acceso de corta duración es para una sesión corta y normalmente caduca al cabo de unas horas.

Puedes intercambiar un token de corta por uno de larga duración, que será válido por aproximadamente 60 días.

Obtén información al respecto en la documentación sobre tokens de acceso.

Este comportamiento es intencional, ya que la API de búsqueda respeta la privacidad en Facebook, está personalizada para el usuario cuyo token de acceso estás usando, no admite la búsqueda de hashtags y no está diseñada para tener paridad con la misma búsqueda que se realiza en el cuadro de sugerencias de búsqueda en Facebook.com.

No admitimos de manera explícita ni nos proponemos que la API de búsqueda devuelva el mismo volumen de resultados o resultados específicos como las búsquedas en Facebook.com. Además, en general, las publicaciones que se devuelven a través de la API están sujetas a comprobaciones de privacidad y seguridad más exigentes que las mismas publicaciones en Facebook.

Nuestro sistema aplica límites de frecuencia a las llamadas a la API hechas por aplicaciones. Obtén más información sobre los diferentes límites para evitar que se apliquen límites a la aplicación en: https://developers.facebook.com/docs/marketing-api/api-rate-limiting

Artículos instantáneos

Puedes agregar imágenes en formato GIF animado a tu artículo mediante un elemento <figure> que encierra un elemento <img> que hace referencia a la dirección URL de la imagen en formato GIF. Como con otras imágenes, puedes agregar leyendas y atribuciones a las imágenes en formato GIF.

Para obtener más información y ejemplos, consulta la documentación aquí.

Puedes reutilizar una URL de fuente en diferentes páginas, pero ten en cuenta que solo se ingresarán los artículos con URL canónicas que coinciden con los dominios reclamados por la página.

Nuestra recomendación es usar diferentes fuentes RSS para cada página que contengan solo los artículos que correspondan a esa página.

Puedes agregar inserciones de medios sociales compatibles, como videos, mediante Inserciones de medios sociales. Para otros reproductores de video de terceros, puedes agregarlos al artículo como una inserción interactiva.

Puedes insertar contenido y gráficos interactivos en tus artículos mediante una etiqueta <figure> con la clase op-interactive. La figura debe contener un <iframe> que incluya el contenido que va a insertarse.

Puedes obtener más información y ejemplos aquí.

Puedes especificar una leyenda mediante el elemento <figcaption>. En la leyenda, puedes agregar una atribución mediante el elemento <cite>.

Para obtener más información y ejemplos, consulta la documentación aquí.

Cuando un artículo está en modo "Borrador", solo será visible como un artículo instantáneo para los administradores de páginas. Una vez que se publique el artículo y este en modo "Publicado", cualquier persona puede compartirlo en Facebook y se mostrará como artículo instantáneo para todos.

Comprueba si concediste el permiso pages_manage_instant_articles a la aplicación. Este permiso se necesita para llamar a los métodos de la API para leer y actualizar los artículos instantáneos de la página.

Puedes obtener más información sobre el uso de la API aquí.

Si estás usando el atributo dir="rtl" para mostrar idiomas con sistemas de escritura de derecha a izquierda en tu artículo, podrías estar visualizando el artículo en una aplicación que no es compatible ese idioma en los artículos instantáneos.

Comprueba que estés usando la versión más reciente de la aplicación. La versión mínima de cada aplicación que es compatible con idiomas con sistemas de escritura de derecha a izquierda es:

  • Facebook para iOS: 52.0
  • Facebook para Android: 69.0
  • Administrador de páginas para iOS: 44.0
Ten en cuenta que actualmente no admitimos idiomas con sistemas de escritura de derecha a izquierda en el administrador de páginas para Android.

Comprueba si el atributo dir="rtl" se estableció en la etiqueta <body> del artículo. Si el artículo no contiene idiomas con sistemas de escritura de derecha a izquierda, no debes establecer este atributo en el artículo.

Comprueba que estableciste el atributo dir en la etiqueta de cuerpo de tu artículo. Para los idiomas con sistemas de escritura de derecha a izquierda, debes establecer el atributo dir en "rtl".

La vista previa de la sección de noticias de un artículo usa la imagen especificada en la metaetiqueta og:image de la versión web del artículo. También puedes optar por reemplazar la imagen con un video agregando la clase "fb-feed-cover" a cualquier video en tu artículo. Puedes obtener más información sobre las vistas previas de la sección de noticias aquí.

Al compartir la URL de un artículo antes de la publicación del artículo instantáneo, se redirigirá a la versión de web móvil del artículo. Una vez publicado el artículo instantáneo, todos los enlaces compartidos incluidos los que se publicaron antes del artículo, mostrarán automáticamente el artículo instantáneo cuando se visualicen en un celular.

Por el momento, el resultado de las "visualizaciones" solo incluye usuarios de iOS. Las visualizaciones en Android se cuentan por separado en el resultado "android_views".

Puedes obtener más información sobre esto aquí.

Aún estamos por proporcionar compatibilidad para la fuente de desarrollo en el administrador de páginas para Android. Como solución provisional para ver tus artículos en Android por ahora, puedes intentar agregar los artículos a tu fuente de producción como borradores.

Para editar el artículo instantáneo, puedes usar la interfaz de la página. Para ello, ve a tu página en un navegador y después a "Herramientas de publicación" > "Artículos instantáneos". Puedes ver tus artículos y editarlos ahí mismo. Puedes obtener más información sobre esto aquí: https://developers.facebook.com/docs/instant-articles/publishing.

El tiempo de espera para la descarga gratuita es actualmente de 30 segundos.

No, el enlace compartido debe ser la URL canónica del artículo. Si la URL se modifica (por ejemplo, mediante la adición de parámetros), se considerará una URL diferente.

Los errores o las advertencias que se encuentren al ingresar tu fuente RSS se mostrarán en la pestaña "Artículos instantáneos" de la página de configuración. También puedes ver advertencias y errores para artículos individuales haciendo clic en el artículo de la pestaña "Artículos instantáneos" de la página "Herramientas de publicación".

Comprueba que la fuente RSS siga el formato que se documenta aquí.

La URL canónica de los artículos también debe usar el dominio configurado para la página o un subdominio de este. Si ves que se ingresan nuevos artículos, pero no se muestran las actualizaciones de los artículos existentes, comprueba que hayas aumentado la marca de tiempo "op-modified".

Puedes obtener más información sobre esto aquí.

Una razón común por la que los artículos no se actualizan desde la fuente RSS es que la marca de tiempo op-modified del artículo en la fuente es la misma que la última versión recuperada. Actualizamos un artículo solo si la marca de tiempo es posterior a la última versión.

Además, debes confirmar que se usó la misma URL canónica en la versión actualizada del artículo.

Puedes consultar la documentación para obtener más información sobre cómo recuperamos artículos de la fuente RSS aquí.

Intentamos cargar y analizar por completo la fuente RSS en un plazo de 10 segundos. Este error indica que la operación no fue correcta.

Una forma de resolverlo es incluir menos elementos en la fuente RSS, por ejemplo, incluyendo solo artículos que son nuevos o que fueron modificados hace más o menos 10 minutos. Dado que la fuente se recupera cada 3 minutos, sería innecesario incluir artículos sin modificar.

Desafortunadamente, no tenemos una lista de las direcciones IP estáticas del rastreador. Sin embargo, en su lugar puedes usar el agente de usuario de nuestro rastreador: facebookexternalhit/1.1

Si una actualización de un artículo instantáneo existente tiene más de 24 horas según su hora op-modified, se omitirá para la extracción. Esto significa que la hora de modificación debe estar dentro del plazo de 24 horas de la hora de modificación establecida en el artículo existente y no la hora actual. En los casos en los que se omite la actualización, puedes hacer los cambios en los artículos de forma manual mediante la herramienta del editor de artículos instantáneos basados en web.

Puedes obtener más información sobre esto aquí.

Comprueba si los artículos duplicados están usando URL canónicas diferentes. Usamos la URL canónica de un artículo como su identificador exclusivo, de modo que los artículos que tienen URL canónicas diferentes se consideran como artículos distintos.

Un problema común es que el CMS puede publicar actualizaciones con una URL diferente, lo que provoca que las actualizaciones se ingresen como un artículo nuevo.

Sí, cada página se asigna de forma exclusiva a un dominio y se trata de una asignación 1:1. Necesitamos que los artículos instantáneos que pertenecen a una página determinada tengan URL canónicas que pertenezcan al dominio especificado o un subdominio del mismo.

Sin embargo, el dominio de la URL de la fuente RSS en sí misma no tiene que coincidir con el que está asignado a la página. Esta restricción es solo para las URL canónicas de los artículos en la fuente.

Si quieres publicar artículos en diferentes páginas en función de su idioma, debes configurar diferentes fuentes RSS para cada idioma y configurar cada página para usar la fuente RSS adecuada.

No, una vez que un artículo se ingresó desde la fuente RSS, permanece almacenado como artículo instantáneo hasta que se elimina de las herramientas de publicación de la página. Después puedes eliminarlo de forma segura de la fuente RSS para acelerar la próxima recuperación.

Por el momento no puedes publicar o eliminar artículos a través de una API, pero estamos trabajando en ello.

El botón "Me gusta" usa el color de énfasis de tu configuración de estilo. Comprueba si configuraste un color visible en el encabezado.

Además, el botón "Me gusta" solo aparece si el usuario que está viendo el artículo aún no indica que le gusta la página, por lo que no aparecerá para los administradores de la página que ya indicaron que les gusta.

Comprueba que no estés usando varias etiquetas <br> seguidas. Para dividir el texto de tu artículo en varios párrafos, te recomendamos usar etiquetas de párrafo (<p>) en lugar de saltos de línea.

Asegúrate de que agregaste la clase "op-tracker" a la etiqueta <figure> que encierra al píxel de seguimiento. Sin esta etiqueta, se tratará como una inserción de imagen.

Comprueba que estés usando un formato compatible para el archivo de video. Tienes una lista de todos los formatos de video compatibles aquí.

También debes asegurarte de que estés encerrando correctamente la inserción del video en una etiqueta <figure> y que no estés encerando el video en un párrafo (etiqueta <p>).

Esta advertencia se muestra por lo general si encerraste contenido que no es de texto (como imágenes o inserciones interactivas) entre etiquetas de párrafo <p>. Los párrafos deben contener solamente contenido de texto y cualquier otro contenido debe agregarse entre etiquetas <figure> u otros elementos contenedores apropiados.

No, el elemento de leyenda (<figcaption>) solo se admite con etiquetas <h1>, <h2> y <cite>. No se admite la etiqueta de párrafo (<p>).

El atributo "muted" no es compatible con elementos <video> en estos momentos.

Los anuncios en los artículos se definen mediante el elemento HTML5 estándar <figure>, que encierra un elemento <iframe> que contiene el marcado del anuncio. Puedes aplicar la clase op-ad a un elemento <figure> para especificar un anuncio en un artículo. Hay dos formas de especificar anuncios: especificando la URL del anuncio directamente mediante el atributo "src" en el iframe o insertando el conjunto sin escape de HTML y scripts en el iframe.

Puedes obtener más información sobre los anuncios aquí: https://developers.facebook.com/docs/instant-articles/reference/ad.

El elemento de imagen estándar no admite el uso de imágenes SVG. En su lugar, puedes usar una inserción interactiva ("op-interactive") y un elemento <img> en el iframe, con el atributo "src" establecido en la URL de la imagen SVG.

Puedes usar el elemento de mapa documentado aquí: https://developers.facebook.com/docs/instant-articles/reference/map. Este es el método recomendado para agregar un mapa a los artículos instantáneos.

Si estás agregando una inserción de Google Maps en tu artículo como inserción interactiva, hay un error conocido con la forma en la que funciona la inserción que podría impedir que se muestre el mapa. Para solucionar este problema, necesitas encerrar el iframe subiendo el contenido del mapa ("https://www.google.com/maps/embed?...") dentro de otro iframe.

Puedes insertar módulos interactivos mediante una figura op-interactive. Puedes obtener más información y ejemplos de código aquí: https://developers.facebook.com/docs/instant-articles/reference/interactive.

Para definir una altura, agrega el atributo "altura" al elemento <iframe> que encierra el contenido insertado. El valor del atributo debe ser un valor entero que indique la altura en píxeles. Puedes establecer una altura máxima de 960 píxeles.

Puedes agregar una portada con la etiqueta <figure> en el encabezado. Puedes usar una imagen o un video a manera de portada agregando una etiqueta <img> o <video> en la figura.

Puedes obtener más información sobre portadas aquí.

Para agregar espacio entre las imágenes agrega párrafos vacíos entre ellas (por ejemplo, <p>&nbsp;</p>).

Para agregar una atribución, usa un elemento <cite> dentro del elemento <figcaption>.

En las imágenes de portada, puedes especificar que una atribución siempre esté visible especificando de forma explícita uno de los atributos de alineación vertical en el elemento <cite>. De lo contrario, la cita no se mostrará en la imagen hasta que no se amplíe.

Puedes insertar contenido social agregando una figura con la clase "op-social" y agregando un iframe que incluya el contenido que va a insertarse.

Para obtener más información y ejemplos de código, puedes consultar este documento.

Debes usar un enlace directo a un archivo de video (por ejemplo, un archivo mp4) para agregar una portada. Como los videos hospedados en Facebook no proporcionan un enlace directo, necesitarás hospedar tu video en otro sitio y usarlo como portada.

Puedes usar algunas etiquetas HTML dentro de los elementos de lista, por ejemplo para poner el texto en negrita o agregar enlaces. Para personalizar el color o el estilo de la letra, puedes usar el editor de estilo en la interfaz de la página de Facebook ("Configuración"->"Artículos instantáneos").

Si estás insertando un video con el elemento HTML <video>, no es posible ya que no admitimos la reproducción de varios videos en una secuencia.

Si estás insertando un reproductor de video como una inserción de medios sociales en un iframe, es posible siempre y cuando el reproductor insertado sea compatible.

No se admiten las citas en bloque; necesitan colocarse fuera de la etiqueta de párrafo.

Si el título del artículo es lo suficientemente largo como para que se muestre en dos líneas, solo el título se mostrará en la sección de noticias. Si el título cabe en una sola línea, la vista previa de la sección de noticias también mostrará el inicio del texto del artículo.

Comprueba que no hayas agregado el atributo "data-fb-disable-autoplay" a tus videos.

Si los videos no se están reproduciendo automáticamente para una persona determinada, comprueba que la reproducción automática de videos no esté desactivada en la configuración de la aplicación de Facebook. Aquí encontrarás las instrucciones para comprobarlo.

Puedes mostrar un video en la vista previa de la sección de noticias de un artículo agregando la clase "fb-feed-cover" a cualquier video en tu artículo. Puedes obtener más información sobre las vistas previas de la sección de noticias aquí

Es necesario incluir un elemento <time> en el marcado HTML para cada uno de tus artículos, mediante la clase op-published, para especificar la fecha y hora en que el artículo se publicó originalmente.

La clase op-modified no es necesaria. Solo necesitas incluir un elemento <time> con esta clase si estás actualizando el contenido del artículo y quieres que actualicemos la versión del artículo que almacenamos.

Comprueba que encerraste el texto en etiquetas de párrafo (<p>). Puedes obtener más información sobre cómo crear el marcado de tus artículos aquí.

Comprueba que tus elementos <figure> no estén encerrados entre etiquetas de párrafo (<p>). Las imágenes deben estar incluidas en etiquetas <figure> anidadas directamente debajo de la etiqueta del artículo.

Desafortunadamente, no puedes agregar leyendas a imágenes individuales en una presentación. Solo puedes agregar una sola leyenda a toda la presentación.

Consulta la documentación sobre presentaciones para obtener más información.

Puedes agregar Me gusta o comentarios a una imagen especificando el atributo "data-feedback" en la etiqueta <figure> que contiene la imagen. Por ejemplo, al agregar el atributo data-feedback="fb:likes,fb:comments" se mostrarán los Me gusta y los comentarios en la imagen.

Para obtener más información, puedes consultar la documentación para el atributo "Feedback".

Al especificar un ancho para los elementos como la inserción interactiva, usa un valor entero que especifique el ancho en píxeles. De forma predeterminada, los elementos se muestran con el ancho completo.

Para mostrar una inserción interactiva sin márgenes, puedes agregar la clase "no-margin" al iframe que tiene el contenido.

Si ya aprobamos una fuente RSS para tu página, no necesitas volver a enviarla para su aprobación si cambias la URL de la fuente.

Asignamos cada página a un nombre de dominio único. La URL de la fuente RSS en sí misma no necesita coincidir con este nombre de dominio. Sin embargo, la URL canónica de tus artículos individuales dentro de la fuente debe pertenecer al mismo dominio o su subdominio. Si solo estás cambiando la URL de la fuente RSS, no habrá ningún problema.

Si también estás actualizando las URL canónicas de los artículos para que apunten a un nuevo dominio, necesitarás solicitar la actualización de este dominio a través de tu administrador de socios, quien debería poder guiarte a través del proceso.

SDK para iOS

Asegúrate de que la aplicación de Facebook tenga definidos los identificadores de iPhone Store y iPad Store (para realizar la prueba no tiene que ser un identificador real, ya que puedes usar uno de cualquier aplicación disponible en el App Store de Apple) y de que iOS y iPad estén activados en las plataformas registradas en el centro de aplicaciones.

Este comportamiento es intencional. El cuadro de diálogo de noticias publica contenido con un adjunto, por lo que no es posible personalizar los adjuntos adicionales.

SDK para JavaScript

Consulta la documentación incluida aquí para acceder a prácticas recomendadas sobre cómo optimizar las imágenes con el fin de generar vistas previas de calidad.

Los datos de respuesta solo están disponibles si el usuario inició sesión en tu aplicación a través de Facebook y concedió el permiso "publish_actions". Este requisito también se encuentra documentado aquí.

Este es un cambio intencional. Redujimos la lista de amigos con la intención de que las solicitudes de juego sean más relevantes para el jugador adecuado. Ten en cuenta que los jugadores aún pueden seleccionar la cantidad de amigos que deseen mediante el campo de búsqueda.

La ventaja de este cambio es que observamos un aumento en el número de clics y un incremento considerable del CTR total. Esperamos seguir optimizando este canal y descubrir nuevas maneras de garantizar que los juegos adecuados lleguen a las personas adecuadas.

Enlaces compartidos

El rastreador buscará un registro "AAAA" y devolverá un código de respuesta "0" si no lo encuentra. Asegúrate de que el registro "AAAA" esté actualizado correctamente cuando cambies la URL o el servidor.

Consulta Actualizar URL para obtener más información.

Los cambios de las etiquetas ("og:title", "og:image" y otras) solo se aplicarán cuando se comparta el enlace en lo sucesivo.

Cuando una persona o una página comparten un enlace y se producen más de 50 interacciones con la publicación (comentarios, Me gusta, contenido compartido, etc.), no se puede modificar el título. De esta manera, se evita que los sitios web modifiquen detalles de un enlace una vez que interactuaste con él para que parezca que interactuaste con un contenido distinto. Puedes modificar el resto de las propiedades cuando quieras.

Si compartiste un enlace y actualizaste la imagen, se seguirá mostrando la imagen anterior en el contenido compartido inicialmente a menos que actualices el enlace en la publicación.

Para actualizar la imagen del enlace en una publicación:
  1. Busca la publicación en la sección de noticias.
  2. Haz clic en los puntos suspensivos en la esquina superior derecha de la publicación.
  3. Selecciona Actualizar archivo adjunto compartido.

Congelamos los títulos después de que se realizan una cantidad de acciones en relación con ese objeto, como se describe aquí: Actualizar las URL.

Muchos factores inciden en cómo se podría cortar una imagen. Por ejemplo, intentamos centrar la imagen alrededor de los rostros que podemos detectar.

Si las imágenes son más grandes, intenta que se acerquen lo más posible a la relación de aspecto de 1,91:1 para que la imagen se muestre completa en el feed sin que exista necesidad de recortarla.

Las publicaciones de páginas usan siempre una imagen grande horizontal para compartir los enlaces. Sucede lo mismo en el feed del celular y de la computadora. Intenta que las imágenes se mantengan lo más cerca posible a una relación de aspecto de 1,91:1 para poder mostrar la imagen completa en el feed sin que sea necesario recortarla.

Es posible que nuestro sistema de filtrado de contenido haya marcado tu enlace. Si crees que esto es un error, envía un reporte en nuestro sitio de ayuda. Asegúrate de incluir la URL relevante.

Las imágenes se almacenan en caché de forma asincrónica, por lo que es posible que la imagen no se muestre la primera vez que alguien comparta tu contenido. Para evitarlo, puedes:

Todo el contenido compartido y los Me gusta están vinculados a una URL concreta (que denominamos URL canónica). Por lo tanto, cuando cambies la estructura del sitio para utilizar una nueva URL, los Me gusta y el contenido compartido empezarán a atribuirse a dicha URL.

Consulta Actualizar URL para obtener más información.

Todo el contenido compartido y los Me gusta están vinculados a una URL concreta (que denominamos URL canónica). Por lo tanto, cuando cambies la estructura del sitio para utilizar una nueva URL, los Me gusta y el contenido compartido empezarán a atribuirse a dicha URL.

Consulta Actualizar URL para obtener más información.

Las imágenes de un tamaño menor que 600 x 315 píxeles, pero mayor que 200 x 200 píxeles, se mostrarán con una imagen cuadrada y pequeña.

Consideramos que todas las URL son inmutables, debido a que se utilizan para almacenar los recursos en caché en capas diferentes, así que si necesitas reemplazar una imagen, también tienes que usar una URL nueva. A medida que caducan las memorias caché, recuperaremos la imagen nueva y el problema se resolverá solo.

Si estás usando una URL diferente, pero sigues viendo la imagen anterior, puedes ir al depurador de contenido y realizar una nueva extracción de la URL:

Debido a que representan la ubicación canónica de un recurso (página/imagen), todas las URL deben ser absolutas para que podamos atribuir contenido compartido y Me gusta a la URL correcta y almacenar imágenes en caché de forma adecuada.

La imagen original ya no está disponible, es demasiado grande o no se pudo recuperar debido a un problema temporal. Asegúrate de que la URL de la imagen sea accesible para nuestro rastreador, que no supere los 8 MB y que se muestre con una latencia inferior a unos cuantos segundos.

Si cambias la metaetiqueta "og:image" para una página, asegúrate de no eliminar la imagen antigua del sitio web, ya que el contenido compartido existente mostrará este espacio en blanco.

API de marketing

Esto es debido a la demora en la replicación en nuestros centros de datos. Este proceso tarda varios segundos y no se puede acceder al identificador del objeto mediante la API hasta que se haya completado.

Si intentas leer la información de un anuncio antes de que se haya guardado por completo, es posible que recibas una excepción GraphMethodException con un mensaje como Unsupported get request. Object with ID 'XXXXXXXXXXXXXXXXXX' does not exist, cannot be loaded due to missing permissions, or does not support this operation..

Para evitar este problema, espera un momento antes de realizar una solicitud GET para obtener la información del anuncio.

En algunos casos, es posible que encuentres un error de validación al usar determinado contenido en una campaña concreta. Esto puede ocurrir cuando la campaña tiene un objetivo que es incompatible con el contenido que usas. Un ejemplo de esto podría ser cuando el contenido apunta a un juego de página principal, mientras que el objetivo de la campaña es "MOBILE_APP_INSTALLS".

Para resolver los errores de validación que encuentres, puedes seguir las prácticas recomendadas de validación de la API de marketing.

Comprueba que las sesiones subidas que no contienen los elementos en cuestión no presenten errores.

Los elementos solo se eliminarán cuando ya no existan en la sección de noticias de una sesión subida correctamente cuando el valor "deletion_enabled" se defina como "true".

Si te aparece este error, comprueba el estado de la cuenta publicitaria que se especificó. Este error suele ocurrir cuando la cuenta publicitaria está en un estado pendiente de pago.

Se prevé este comportamiento, ya que los datos en la configuración interna de las estadísticas de la página se almacenan solo por dos años. Por lo tanto, se prevé que la llamada devuelva valores cero. Los únicos elementos que no tendrán valores cero son los Me gusta, los comentarios o el contenido compartido directos de una publicación, cuyos datos retendrá la propia publicación.

Al crear un anuncio con determinados objetivos, se establecen las especificaciones de conversión predeterminadas. Si cambias las especificaciones de conversión, se reemplazarán las actuales.

Ten en cuenta que algunos objetivos no tienen especificaciones de conversión predeterminadas, por lo que se deben especificar de manera explícita.

Esto podría ocurrir debido a que el público de "work_positions" para el país de la segmentación es tan pequeño que no afecta al alcance estimado. Seguimos recopilando datos que esperamos que mejoren la cantidad de personas agregadas a la exclusión "work_positions", lo que afectará al alcance estimado.

Esto sucede porque la aplicación tiene activada la migración Seguridad de URL en conjuntos de publicaciones.

Si la aplicación tiene activada esta configuración, el sistema no permitirá crear anuncios de publicación con enlace de ningún tipo, a menos que redireccionen a la URL de la página principal de la aplicación referenciada en la configuración de la aplicación. No debería ser un requisito tenerla activada, a menos que la aplicación sea una aplicación de página principal y que solo publique historias que redireccionen hacia el dominio de esta.

Es probable que el usuario esté asociado con la cuenta a través de una asociación del administrador comercial, lo que no se mostrará como una asociación explícita de la API Graph.

Confirma que especificaste las categorías de socios en el campo de segmentación adecuado. Las categorías de socios que se obtienen del extremo "/partnercategories" contienen un campo llamado "targeting_type", que especifica el campo de segmentación que debes usar al especificar un tipo de segmentación.

Por ejemplo, si la categoría de socios devuelve el "targeting_type" de "behaviors", debes usar esa categoría de socio en el campo "behavior" de la especificación de segmentación.

Obtén más información sobre los tipos de segmentación y las categorías de socio en: https://developers.facebook.com/docs/marketing-api/partnercategories/v2.3#targeting_types

Este error lo puede causar un público personalizado que no tiene inclusiones o exclusiones definidas. La mejor manera de resolver este problema es crear un nuevo público personalizado y asegurarse de que tenga definidas algunas inclusiones o exclusiones.

Obtén más información sobre los públicos personalizados aquí: https://developers.facebook.com/docs/marketing-api/custom-audience-targeting/v2.3.

Un conjunto de anuncios puede tener un valor de "lifetime_budget" y "daily_budget". El valor de "daily_budget" definido en la divisa de la cuenta debe ser al menos de 100 centavos y la duración debe ser superior a 24 horas. Si consultas cualquiera de estos campos, se devolverán ambos. Se devolverá un valor de "0" cuando no se use un campo.

Obtén más información aquí: https://developers.facebook.com/docs/reference/ads-api/adset.

El extremo "adcampaign_groups " usa la paginación basada en el cursor, por lo que no devuelve los campos "count", "limit" ni "offset". Te recomendamos usar la paginación basada en el cursor para todos los extremos con el fin de obtener resultados coherentes.

Obtén más información sobre cómo usar la paginación basada en el cursor aquí: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#paging.

Es posible que se deba a que algunas de las publicaciones se crean directamente. Para recuperar estas publicaciones directas, consulta la nota en el campo "is_inline" del extremo "/promotable_posts" en la parte inferior de esta sección de documentación: https://developers.facebook.com/docs/reference/ads-api/adcreative/v2.2#object_story_spec

Plataforma de Messenger

Si el usuario responde la primera pregunta, la ventana de mensajes se abrirá. Si las respuestas proporcionadas descalifican al usuario o este no responde, la experiencia publicitaria finalizará, y el anuncio pasará el control de la conversación a la app de destino y proporcionará los metadatos "messenger_lead_gen_incomplete" (generación de cliente potencial incompleta en Messenger). Esto permite que los negocios tengan una experiencia de dirección alternativa para convertir a los usuarios que no son clientes potenciales en clientes. Visita Webhook del HOP después del anuncio para clientes potenciales para obtener más información

"Send Summary" (enviar resumen) se activa de forma predeterminada solo si se selecciona una app en el diálogo "Crear plantilla" dentro del anuncio. Ten en cuenta que el resumen se puede desactivar en el anuncio después de seleccionar la app conectada. Aunque una app no esté seleccionada, el anuncio de generación de clientes potenciales pasará el control de la conversación al receptor principal de traspaso, si se implementó, o bien liberará el control. Los mensajes posteriores luego de que se envíe la información del cliente potencial se enviarán a las apps que se suscriban. Las apps pueden enviar una solicitud a la API de conversación para recuperar el historial de mensajes y recibir la información compartida durante la generación de clientes potenciales.

De forma predeterminada, la Send API y los webhooks se bloquean mientras un anuncio de generación de clientes potenciales está en curso. El identificador de app 413038776280800 para la app de generación de clientes potenciales en Messenger controlará la conversación. Este comportamiento se puede desactivar con la opción "Bloquear Send API" en el diálogo "Crear plantilla" dentro del anuncio.

Una vez que finalice el envío de la información de clientes potenciales, las apps recibirán webhooks cuando los usuarios envíen mensajes y podrán responderlos. Si otra app se seleccionó como parte de la app, solo la app seleccionada podrá responder y recibir webhooks en el canal de mensajes. La ventana de mensajes está abierta y la app puede responder con la API de envío.

Las apps se instalan desde el sitio web de la app con el inicio de sesión con Facebook luego de otorgar el permiso "pages_messaging" (mensajería en páginas) a una página en particular. Las apps autorizadas aparecerán en la sección Configuración de la página de Mensajería avanzada.

Solo aparecerán las apps autorizadas para la página. Puedes ver las apps autorizadas en la sección Configuración de la página de Mensajería avanzada. Las apps se instalan desde el sitio web de la app con el inicio de sesión con Facebook luego de otorgar el permiso "pages_messaging" (mensajería en páginas) a una página en particular.

Las experiencias de chat automático (es decir, bots) deben informar que la persona está interactuando con un servicio automatizado:

  • al comienzo de cualquier conversación o cadena de mensajes
  • después de un tiempo prolongado
  • cuando el chat pase de ser una interacción con un humano a una experiencia automatizada

Para obtener más información sobre esta política, visita esta página.

Cuando las leyes aplicables lo exijan, las experiencias de chat automático (es decir, bots) deben informar que una persona está interactuando con un servicio automatizado. Esta es una buena práctica incluso cuando las leyes aplicables no lo exijan, de manera que los usuarios no se sorprendan. Para obtener más información sobre esta política, visita esta página.

Sí, es posible que una sola aplicación de Facebook esté suscrita a varias páginas. Una vez que se sujete a revisión (por ejemplo, para concederle el permiso pages_messaging), la app puede suscribirse para recibir webhooks en más de una página. Obtener el contexto de cada webhook en función de la carga dependerá de ti.

Sí, puede haber más de una app con suscripciones a la página. Si varias apps administran la misma conversación, es recomendable usar el protocolo de traspaso para administrar qué bot tiene la conversación en cada momento.

Este error se puede producir si el usuario eliminó la conversación. Como consecuencia, el bot no puede volver a comunicarse con el usuario hasta que este reinicie la conversación al enviar un mensaje.

Te ofrecemos esta solución alternativa para que utilices usuarios de prueba para tu integración de la plataforma de Messenger:

  1. En la página de roles de tu aplicación, crea un nuevo usuario de prueba haciendo clic en el botón "Agregar".
  2. Selecciona la opción ¿Autorizar usuarios de prueba para esta aplicación? y concede los permisos "manage_pages" y "page_messaging".
  3. Utiliza el botón "Editar" y obtén un token de acceso para este usuario (usando la versión 2.6). Recuerda guardarlo para más tarde.
  4. Utiliza el botón Editar para iniciar sesión como usuario de prueba.
  5. Una vez que hayas iniciado sesión, crea una página como usuario de prueba.
  6. Utiliza el token de acceso de usuario para el usuario de prueba con el fin de obtener el token de acceso de página para este. Puedes hacerlo con la siguiente llamada:
    https://graph.facebook.com/v2.6/me/accounts?access_token=[TEST_USER_ACCESS_TOKEN]
    (Documentación)
  7. Utiliza este token de acceso de página para vincular tu aplicación de Facebook con tu página:
    https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=[TEST_USER_PAGE_ACCESS_TOKEN]
            
    (Documentación)
  8. Luego de seguir estos pasos, recibirás actualizaciones en tiempo real (RTU) en tu página de prueba y podrás enviar mensajes a tu usuario de prueba desde ella. Además de esto, puedes reemplazar tu token de acceso con un token de larga duración en caso de que caduque demasiado pronto para tus pruebas. Puedes consultar la documentación aquí:
    GET /oauth/access_token?  
        grant_type=fb_exchange_token&           
        client_id={app-id}&
        client_secret={app-secret}&
        fb_exchange_token={short-lived-token} 
            

Es posible que esto se deba a varias razones:

  • Estás usando un identificador de inicio de sesión con Facebook. Los identificadores de usuario de inicio de sesión con Facebook no están destinados para funcionar con la API de envío y recepción. Solo los identificadores de usuario que se obtengan mediante autenticación con la plataforma de Messenger funcionarán con esta.
  • Estás usando un identificador con el token de acceso de página incorrecto. Los identificadores de usuario para la plataforma de Messenger están delimitados a una página y, por consiguiente, son específicos de la página. Si usas un identificador de usuario válido pero con un token de acceso de página que esté asociado a una página diferente, la llamada no funcionará. Asegúrate entonces de utilizar el identificador de usuario y el token de acceso de página asociados con la misma página.
  • Estás enviando un número de teléfono que no se verificó recientemente. Al usar la API de envío con un número de teléfono, solo enviaremos mensajes si dicho número se verificó recientemente. Incluso si el número de teléfono aparece verificado, pero no lo fue recientemente, el envío producirá un error. Verifica de nuevo tu número de teléfono y espera 24 horas para volver a probar.

Cuando utilices el plugin "Enviar a Messenger", puedes utilizar el parámetro data-ref como parámetro de salida para enviar cualquier información relacionada con el contexto del clic.

Las personas también pueden encontrar tu página a través de la búsqueda en Messenger. En estos casos, no tendrás un parámetro de salida. Puedes utilizar la función de vinculación de cuentas para asociar una conversación con una cuenta de usuario en tu sitio.

En el panel de aplicaciones, en Configuración de Messenger, hay un botón llamado "Mostrar errores recientes" que muestra si los webhooks están recibiendo la respuesta 200 o presentan errores.

Hay una herramienta que muestra los errores recientes del wekbhook. Si no es posible entregar webhooks, los servidores de Facebook cancelarán la suscripción de tu URL. Para encontrar la herramienta, ingresa al Panel de aplicaciones > Messenger > Configuración; dentro de la tarjeta Webhooks hay un botón llamado Mostrar errores recientes.

Asegúrate de que tu webhook esté respondiendo con un código de estado de 200. Esto nos informa que se recibió correctamente el webhook. Si no devuelves un 200, volveremos a intentar la llamada hasta que se reciba satisfactoriamente. Además, si un webhook no devuelve un 200 durante un lapso de tiempo prolongado, mostraremos alertas para desarrolladores.

De igual manera, ten en cuenta que un código de estado correcto se devuelve de forma oportuna. Una llamada de webhook caducará después de 20 segundos. Asegúrate de diseñar tu código de tal manera que los webhooks se procesen de forma asincrónica, con el fin de que un código de estado correcto se pueda devolver inmediatamente y se procese por separado.

Las llamadas al webhook contienen un campo en el encabezado denominado X-Hub-Signature, que se puede utilizar para validar que la llamada provenga de Facebook.

Debes seguir dos pasos para recibir devoluciones de llamadas. En primer lugar, asegúrate de que tu webhook esté configurado correctamente (https://developers.facebook.com/docs/messenger-platform/webhook-reference#setup). Verás un indicador cuando la configuración sea correcta.

En segundo lugar, debes suscribirte a cada página. Verás una lista de todas las páginas a las que estás suscrito.

Si las llamadas a tu webhook devuelven un mensaje de error durante mucho tiempo, se cancelará la suscripción de tu aplicación y tendrás que volver a agregar tu webhook y suscribir de nuevo tu página.

Open Graph

Es muy probable que el contenido se deba volver a extraer, lo que sucederá automáticamente con el tiempo o se puede activar manualmente mediante la herramienta de depuración.

No puedes controlar cómo se mostrará una publicación en la sección de noticias o la biografía al compartir la historia de Open Graph, aparte de suministrar las etiquetas respectivas para la página. Facebook optimiza automáticamente las publicaciones para garantizar la máxima interacción con el contenido.

Correcto, la función de enlaces de acción quedó obsoleta. La compatibilidad con estos se eliminó del sitio de Facebook, por lo que también quedará obsoleta en la plataforma. Es posible que retomemos esta función en el futuro, pero actualmente no está previsto en el plan de trabajo.

Si la página web usa nuestras metaetiquetas de Open Graph e incluye una entrada "og:image", recuperamos esa imagen y la mostramos en la vista previa. Además, si el sitio proporciona las entradas "og:image", "og:image:width" y "og:image:height", esa imagen se usará incluso para el primer contenido compartido creado.

Si no se proporciona, significa que tendrás que esperar a que nuestros rastreadores recuperen y analicen las imágenes primero. Visita http://ogp.me/#structured para ver un ejemplo de cómo hacerlo.

API de REST

Este comportamiento es intencional. La API de REST quedó obsoleta hace mucho tiempo y se prevé que no siga funcionando. Existe una limitación, ya que los tokens de acceso a la página no se pueden usar con la API de REST.

Plugins sociales

Puedes definir el idioma para el botón "Me gusta" usando el parámetro "locale" en el SDK para JavaScript. Esto funcionará para los usuarios que no hayan iniciado sesión. Si un usuario inicia sesión, también se toma en cuenta la preferencia de idioma. Si se define en un idioma específico, el botón "Me gusta" estará en ese idioma.

Puedes probar este comportamiento visitando la página sin iniciar sesión en Facebook (o usando una sesión privada del navegador).

La política de Facebook prohíbe completar previamente el área de texto al compartir en Facebook. El usuario de la aplicación deberá completar por sí mismo el texto que quiere compartir.

Completar previamente el área de texto al compartir infringe la Política de la plataforma 2.3 ( https://developers.facebook.com/policy/#control ). Aplicamos esta política para asegurarnos de que los usuarios compartan exactamente lo que quieren compartir en Facebook y no texto que no aprobaron de forma accidental.

Este puede ser el comportamiento previsto, si cambias o modificas la URL de la página web. Cada URL que aloja el plugin de comentarios se trata como un objeto de Open Graph independiente, con el que se asocian los comentarios. Por lo tanto, si modificas la URL, se crea un nuevo objeto, por lo que es posible que los comentarios existentes no se muestren en la página.

El plugin "Compartir" no te permitirá pasar parámetros personalizados y, en su lugar, extraerá directamente los metadatos de las metaetiquetas de Open Graph de la página.

Obtén más información sobre las prácticas recomendadas para compartir contenido en este documento: https://developers.facebook.com/docs/sharing/best-practices

API de WhatsApp Business

Yes, Whatsapp Flows can be sent with On-Premises API. You can learn more about Whatsapp Flows here, or learn how to get started with Whatsapp Flows and On-Premises API here.

No this is not possible. Numbers that are registered under WABAs (WhatsApp Business Accounts) can only message regular WhatsApp accounts.

We will provide a seven day grace period post sending the warning. This will allow time for businesses to adjust their behavior. If businesses continue to exceed our internally set threshold of calls to the Contacts API vs. number of messages sent, we will permanently disable the phone number.

Interactive messages can be reopened by the user in order to resend an option. This is in case of mistyping the desired option or wanting to choose a new option.

Through user testing we’ve identified 10 as the optimal number of rows to provide a good user experience. If you have a list of more than 10 options, and cannot condense into one list message, we recommend creating an additional step in the flow and using two list messages. During testing businesses had higher response rates and conversions with this approach than using text-based lists.

Through user testing we’ve identified 3 as the optimal number of buttons to provide a good user experience. If you have a list of more than 3 options, and cannot condense it into one button message, we recommend using list messages. During testing, businesses had higher response rates and conversions with list messages than using text-based lists.

There may be a very small number of users for whom their app version does not support this feature, the business will receive a webhook notification throwing an error that describes why the message was unable to be received. It is up to the business to determine how to handle this error elegantly. Best practice would convert the interactive message to a text-based list to allow the user to complete the workflow.

If there is a delay in a subset of numbers, then it is likely not an issue affecting the customers integration but rather an issue on the recipients end, these delays in delivery can happen for a number of reasons. See Send Message Performance, Delays for more information.

No, actualmente, no permitimos el cambio de la ruta predeterminada del almacenamiento multimedia (/usr/local/wamedia/). Todo el almacenamiento multimedia debe estar en esta ubicación predeterminada para funcionar correctamente.

No, actualmente, tenemos que usar el sistema EFS de AWS para compartir el volumen del contenido multimedia entre la app principal y la app web.

La app principal comprobará los directorios /usr/local/waent/data y /usr/local/waent/log dentro del contenedor de la misma y se asegurará de que haya, por lo menos, 10 MB de almacenamiento, de lo contrario, mostrará este error crítico.

Revisa tus registros y los datos del directorio para asegurarte de tener suficiente espacio.

No. Actualmente, no hay forma de ejecutar varios números en la misma configuración de cliente de la API de WhatsApp Business. Estamos trabajando para lograr una solución adecuada que permita esta opción en el futuro.

Usa el punto de conexión de la API de services de la recolección de elementos no utilizados de la base de datos para purgar los mensajes y la recepción de mensajes de las tablas messageStore.messages y messageStore.messages_receipt_log.

Vuelve a comprobar la configuración pass_through de tu app. No recibirás ninguna devolución de llamada de estado de lectura si activaste pass_through con la v2.29.1 o una versión posterior del cliente de la API de WhatsApp Business.

Si quisieras recibir la devolución de llamada de estado de lectura, desactiva la configuración pass_through de la app. Ten en cuenta que es posible que el almacenamiento en bases de datos crezcan rápidamente si desactivas pass_through. Consulta la documentación sobre administración de bases de datos para obtener más información sobre cómo administrar tus bases de datos.

La recolección de elementos no utilizados de la base de datos elimina periódicamente las tablas messages y messages_reciept_log para ayudar a gestionar la base de datos.

El recolector de elementos no utilizados retiene ciertos mensajes para permitir que se realice correctamente la entrega o el procesamiento. Por ejemplo, si se retienen los mensajes entrantes por un determinado período de tiempo, las integraciones comerciales permiten marcar el mensaje como leído.

La app principal recopila los elementos no utilizados en intervalos aleatorios (es decir, una vez cada pocas horas). Esto permite prevenir una potencial degradación en el rendimiento en las pilas de alta disponibilidad como consecuencia de la contención de la base de datos.

La recolección de elementos no utilizados funciona de manera independiente de la cola de devoluciones de llamada. Por ejemplo: si el servidor del webhook no está disponible por 4 días, se almacenarán las devoluciones de llamada, que se entregarán una vez que se restablezca la conectividad del servidor del webhook.

Solo se podrá hacer clic en un enlace si el destinatario ya guardó tu número comercial como contacto o si tienes una cuenta de empresa oficial.

Antes de la versión v2.29.x, el tamaño de la lista de mensajes salientes podía seguir aumentando hasta generar un error. La actualización a v2.29.3 resuelve este error.

Los análisis de códigos QA y enlaces directos no estarán disponibles, ya que limitamos la cantidad de datos que registramos con el fin de resguardar la privacidad de los usuarios.

Es tu responsabilidad utilizar el código QR adecuado en función de la ubicación en la que se espera utilizar dicho código y del idioma de los usuarios.

Ahora, es posible generar códigos QR y administrarlos directamente en la API de administración de WhatsApp Business, y los usuarios pueden escanearlos con la cámara de WhatsApp, iOS o Android.

Asimismo, con los códigos QR de WhatsApp, también puedes realizar los siguiente:

  • Personalizar por completo los mensajes completados automáticamente, o bien modificarlos o eliminarlos cuando quieras.
  • Los usuarios se dirigirán siempre de manera directa a la app sin pasar por ninguna página intersticial.
  • La experiencia en la app para un código caducado envía un claro mensaje al usuario.

Si un usuario intenta acceder a un código QR o a un enlace directo que se eliminó, visualizarán un mensaje de error en el que se indica que el código QR o en enlace directo caducaron.

Si el usuario tiene instalado WhatsApp Escritorio, se iniciará una conversación con la empresa. De no ser así, se le solicitará al cliente que instale WhatsApp Escritorio.

Los nuevos enlaces directos permiten editar o eliminar en cualquier momento los mensajes predeterminados que están asociados a un enlace. También reducen la sintaxis de la URL a un código aleatorio, lo que evita la necesidad de insertar mensajes en la URL y de ocultar el número de teléfono.

Recomendamos el formato de archivo .svg para lograr que la calidad de los materiales impresos sea la mejor.

No es posible asociar un único número de teléfono de una cuenta de WhatsApp Business con más de 2.000 códigos QR y enlaces directos.

We are announcing the deprecation of Groups through the WhatsApp Business API. Starting July 8, 2020, only API phone numbers in a group created prior to July 8th can continue to use/manage Groups through the WhatsApp Business API. All other API phone numbers won’t be able to create/manage Groups through the Whatsapp Business API. On October 8, 2020, we will deprecate this feature for all API phone numbers (i.e., API phone numbers will be removed from their groups and no longer be able to send messages to their group).

La v2.25.x mejora el rendimiento de salida y de entrada en comparación con versiones anteriores. Esta optimización crea conexiones adicionales a la base de datos. En algunas implementaciones, se pueden alcanzar los límites configurados por el aumento en la cantidad de conexiones de la base de datos. Para mantener el alto rendimiento, puedes aumentar la cantidad máxima de conexiones que acepta el servidor de tu base de datos. De no ser posible, puedes cambiar el parámetro "axolotl_context_striping_disabled" para desactivar este comportamiento. Consulta la documentación sobre Ajustes de apps para obtener más información sobre cómo hacer este cambio.

Si tú o tu cliente final quieren realizar una solicitud para obtener el estado de cuenta de empresa oficial de WhatsApp, consulta las instrucciones en la sección Cómo solicitar una cuenta de empresa oficial de la documentación.

No. Actualmente, los límites de mensajes solo aplican a mensajes iniciados por la empresa (notificaciones).

Al enviar imágenes como un álbum desde la API de WhatsApp Business, deberás enviar al menos 4 imágenes en forma sucesiva. Si la vista de conversación del usuario está activada al recibir las imágenes, la vista de álbum no estará disponible hasta la próxima visita.

No se puede crear un álbum si se cumple alguno de los siguientes criterios:

  1. Imágenes con texto
  2. Línea que separa los mensajes no leídos: el usuario ve algunas imágenes, pero no todas
  3. Encabezado de fecha: mensajes entregados en distintos días

No. Actualmente, el cliente de la API de WhatsApp Business no se ejecuta en Docker para Windows. Para las necesidades de desarrollo, el uso de una máquina virtual Linux y poder ejecutar un Docker en la misma es la solución recomendada. Respecto a las cargas de trabajo de producción, recomendamos utilizar un servidor Linux para evitar problemas de compatibilidad y de rendimiento.

En el caso de los clientes de la API de WhatsApp Business que utilizan la versión v2.21.6, cuando el cliente se desconecta del servidor este puede permanecer desconectado durante algunos minutos (hasta 4 minutos) y luego volver a intentar conectarse. La actualización a la versión v2.23.4 permite reducir el tiempo de inactividad del cliente en caso de intentar una conexión al servidor.

El código de error 471 se refiere a los límites de frecuencia basados en la calidad. Consulta la documentación de límites de frecuencia basados en la calidad para obtener más información.

Todas las empresas comienzan con el nivel más bajo y se actualizan de manera automática a niveles superiores a medida que aumenta el envío de mensajes de alta calidad.

Sí, al enviar una plantilla de mensaje, si no se pudo mostrar en el extremo receptor, recibirás una devolución de llamada con estado "no se pudo entregar" con "estructura no disponible" en el objeto de error que indica que el mensaje no se pudo mostrar. Según el destinatario, puede que recibas también una devolución de llamada con estado "entregado" que simplemente indica que el mensaje se entregó al destinatario después de lo cual el destinatario no pudo desplegar el mensaje.

Los siguientes son errores de validación del lado del envío de la plantilla de mensaje. Los motivos por los que pueden aparecer son los siguientes:

  • "No existen plantillas de mensaje en el idioma tu idioma" o "No existen plantillas de mensaje en el idioma tu idioma y en la configuración regional tu configuración regional". El paquete de idioma indicado no existe. Verifica tu cuenta de administrador comercial.
  • "La plantilla nombre de tu plantilla no existe en el idioma tu idioma" o "La plantilla nombre de tu plantilla no existe en el idiomatu idioma y en la configuración regional tu configuración regional". Estás intentando utilizar una plantilla que no existe (no se ha creado o aún no ha sido aprobada). Si intentas enviar un mensaje con una plantilla eliminada, también obtendrás este error.
  • "El número de localizable_params num1 no coincide con el número esperado de params num2". Estás intentando enviar un mensaje de plantilla con parámetros que no coinciden con el número de parámetros esperado. Verifica que tu invocación de API sea correcta.
  • "nombre de tu plantilla es una plantilla enriquecida y requiere el uso de la API de mensajes de plantilla". Estás intentando enviar una plantilla de mensaje multimedia como plantilla de mensaje normal. Asegúrate de que el tipo de mensaje sea template. Consulta la documentación sobre plantillas de mensajes para obtener más información.
  • Una vez aprobadas las plantillas en el administrador comercial (o eliminadas), el cliente de la API de WhatsApp Business puede demorar hasta 20 minutos en recibir las plantillas actualizadas. Si intentas enviar un mensaje con una plantilla que se acaba de aprobar, y obtienes un error que indica que la plantilla no existe, puedes volver a intentar enviar el mensaje después de esperar el tiempo especificado anteriormente.

Puede que recibas mensajes duplicados en Webhook de WhatsApp dado que la única garantía que hay es que esos mensajes se reciban al menos una vez (a diferencia de solo una vez). Si esto afecta el modo en que procesas los mensajes, te sugerimos eliminar los mensajes duplicados de Webhook según el identificador del mensaje.

Si ese número de teléfono no ha sido utilizado en la API de WhatsApp Business, puedes utilizarlo. Sigue los pasos de migración que se detallan aquí para reutilizar ese número de teléfono.

A partir de la versión v2.18.26, el extremo de estadísticas de app permite la exportación de métricas internas en formato de texto Prometheus. Consulta la documentación de supervisión de instancias para obtener más información.

Se devuelve un objeto de profile vacío si el perfil de la empresa solo se completó parcialmente. Actualiza a la versión v2.21.4 para resolver este problema.

Consulta la documentación sobre configuración del perfil de la empresa para obtener más información sobre cómo completar el perfil de la empresa.

Si recibes un error similar al siguiente al configurar tu implementación de AWS, intenta cambiar el nombre de la pila por uno que tenga 8 caracteres o menos.

Nombre de país (código de letra 2) [AU]:Nombre de estado o provincia (nombre completo) [Some-State]:Nombre de localidad (por ejemplo, ciudad) []:Nombre de organización (por ejemplo, compañía) [Internet Widgits Pty Ltd]:Nombre de unidad organizativa (por ejemplo, sección) []:Nombre común (por ejemplo. servidor FQDN o TU nombre) []:la cadena es demasiado larga, el nombre común debe tener menos de 64 bytes de largo (por ejemplo, servidor FQDN o TU nombre) []:Dirección de correo electrónico []:error, no se especifican objetos en los problemas de archivo de config lo que hace que el dispositivo de Solicitud de Certificado Creada sea clave para internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com

No existe límite para el número de parámetros de una plantilla de mensaje.

Se permite un máximo de 250 plantillas de mensaje por cuenta de WhatsApp Business.

Si un evento de Webhook no se entrega por algún motivo (por ejemplo, el cliente está fuera de línea) o si la solicitud de Webhook devuelve un código de estado HTTP que sea distinto de 200, volveremos a intentar la entrega de Webhook. Volveremos a intentar las entregas que tengan demoras crecientes hasta un tiempo de espera determinado (por lo general de 24 horas, aunque esto puede variar), o hasta que la entrega se realice correctamente.

Puede haber casos en los que necesites más tiempo para tratar una consulta del cliente y que solo puedas dar una respuesta pasadas las 24 horas. Te recomendamos crear plantillas de mensaje para:

  • Entregar el resultado al usuario
  • Solicitar al usuario que responda para activar la ventana de atención al cliente

En ambos casos, asegúrate de ofrecer el mayor contexto posible en la plantilla de mensaje. Por ejemplo:

  • "Hola {{1}}, respecto al problema informado anteriormente, lamentamos notificarte que {{2}}. Te pedimos disculpas por las molestias ocasionadas".
  • "Se ha actualizado tu ticket de asistencia. Por favor responde si sigues necesitando asistencia".

WhatsApp realiza experimentos para medir y comprender el impacto de las notificaciones de la API de WhatsApp Business en la experiencia del usuario y en el producto en general. Si el usuario al que envías un mensaje pertenece a uno de estos experimentos, puede que no reciba tus notificaciones incluso aunque haya elegido hacerlo.

Si haces una copia de seguridad de tu configuración actual y la restauras en una nueva computadora, la información de registro debería migrar junto con el resto de la implementación. Consulta la documentación sobre la configuración de copias de seguridad y restauración para obtener más información.

Sí, la rotación de registros para los contenedores de app web y los contenedores de app principal tienen comportamientos levemente diferentes:

  • App web: se conservan los últimos 30 archivos de registro. El archivo de registro rota solo si su tamaño supera los 20 MB.
  • App principal: se conservan los últimos 30 archivos de registro. El archivo de registro rota solo si su tamaño supera los 15 MB. Los archivos rotados se comprimen.

Contáctate con el servicio de asistencia para brindar cualquier información que tengas. Investigaremos y bloquearemos cualquier número falso.

Todas las compilaciones del cliente de la API de WhatsApp Business tienen un plazo de caducidad de 6 meses desde la fecha de lanzamiento. Si ves este error, actualiza a la versión más reciente lo antes posible.

Antes de enviar un mensaje, debes comprobar si existe el contacto. Consulta la Documentación sobre contactos para obtener más información acerca del proceso.

Este error se debe a que la app principal aún no se ha inicializado. Significa que el registro puede no haberse realizado correctamente. Vuelve a intentar el registro antes de hacer una llamada a otro extremo. El primer paso después de instalar la API de WhatsApp Business es iniciar sesión. El segundo paso es registrarse. Estos dos pasos son necesarios antes de realizar solicitudes a cualquier otro extremo.

Nota: A partir de la versión v2.27.8, la política de idioma fallback quedó obsoleta y la nueva política predeterminada es deterministic.

Si creas una traducción a un nuevo idioma, debes traducir todos los elementos que utilizas a ese idioma. De lo contrario, podrías obtener errores de "estructura no disponible" debido a que el teléfono del destinatario no puede encontrar el elemento que espera en el idioma apropiado. Estos errores de estructura no disponible aparecen al enviar mensajes de plantilla mediante el uso de la política de reserva.

Si crear traducciones a idiomas no es una opción que desees en este momento, puedes utilizar la política determinista para evitar estos errores.

La carga de mensaje de un usuario puede ser un archivo multimedia o de texto.

En el caso de los mensajes de texto, no creemos que exista ningún peligro identificado.

En el caso de los archivos multimedia:

  • Por lo general, se espera que las empresas utilicen algún tipo de software de protección (es decir, antivirus, antimalware, etc.) para analizar cualquier posible amenaza.
  • WhatsApp no puede identificar ni comprobar el contenido de un archivo que se transfiere ya que está cifrado de extremo a extremo (lo mismo aplica al contenido de solo texto).
  • Existe una opción para evitar que los archivos multimedia se descarguen de manera automática en el cliente de la API de WhatsApp Business. Si la empresa no quiere recibir ningún archivo de los usuarios, puede configurar el campo auto_download como matriz vacía.

No, no hay forma de que la API de WhatsApp Business detecte si varios dispositivos utilizan el mismo número de teléfono.

Los errores de "estructura no disponible" se producen cuando el teléfono no puede leer el mensaje de plantilla.

Las plantillas se almacenan en el servidor. Cuando se envía un mensaje de plantilla con el nodo messages ,solo se envían al teléfono los parámetros localizados, el espacio de nombres, el idioma y el nombre de elemento, pero no el mensaje completo. Una vez que estos valores se entregan al teléfono, este intenta representarlos para mostrar un mensaje.

Si se produce algún error al representarlo, se envía un error structure unavailable a la URL de la devolución de llamada que contiene el identificador del destinatario y del mensaje. Estos errores pueden deberse a espacios de nombre incorrectos, un error de coincidencia en el parámetro localizado, un nombre de elemento incorrecto, etc.

Ve a "Administrador de WhatsApp" en tu cuenta de Administrador comercial de Facebook para ver el número de parámetros correcto. Vuelve a comprobar que el espacio de nombre sea correcto y que el nombre de elemento exista.

Una fuente de errores común es no crear traducciones para todas las plantillas que están en uso. Por ejemplo, si cuentas con dos plantillas que sueles enviar y agregas una traducción a un nuevo idioma de una plantilla, asegúrate de agregar también esa traducción a un nuevo idioma de la otra plantilla. Si tienes pensado comunicarte en más de un idioma, deberás proporcionar las traducciones de todas las plantillas en todos los idiomas admitidos.

La buena noticia es que los errores structure unavailable suelen deberse a errores en la llamada a la API messages y se pueden solucionar si se cambia la carga de envío.

Puedes registrar nuevos números de teléfono y eliminar aquellos viejos de tu cuenta de WhatsApp en el administrador comercial de Facebook.

  1. Desde tu cuenta de WhatsApp, ve a Configuración.
  2. Haz clic en Administrador de WhatsApp.
  3. Selecciona la pestaña Números de teléfono. Aquí podrás administrar todos los números de teléfono de la cuenta.

En las imágenes, el texto se agregará como descripción. El texto aparece con su extensión completa en las imágenes de Android y iPhone.

En los documentos, el texto reemplaza el nombre del archivo. No tiene la finalidad de mostrarse en el dispositivo del usuario como texto de descripción, sino la de mostrar el nombre del archivo. En iPhone, se muestra el texto completo, mientras que en Android el nombre del archivo se trunca. Tales situaciones se deben a una limitación técnica en la implementación actual de WhatsApp en ambos dispositivos.

Si el proceso de registro no funciona con "sms" a causa de demasiados intentos y recibes el mensaje "access denied" (acceso denegado), intenta registrarte mediante "voice" (llamada de voz).

Actualmente es de 7 días. Si un caché no se ha actualizado durante más de 7 días, incorporará el paquete de idiomas más reciente del servidor sin importar si el elemento ya existe en el paquete o no.

El dispositivo cargará primero desde la caché y, si existe un elemento, desempaquetará el mensaje a través de la plantilla de mensaje. Entonces, en lugar de modificar las plantillas de mensaje, es más seguro simplemente agregar una nueva con un nombre de elemento diferente. Eso garantizará que el paquete de idiomas se vuelva a descargar cuando no se pueda encontrar ese elemento. Los costos de almacenamiento de las plantillas de mensajes son insignificantes de modo que no existe ninguna necesidad de eliminar las plantillas de mensajes.

Consulta la documentación de Envío de plantillas de mensajes - Idioma para obtener más información.

Para garantizar una experiencia de alta calidad a las empresas y a los usuarios, tenemos una versión preliminar pública limitada. Si quieres trabajar con nosotros, envíanos más información sobre tu empresa para considerarla mientras seguimos ampliando nuestra disponibilidad, o bien, comunícate con tu representante de Facebook, si es que ya tienes uno.

Cerrar la sesión de un usuario a través del extremo users invalidará todos los tokens de autenticación asignados a esa cuenta. Eliminar un usuario tendrá el mismo efecto, aunque esta acción es mucho más drástica. Ten presente que iniciar la sesión de un usuario a través del extremo users devolverá un nuevo token de autenticación, pero no invalidará los tokens de autenticación que ya están en uso para ese usuario. Cualquier persona que posea un token que se haya otorgado con anterioridad podrá seguir usándolo hasta que caduque o quede invalidado mediante alguno de los métodos antes mencionados.

Si te aparece este error pero el parámetro obligatorio faltante al que se hace referencia está definido en el cuerpo JSON, podría ser un error del análisis JSON. Este error se produce cuando la carga completa JSON no puede analizarse debido a errores de formato de JSON. Verifica que no haya caracteres JSON inválidos en los valores de esos parámetros, como un retorno de carro al final. Algunas veces los parámetros se copian con espacios adicionales en blanco que pueden contener caracteres que rompen el formato JSON.

Existen muchos motivos para esto. Es posible que tu app principal esté caída o que tu base de datos no esté configurada correctamente. Si no sucede ninguna de estas cosas, revisa los registros de tu app principal (o los registros maestros de la app principal si estás utilizando múltiples conexiones). Si ves errores de conexión de base de datos, es probable que tu base de datos se esté quedando sin conexiones. Consulta la documentación de MySQL o la documentación de PostgreSQL para obtener información sobre este error.

Te recomendamos incrementar el número de conexiones a la base de datos en tu base de datos. 1000 conexiones a la base de datos debería ser un número seguro, pero toma una decisión bien fundada sobre el número de conexiones que necesites. Si el error persiste, abre un ticket de asistencia.

Entre los motivos por los que una plantilla de mensaje podría rechazarse se incluyen los siguientes:

  • Que incluya contenido potencialmente abusivo como lenguaje ofensivo o contenido de tipo correo no deseado
  • Que incluya contenido promocional
  • Que no coincida con el tipo de etiqueta seleccionado
  • Que tenga un formato incorrecto

Un error de "conexión rechazada" probablemente signifique que la app principal no está funcionando. Utiliza docker ps para ver si la app principal está funcionando. Si no es así, revisa los registros de Docker. Es posible que la app principal no pueda conectarse a la base de datos. Asegúrate de que tu base de datos esté configurada correctamente.

Esto sucede si el puente de Docker está dañado. La mejor solución para esto es detener el servicio de Docker y reiniciarlo. Además, puedes intentar docker restart en tus contenedores.

WhatsApp verifica con seguridad si un número proporcionado pertenece realmente a un teléfono. El hecho de que un usuario tenga una cuenta de WhatsApp es la prueba de que se ha confirmado el número y de que nadie más ha utilizado ese número para registrarse en WhatsApp posteriormente. Sin embargo, esto no permite garantizar la ubicación física de la tarjeta SIM.

Por otro lado, si un usuario pierde su teléfono o se lo roban, puede desactivar su cuenta de WhatsApp. Para obtener más información sobre cómo los usuarios pueden desactivar sus cuentas, consulta Preguntas frecuentes sobre teléfonos perdidos y robados.

Si el número de teléfono de un cliente queda inactivo, pero el cliente aún está utilizando WhatsApp, el cliente seguirá teniendo acceso a WhatsApp hasta que el número de teléfono se reasigne o vuelva a registrarse.

WhatsApp strongly verifies whether number provided actually belongs phone. The fact that a user has a WhatsApp account is proof that they confirmed the number and no one else has used that number to register on WhatsApp subsequently. However, It is not a guarantee of the physical location of the sim.

On the other hand, if users phone is lost or stolen, they can deactivate their WhatsApp account. You may read to know more about how users can deactivate their account here.

Este error se produce cuando la base de datos no se ha configurado correctamente.

  • Asegúrate de estar utilizando la versión de MySQL 5.7 o una versión posterior, o bien, PostgreSQL 9.5.x, 9.6.x, 10.x.
  • La contraseña de la base de datos no debe contener ninguno de estos caracteres: ?{}&~!()^.
  • Si utilizas AWS, asegúrate de que tu pila tenga un nombre corto. Consulta la documentación sobre Instalación para obtener más información.

Sí, la conexión TCP es necesaria. Si tu empresa no puede abrir puertos adicionales, puedes utilizar la conexión SSL terminada.

Consulta la documentación sobre requisitos de la red para obtener más información.

Este es un problema conocido. A veces actualizar el cliente de la API de WhatsApp Business utilizando los scripts de CloudFormation da como resultado que también sea necesario actualizar la pila de DB RDS. La nueva pila de RDS no tendrá el mismo nombre de host que la pila original y los contenedores de Docker no podrán conectarse a la base de datos. La solución es utilizar SSH en la instancia de EC2 creada por CloudFormation, actualizar el archivo whatsapp.conf con el nuevo nombre de host y, luego, reiniciar los contenedores de Docker para que puedan seleccionar la nueva configuración.

Sí, envía una llamada API al nodo de contacts antes de enviar un mensaje. La información de verificación de contacts se almacena en caché en el contenedor y, si esto no se hace, se podría generar un error de Unkown Contact. Consulta la documentación Comprobar contactos para obtener más información.

Use the mcdockerreset script and tear down the webapps then use the mcdockersetup script to bring up a new webapp.


Reason: When the webapp first connects to the DB, it creates the database.yml file. it will never try to create it again. The coreapps will just not start up on a bad DB config; however, the webapp will, so you see the master and slave nodes in your DB because they were setup correctly once you got around all the DB and script issues but the webapps were started by the script in a bad state to begin with.

Si Webhook no envía una devolución de llamada, la devolución de llamada se coloca en una cola de reintento. No se recibirá ninguna de las devoluciones de llamada que se envíen después del error de devolución de llamada inicial. Únicamente después de que la devolución de llamada inicial que falló se realice correctamente se continuará con el resto.

El cliente de la API de WhatsApp Business te envía las devoluciones de llamada de Webhook a través del contenedor de app principal. Por lo tanto, tu extremo de Webhook debe configurarse para que acepte las solicitudes entrantes de la app principal.

Deberías registrar un segundo número de teléfono y configurar una segunda pila de CloudFormation o una instancia de Docker para la prueba. Si tienes dos clientes de la API de WhatsApp Business activos que usan el mismo número de teléfono, el servidor te expulsará porque las claves de cifrado entrarán en conflicto. Te recomendamos tener un segundo entorno que puedas usar para probar tu instancia que no es de producción antes de realizar algún tipo de migración a tu cliente de producción.

Se requiere MySQL 5.7.x, PostgreSQL 9.5.x, 9.6.x, 10.x. Utilizar una versión anterior arrojará un error de Unable to initialize config store.

Cuando envías un mensaje, apenas recibes un identificador de mensaje, significa que el mensaje se almacenó en la base de datos. El cliente de la API de WhatsApp Business seguirá intentando enviar ese mensaje hasta que el servidor de WhatsApp confirme la recepción. Este proceso no tiene cronograma final. El servidor de WhatsApp intentará entonces entregar ese mensaje al teléfono del usuario. Si el teléfono del usuario no está en internet, el mensaje se almacenará durante 30 días antes de que el servidor de WhatsApp lo descarte.

Las tablas de la base de datos almacenan información relacionada con la configuración de la app, los hilos de chat, los mensajes, el contenido multimedia, etc., que son necesarios para que la app funcione.

Nadie notifica a tu empresa cuando un cliente cambia su número de teléfono de WhatsApp. Si utilizas el nodo contacts, el estado para ese número será invalid.

No, solo puedes ejecutar una cuenta por instancia. Si necesitas una segunda cuenta de prueba, asegúrate de usar un número diferente.

Verificar el estado es gratis y puede consultarse con la frecuencia que sea necesaria.

Consulta la documentación Estadísticas para obtener más información sobre las estadísticas de la app y la base de datos que puedes consultar. Las estadísticas de la app se almacenan en la memoria y no es caro hacer la consulta. Las estadísticas de la base de datos requieren de más recursos y solo se deben consultar en caso de ser necesario.

Al utilizar el nodo messages, debes configurar el encabezado Content-Type como application/json para que el cliente de la API de WhatsApp Business analice de manera apropiada el cuerpo del mensaje. Además existe un encabezado de Authorization que debe configurarse y que debe contener un token de acceso vigente. Consulta la documentación Inicio de sesión y autenticación para obtener información sobre cómo obtener tu token y saber cuándo caduca.

Tu sistema puede empezar a volverse lento a medida que se ocupa el espacio disponible. Esto puede deberse a la existencia de muchos archivos multimedia, mensajes y archivos de registro grandes. Los archivos de registro se rotan automáticamente, pero si empiezan a aumentar de tamaño, lo más seguro es eliminarlos.

Los mensajes se almacenan en la base de datos. Es posible eliminar los mensajes según sea necesario. Además, si se establece pass_through como false en la configuración de la app, todos los mensajes se guardan en la base de datos hasta que se eliminan explícitamente.

Los archivos multimedia que los usuarios te envían se descargan de los volúmenes de multimedia. La empresa es la encargada de decidir qué archivos multimedia eliminar, pero en general es seguro es eliminar cualquier tipo de archivo multimedia. Puedes utilizar docker inspect your-container-id para verificar dónde se encuentra la carpeta de volumen de multimedia.

Configura MySQL localmente con Docker siguiendo la guía de MySQL de Docker.

Configura PostgreSQL localmente con Docker siguiendo la guía de PostgreSQL de Docker.

En la mayoría de los casos debes ejecutar la base de datos en un servidor físico separado de los contenedores principales y los contenedores web. El servidor de la base de datos debe tener solo unos pocos milisegundos de latencia respecto de las máquinas de cómputo.

Tú eliges cuándo eliminar el contenido multimedia.

Luego de subir un archivo multimedia, recibirás un identificador, el cual puedes usar para enviar un mensaje que incluye el elemento de contenido multimedia subido. Al enviar el mensaje de contenido multimedia, la API de WhatsApp Business cifrará y subirá el contenido a los servidores de WhatsApp, donde permanecerá durante 14 días. Luego, puedes decidir eliminar el contenido multimedia mediante su identificador correspondiente o conservar dicho contenido para usarlo más tarde. Si bien la recomendación es conservar el contenido multimedia durante 30 días, queda en ti decidir la política de retención en base a la política de tu empresa o tus casos de uso.

Sí, la base de datos puede utilizarse de otras formas sin tocar las tablas relacionadas con WhatsApp.

Verifica primero los errores críticos en las devoluciones de llamada para diagnosticar el problema.

Si observas el mensaje "Conflicto: Se detectaron varias instancias que comparten el mismo número.", deberás verificar tus contenedores. Lo más probable es que la causa sea que haya varios contenedores de Docker intentando conectarse a los servidores de WhatsApp utilizando la misma cuenta de WhatsApp. Asegúrate de que solo haya un contenedor en funcionamiento. Si tienes contenedores antiguos, ciérralos y el error desaparecerá.

Si quieres probar nuestra solución de alta disponibilidad más complicada, consulta la documentación Alta disponibilidad.

Una lista de permitidos puede crearse tanto con nombres de host como direcciones IP.

Consulta la sección de nombres de host de la documentación sobre requisitos de la red para obtener más información.

Sí. WhatsApp te permite dar formato al texto seleccionado dentro de tus mensajes con negrita, cursiva, tachado o monoespacio.

Sí, las plantillas de mensaje admiten todos los caracteres y formatos de mensajes de WhatsApp, lo cual incluye emojis, negrita, cursiva, etc. Para los emojis, deberás utilizar el carácter del emoji (copiar/pegar) en lugar de su carácter unicode equivalente.

Se permiten los números gratuitos siempre y cuando incluyas tu código de país. El motivo es que los números gratuitos sin código de país no pueden identificarse de manera unívoca, ya que el mismo número puede aplicar a dos países diferentes.

Además, cabe destacar que existen complejidades adicionales relacionadas con los números gratuitos. Por lo general, si llamas a un número gratuito con el código de país cuando estás dentro del país, la llamada no podrá hacerse. Esto significa que existe una posibilidad de que los clientes de tu país intenten marcar el número que aparece en el contacto de la empresa (con código de país incluido) y no puedan comunicarse contigo. Si esto te preocupa, deberás informarles al respecto de manera explícita.

Para obtener más información sobre números gratuitos, consulta aquí.

NO. En cualquier momento, solo puedes tener una instancia del cliente de la API de WhatsApp Business en uso para un solo número de teléfono. En cuanto registres una segunda instancia, tu primera instancia se interrumpirá y dará error. Estamos trabajando en una solución adecuada que te permitirá hacer esto. Te enviaremos información sobre cualquier actualización.

WhatsApp considera que las comunicaciones con los usuarios de la API de WhatsApp Business que administran el punto de conexión de la API en los servidores que controlan está cifrada de extremo a extremo, ya que no hay acceso de terceros al contenido entre los puntos de conexión.

Es posible que algunas organizaciones elijan delegar la administración de su punto de conexión de la API de WhatsApp Business a un proveedor de soluciones comerciales tercero. En esos casos, la comunicación utiliza el mismo cifrado de protocolo de señal. No obstante, dado que el usuario de la API de WhatsApp Business eligió a un tercero para que administre su punto de conexión, WhatsApp no considera que dichos mensajes estén cifrados de extremo a extremo. En el futuro, en 2021, tal criterio también se aplicará a las empresas que elijan utilizar la versión basada en la nube de la API alojada en Facebook.

Además, si utilizas HTTPS al hacer llamadas al cliente de la API de WhatsApp Business, esos datos serán cifrados con SSL (desde tu cliente de sistema interno al cliente de la API de WhatsApp Business).

Consulta nuestro informe técnico con información general sobre el cifrado de WhatsApp para obtener más información.

Esta falla se produce por un error en una antigua versión de cliente iOS. Esperamos que estos errores disminuyan con el tiempo a medida que se implementen actualizaciones generales.

No, no se puede garantizar que el orden de llegada de los mensajes sea el mismo que el orden en el que los mensajes fueron enviados. Si en tu caso el orden es fundamental, te sugerimos esperar la devolución de llamada entregada del primer mensaje antes de enviar el segundo mensaje.

Existe un script que puede activarse externamente para borrar registros antiguos del contenedor:

docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh

El script funciona tanto con contendores de app web como con contenedores de app principales. Al ejecutar el script, se eliminarán los antiguos archivos de registro y de esta manera solo quedarán 30 archivos de registro del contenedor.

Nota: No envíes el mismo mensaje repetidamente al mismo destinatario con la API de WhatsApp Business.

Hay múltiples razones por las que los índices de entrega no son del 100%. Entre algunos casos frecuentes se incluye al de los usuarios que tienen acceso esporádico a la red, por lo que están inactivos durante un período de tiempo, o a la posibilidad de crear una experiencia del cliente de alta calidad.

Los mensajes que pueden ser entregados con WhatsApp tendrán un índice de entrega muy alto. Sin embargo, hay muchas razones por las que podría no entregarse un mensaje. Podrás acceder al estado exacto de un mensaje mediante la supervisión de tus devoluciones de llamadas. Esto es diferente al envío de mensajes por SMS, por ejemplo, en los que no tienes acceso al estado final de la entrega y volver a enviar el mensaje puede, de hecho, producir un resultado diferente.

Los mensajes pueden permanecer sin entregarse porque el teléfono de un usuario está apagado o no tiene batería, o porque perdió el teléfono y va a obtener uno nuevo y tiene desactivada la SIM. Es posible que existan errores en la capacidad de los clientes de la empresa de conectarse a la red. También es posible que las devoluciones de llamada (webhooks) no se estén entregando. Puedes supervisar estas situaciones con el nodo health. Puedes activar las devoluciones de llamadas de recepción del servidor para confirmar que el mensaje fue recibido en la nube del servidor de WhatsApp.

Cuando el usuario restablezca la conexión a la red, se le entregarán todos los mensajes que le hayas enviado. Recibir más de un mensaje con el mismo contenido será una mala experiencia para él. Lo más probable es que eso lo predisponga a bloquearte o a quejarse. Tendrás más probabilidades de que pases a ser un remitente prohibido.

Si envías un mensaje y recibes un identificador de mensaje de la API, quiere decir que hiciste lo posible por enviar este mensaje. No envíes el mismo contenido al mismo destinatario.

Si observas índices de entrega bajos durante un período prolongado, abre un ticket de asistencia en Asistencia directa.

El cliente de la API de WhatsApp Business en las instalaciones requiere de una base de datos con el objetivo de almacenar claves para descifrar los mensajes que una empresa intercambia con los clientes. Todos los mensajes de WhatsApp se cifran con claves del emisor y receptor. Las claves del cliente se almacenan en su dispositivo móvil, mientras que las de la empresa se almacenan en su base de datos. Obtén más información acerca de la seguridad de WhatsApp.

La API de la nube de WhatsApp es una alternativa en la que Meta almacena la base de datos de una empresa. La API de la nube te permite implementar las API de WhatsApp Business sin necesidad de contar con tus propios servidores. Más información.

No. El cliente de la API de WhatsApp Business abre una conexión TCP de salida al puerto 5222 o 443 en los servidores de WhatsApp. El tráfico TCP utiliza esta conexión de larga duración. Por lo general, los firewalls clasifican esto como permitir “tráfico de salida y el tráfico establecido.” Obviamente, los paquetes van y vienen una vez establecida la conexión, pero el inicio de la conexión viene del cliente de la API de WhatsApp Business de modo que no es necesaria ninguna regla que permita conexiones de entrada.

Se admiten MySQL y PostgreSQL. Si ejecutas Docker por ti mismo, debes ofrecer una base de datos MySQL/PostgreSQL a la cual puedan conectarse los contenedores. Utilizar la plantilla de AWS configura una base de datos de MySQL de forma predeterminada.

Los requisitos dependerán de cada carga y situación particular. La solución se ejecutará en cualquier equipo conectado a internet que ejecute Docker. Por ejemplo, se pueden realizar pruebas simples en una computadora portátil.

Para la configuración de un servidor de producción de una sola instancia, recomendamos, como mínimo, SSD de 250 GB, 16 GB de memoria RAM y CPU de cuatro núcleos. No se recomienda usar discos duros, ya que, con carga, las velocidades de E/S provocarán cuellos de botella.

En el caso de una configuración del servidor de producción multiconexión, recomendamos, como mínimo, SSD de 50 GB, 4 GB de memoria RAM y CPU de 2 núcleos para cada contenedor de app principal, maestra o web.

En la mayoría de los casos, debes ejecutar la base de datos en un servidor físico separado de los contenedores principales y los contenedores web. El servidor de la base de datos debe tener solo unos pocos milisegundos de latencia respecto de las máquinas de cómputo.

Esta configuración admite el envío de 20 mensajes por segundo aproximadamente.

¡Por supuesto! Comunícate con tu representante de WhatsApp y solicítala.

Actualmente, no hay forma de hacer esto. Si no puedes administrar las respuestas entrantes de tus usuarios en WhatsApp, te sugerimos enviar un mensaje de respuesta automática que los redireccione a tus canales de asistencia adecuados.

En el caso de un cliente normal, esto sucede por el diseño cuando el remitente no figura en tu libreta de direcciones y no has enviado un mensaje a este remitente en el pasado. En el caso de una empresa, se deben utilizar plantillas de mensaje al interactuar por primera vez con un usuario para establecer "confianza". Al hacerlo, el cliente de la API de WhatsApp Business podrá reproducir el enlace y hacer clic en el mismo.

En el caso de un consumidor normal, esto sucede por el diseño de la app cuando el remitente no figura en tu libreta de direcciones y no has enviado un mensaje a este remitente en el pasado. En el caso de una empresa, se deben utilizar plantillas de mensaje al interactuar por primera vez con un usuario para establecer "confianza". Al hacerlo, el cliente de la API de WhatsApp Business respetará la configuración de descarga automática en la app.

Lamentablemente, tendrás que elegir un número de teléfono distinto que pueda recibir llamadas de voz o SMS para que podamos enviarte el código de registro. Anteriormente, permitíamos códigos de registro manuales, pero ya no admitimos esta opción. Los números de teléfono que usaban códigos de registro manuales continuarán siendo compatibles en la medida que resulte necesario. En el caso de los nuevos números de teléfono, entregaremos códigos de registro únicamente a través de SMS o llamadas de voz.

Si quieres usar un número de teléfono gratuito o 1-800, consulta esta guía.

Actualmente, no existe forma de ver cuántos o qué usuarios han bloqueado tu empresa. El mejor indicador sería detectar las devoluciones de llamada del estado y si no recibes el estado delivered, quiere decir que el usuario ha bloqueado tu empresa o que no tiene conexión a la red. Consulta la documentación sobre Webhook para obtener más detalles.

Si un usuario bloqueó tu empresa, la API de contactos seguirá devolviendo ese número de teléfono como usuario de WhatsApp válido. Sin embargo, cuando envíes el mensaje, no se entregará. Si es un mensaje pagado, no se te cobrará.

Sí, puedes configurar un nuevo número de teléfono o cambiar el nombre verificado cuando estés en condiciones para el lanzamiento.

El tamaño máximo para la subida de archivos es de 64 MB, lo cual significa que dicho límite también se aplica a cualquier imagen, documento o video que envíes con un mensaje.

Para encontrar el punto de montaje del volumen de tu contenido multimedia, puedes ejecutar un comando de docker.

Solicitud

docker volume inspect whatsappMedia

Respuesta

[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data",
        "Name": "whatsappMedia",
        "Options": {},
        "Scope": "local"
    }
]

Luego, para ver todos los archivos multimedia entrantes, puedes ejecutar el comando ls con la ruta de archivo Mountpoint recibida:

ls /var/lib/docker/volumes/whatsappMedia/_data/

Para la configuración de AWS, el volumen del contenido multimedia se encuentra montado en la ruta /mnt/wa/media del host.

No existe un mecanismo de limpieza para los archivos multimedia entrantes o salientes. Puedes borrar tus archivos multimedia de forma manual localizándolos en tu sistema de archivos.

Puedes reiniciar los contenedores de Docker ejecutando el siguiente código:

Contenedor de app principal de Docker

docker restart wacore<Current_WABA_Version>

Contenedor de app web de Docker

docker restart webapp<Current_WABA_Version>

Puedes verificar qué versión estás ejecutando

docker ps

¡Sí! El cliente de la API de WhatsApp Business API intenta comunicarse de forma predeterminada mediante chatd a través del puerto 5222. Para obtener una mejor experiencia, abre el puerto 5222 a todo el tráfico de salida. Esto no representa un problema de seguridad ya que es solo tráfico de salida de tu centro de datos.

Si no puedes abrir el puerto 5222, el cliente de la API de WhatsApp Business intentará utilizar el puerto 443. Si tu firewall o proxy sigue interrumpiendo conexiones, comunícate con el equipo de WhatsApp y solicita una depuración mediante la asistencia directa.

Funciona correctamente
Please use our Sharing debugger instead: https://developers.facebook.com/tools/debug/sharing/. OG debugger is not maintained any more.
The behavior is by design. All newly created accounts go through a classification process which may last up to 45 minutes. During that time, these accounts won't be able to login to any app.
Las imágenes de secuencias no devuelven la "media_url" en el nodo Media de la secuencia, dado que esta es una colección de imágenes. En lugar de ello, los usuarios deben consultar children{media_url} para ver la "media_url" de los nodos de elementos secundarios.
En las versión 2.9 y superiores, empezamos a filtrar y omitir todas las publicaciones que no cumplen con los requisitos porque no se actualizó el método de pago en la cuenta de pago. Comprueba que tu cuenta de pago tenga un método de pago válido.
Este campo ya no se admitirá mediante la API. Toda la información que proporcionaba este campo la podrás encontrar ahora en esta herramienta: https://developers.facebook.com/tools/app-ads-helper/.
Debido al diseño, Thread_key no se incluirá en el evento del webhook.
Cuando "estimate_DAU" es igual a cero, devolvemos automáticamente la puja recomendada, que es igual a cero para todas las entradas. Lo hacemos así porque no mostramos el tamaño del público en las campañas que emplean públicos personalizados.
Para los públicos personalizados del sitio web con varias secciones, devolveremos el valor cero como identificador del píxel y para los días de retención porque no podemos identificar de manera única la retención a partir de más de una sección. Para recuperar una regla para estos casos, tienes que especificar "rule_v2 " en lugar de "GET audience_id?fields=rule_v2".
At this time, "Force Web OAuth Reauthentication" feature is unsupported for Device Login. To enable device login feature, please turn off "Force Web OAuth Reauthentication" under Facebook Login settings.
Notifications on canvas games are not guaranteed. We have systems in place which will determine if a notification is of low or high signal automatically and filter users' jewel notifications accordingly. This means that not all notifications will appear within the users jewel notification.
We have privacy policies in place to prevent content generated from an Application that is not visible, to be distributed to the public. Also in effect is the app is in dev mode.
You should be able to add pages to your app that meet a few conditions:
  • The Page must be categorized as "App Page"
  • You should have access to the page via a role
  • The App Page should not already be linked to an existing app
  • The Page must have the same name (or a subset of the name) of the app
/page/* — User information will not be included in GET responses for any objects owned by (on) a Page unless the request is made with a Page access token. This affects all nodes and edges that return data for objects owned by a Page.
The business management permission is a granular permission, which means that it can be granted to some businesses and not granted to others. The access token debugging tool will show the access token has the permission even if it was granted for only some apps.
We maintain a specific cache on Android which can take some time to refresh. However, in iOS, you should see the updates almost instantly when you refresh the article.
The app must be subscribed to 'messaging_account_linking' Webhook event for Account Linking to work. You can subscribe to the event by going to the Messenger tab of your Application Settings.
In order to access the Leadgen information received from a Webhook you needed to be:
  • An admin of the campaigns
  • A full admin of the page
This message is usually shown if the user has an old Facebook for Android app installed on their device. If the user removes the old app and install the latest one, this message should disappear. If not, then please report a bug.
1. The message shown on screen does not mean the user has read it. In order to trigger a read receipt, there need to be some movements on the user side. (The user closing the input box is definitely a movement) An indicator of a message being read is the message text turns from the bold state into a normal state in the preview;
2. There won't necessarily be a read receipt for each message. The read receipt means that ALL messages before this watermark timestamp have been read by the user.
Unique fields are not supported with hourly breakdowns. Unique fields are those prepended with `unique_*` or `reach`.
Hay una diferencia entre las solicitudes de juego que se envían a un usuario desde una aplicación y las que se envían entre usuarios:
  • Las primeras se envían mediante el extremo "/apprequests" de la API y generan una solicitud en la sección de actividad sobre juegos, pero no crean una notificación en el sitio web (https://developers.facebook.com/docs/graph-api/reference/app-request#Creating).
  • Las solicitudes de juego entre usuarios se envían a través del cuadro de diálogo de solicitud y generan tanto una solicitud en la sección de actividad sobre juegos como una notificación en el sitio web (https://developers.facebook.com/docs/games/services/gamerequests).
  • Además, existen notificaciones que se envían al usuario desde la aplicación mediante el extremo "/notifications" de la API. Aunque generan una notificación, no crean una solicitud en la sección de actividad sobre juegos (https://developers.facebook.com/docs/games/services/appnotifications).
Una publicación se dirige a una región o a un país. Por ejemplo, si la publicación se dirige a "EE. UU. o CA", el usuario cumplirá los requisitos de la regla si es de los Estados Unidos (EE. UU.) o de California (CA). Si quieres limitar la segmentación a una región de un país, debes especificar únicamente la región.
Si se utiliza la estructura de páginas globales, se reducirá el número de Me gusta de la página. Cuando se haya configurado una estructura de páginas globales, los fans se migrarán a distintas páginas de la estructura en función de la segmentación de cada una de ellas. Como consecuencia, el cambio en el valor de "page_fans" no coincidirá con la diferencia entre los resultados de "page_fan_adds" y "page_fan_removes".
A veces, los públicos personalizados recién creados no se pueden recuperar a través de la API, debido a la demora en la retención y en la replicación en los centros de datos.
No es posible obtener los identificadores de publicaciones de URL internas de Facebook mediante el extremo "?ids=". Tal y como se encuentra documentado en https://developers.facebook.com/docs/graph-api/reference/v2.8/url, este perímetro está destinado a URL externas.