Если вы получили сообщение наподобие «Извините, что-то пошло не так» и не можете определить проблему, рекомендуем настроить более подробные сообщения об ошибках, из которых вы можете узнать более подробные сведения. Подробнее о значке отладки по методу init()
SDK читайте по адресу: https://developers.facebook.com/docs/accountkit/webjs/reference
Мгновенное подтверждение в Account Kit не требует кода подтверждения через SMS, когда пользователи Android вводят номер телефона, который совпадает с номером, указанным на Facebook.
Это возможно только в том случае, если человек использует приложение Facebook для Android. Если нам не удается подтвердить совпадение, человек должен будет пройти стандартный процесс и получить код подтверждения через SMS.
Account Kit предлагает локализованный пользовательский интерфейс на языках из следующего списка: https://developers.facebook.com/docs/accountkit/languages.
Обновленный список поддерживаемых стран и телефонных кодов см. здесь: https://developers.facebook.com/docs/accountkit/countrycodes.
Нет, привязать SDK для JavaScript можно только через https://sdk.accountkit.com/en_US/sdk.js. Этот скрипт получает загрузчик SDK, который загружает его последнюю версию с accountkit.com или из кэша браузера.
Если вам необходимо разместить SDK на собственном сервере, на это отводится 24 часа. По истечении этого периода SDK начнет выдавать предупреждения, а через 7 дней прекратит работать.
Выберите для параметра enableSendToFacebook (на iOS) или setFacebookNotificationsEnabled (на Android) значение «true».
Пользователи, которые входят в ваше приложение, получат сообщение подтверждения через уведомления Facebook, если SMS не было доставлено и если используемый номер телефона является основным номером, связанным с их аккаунтом Facebook.
Чтобы вызывать методы API, необходимо добавить разрешение INTERNET. Кроме того, при желании вы можете добавить дополнительные разрешения, чтобы упростить выполнение входа.
Подробнее об интеграции Account Kit в приложение Android читайте здесь.
Когда пользователь открывает диалог «Поделиться» или диалоговое окно на мобильном устройстве, а затем закрывает их, ваше приложение получит уведомление об этом через обратный вызов onSuccess(). Обратный вызов onSuccess() можно описать как механизм, который сообщает о закрытии диалога. Помимо этого с его помощью можно узнать о размещении какой-либо публикации. Если пользователь предоставил вашему приложению разрешение «publish_actions», в случае отмены будет отправляться обратный вызов onCancel().
Подробнее о классе FacebookCallback читайте в этой справочной статье.
Встроенная кнопка «Нравится» (LikeView) работает так же, как и кнопка «Нравится» в веб-интерфейсе. Большинство URL из Facebook нельзя использовать из-за правил конфиденциальности. К исключениям относятся Страницы и главная страница Facebook.
Проверить это можно с помощью предпросмотра кнопки «Нравится».
Так и должно быть. Мы получали много жалоб на спам и злоупотребление этой функцией. Поэтому мы решили внести это изменение.
Существуют другие способы публикации в Android. См. здесь.
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.
To access one of these fields, you will need to submit for Advanced Access for the Business Asset User Profile Access feature through App Review.
Business apps designed to help businesses and organizations manage Pages, Groups, Events, Ads, and ad-related assets.
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.
Подробную информацию см. на этой странице. В ходе этого процесса вы предоставляете информацию о том, какие разрешения вам необходимы и для чего вы будете их использовать. Специалисты Facebook проверят ваш сценарий использования и решат, соответствует ли он нашей политике. После проверки разрешений мы можем потребовать от вас дополнительных действий в зависимости от того, какие API и разрешения вы используете. Например, вам может потребоваться пройти подтверждение компании или подписать договор.
Необходимость проверки зависит от уровня ID приложения. Каждое отдельное приложение, которое использует соответствующие разрешения или функции, должно пройти проверку.
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.
Если в связи с вашей текущей заявкой нам потребуется дополнительная информация, у вас будет 30 дней с момента получения запроса на то, чтобы предоставить ее и отправить приложение на проверку повторно. В течение этого периода от команды проверки приложений могут поступить дополнительные запросы. При повторной отправке 30-дневный период, предоставляемый для доработки, не продлевается.
Чтобы протестировать новую функцию или разрешение, после того как приложение уже прошло проверку и было опубликовано, вы можете создать его клон. Это можно сделать с помощью функции Создать тестовое приложение на Панели приложений. На панели рабочего приложения в верхней области навигации слева нажмите стрелку вниз рядом с названием приложения, а затем нажмите Создать тестовое приложение. Клон приложения имеет статус В разработке, а все роли в приложении имеют доступ ко всем функциям и разрешениям.
Если клиент является владельцем приложения, ему будет необходимо пройти проверку как прямому разработчику. Если третья сторона разработала приложение для клиента и является владельцем приложения, пройти проверку должен этот сторонний разработчик.
Вам понадобится запросить разрешения leads_retrieval
и pages_manage_ads
.
Вы можете предоставить скринкаст своей интеграции. Либо, если в приложении нет пользовательского интерфейса, можно предоставить не менее двух снимков экрана, на которых показаны настройки вашей страницы, системы CRM или Business Manager, а также сообщить ID Страницы, которая будет использоваться в этих продуктах. Подробнее об этом см. здесь.
Проверка необходима для приложений, которым требуются определенные разрешения API. Подробнее об этих разрешениях см. здесь. Для настройки SDK проверка приложения не требуется, но, так как SDK позволяет приложениям выполнять вызовы к API Facebook, приложению может потребоваться пройти проверку, если эти API входят в список проверяемых.
Если у вас уже есть аккаунт Business Manager, рекомендуем подключить приложение к нему.
Если у вашей компании несколько аккаунтов Business Manager, выберите наиболее подходящий из них и свяжите с ним свое приложение. Если у вашей компании настроена кредитная линия в Business Manager, рекомендуем подключить приложение к аккаунту с кредитной линией.
Разработчики имеют возможность предоставлять тестовых пользователей, если они хотят, чтобы мы использовали определенную дополнительную конфигурацию, элементы из белого списка или информацию профиля. Если разработчик не предоставил тестового пользователя, мы используем одного из тестовых пользователей в нашем распоряжении. Это поле должно быть отмечено как необязательное и не должно блокировать заявку в случае незаполнения.
Проверку приложения необходимо пройти для каждого приложения. Рекомендуем ознакомиться с конкретным списком разрешений, для которых требуется проверка, на панели приложений.
Подтверждение компании выполняется один раз для каждого аккаунта Business Manager. Если вы связываете все приложения с одним аккаунтом Business Manager, вам потребуется пройти подтверждение компании только один раз.
Приложение должно быть связано с аккаунтом Business Manager, принадлежащим его конечному владельцу, у которого есть доступ к генерируемым в нем данным. Именно эта компания-владелец должна пройти процедуру подтверждения.
Узнать статус проверки компании можно в соответствующем разделе на вкладке "Проверка приложения" панели приложений. Здесь же можно найти контракты и инструкции. В процессе проверки вы будете получать уведомления о необходимых действиях.
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.
В настоящее время нам приходится обрабатывать большое количество заявок. Весь процесс может занять до нескольких недель.
В ходе проверки мы можем попросить вас предоставить информацию о компании, например зарегистрированное название, адрес и номер телефона. Мы также можем попросить вас предоставить документацию компании, например квитанции на оплату коммунальных услуг, лицензии, свидетельства о регистрации или другие учредительные документы.
Same as other permissions, you will lose access.
Начиная с 1 августа 2018 г. вам нужно подтвердить только аккаунт Business Manager, с которым связано приложение.
Все новые API необходимо запрашивать через проверку приложения. Подтверждение компании требуется только один раз для каждой компании в Business Manager и его не нужно проходить снова, чтобы получить доступ к новым разрешениям или API.
Да, тестовые приложения наследуют проверяемые разрешения от родительских приложений.
Информация о сроках приводится в этой публикации.
Все приложения, использующие расширенные разрешения "Входа через Facebook" и 6 API (Pages, Messenger, Business Manager, Instagram, Groups и Events), должны быть отправлены на проверку, включающую подтверждение подлинности компании и подписание контракта. Обратите внимание, что это конечный срок для отправки заявки, а не дата, к которой должна быть завершена проверка. Если заявка не будет отправлена до 1 августа 2018 г., доступ к API будет запрещен 2 августа 2018 г.
Все существующие приложения, обращающиеся к API Marketing и API Lead Ads Retrieval, должны пройти новую процедуру проверки, включающую подтверждение подлинности компании и подписание контракта, до 1 февраля 2019 г.
Основные сведения приведены на этой странице. При проверке вы сообщаете, какие разрешения требуются вашему приложению и как они будут использоваться. Специалисты Facebook рассмотрят вашу заявку и определят, соответствует ли она нашим правилам. После проверки, в зависимости от используемых API или разрешений, могут потребоваться дополнительные действия, например подтверждение подлинности компании или подписание контракта.
Проверку компании достаточно выполнить один раз. Контракты также подписываются однократно для каждой компании. Будущие приложения потребуют проверки, но не подтверждения подлинности компании.
Необходимость проверки приложения зависит от уровня ID приложения. Каждое приложение, использующее указанные разрешения или функции, должно быть отправлено на проверку.
1 мая 2018 г. была анонсирована новая процедура проверки приложения, необходимая для использования "Входа через Facebook" (дополнительных разрешений) и 6 API (Pages, Messenger, Business Manager, Instagram, Groups и Events). При использовании этих API и разрешений приложение должно быть отправлено на проверку до 1 августа 2018 г. В противном случае доступ к ним будет запрещен.
2 июля 2018 г. был расширен список API, которые требуют проверки приложения: были добавлены API Marketing и API Lead Ads Retrieval. При использовании этих API приложение должно быть отправлено на проверку до 1 февраля 2019 г. В противном случае доступ к ним будет запрещен. Подробнее о сроках читайте здесь.
В ходе проверки мы следуем вашим инструкциям, чтобы воспроизвести использование разрешений в приложении. Если воспроизвести процессы, связанные с разрешениями, не удается (например, мы не смогли выполнить ваши инструкции или войти в приложение), то заявка отклоняется.
Во избежание этого:
Например, если вы запрашиваете разрешение publish_actions, убедитесь, что функция публикации настроена правильно. В ходе проверки мы должны успешно опубликовать контент вашего приложения на Facebook.
Во время проверки мы загружаем приложение на каждой поддерживаемой платформе, входим в него через Facebook и проверяем работу всех интеграций с Facebook, которые указаны в заявке. При этом нередко возникают так называемые "проблемы общего характера". Это ошибки или недочеты, связанные с загрузкой приложения, входом в него или с его общей функциональностью. Это означает, что мы не смогли протестировать разрешения, запрашиваемые в вашей заявке.
Поскольку эти проблемы помешали нам проверить функции Facebook в вашем приложении, мы не сможем подробно прокомментировать использование таких функций, указанных в заявке. Поэтому мы отклоняем заявку по причине "проблем общего характера" и предоставляем отзыв для каждой платформы.
Если вы получили отказ из-за "проблем общего характера", внимательно прочитайте весь отзыв. В нем будут описаны все проблемы отдельно для каждой платформы.
В отклике на заявку вам будут разъяснены причины, вынудившие нас отклонить ваше приложение, и даны рекомендации по дальнейшим действиям. Мы хотим, чтобы вы как можно быстрее прошли проверку, поэтому внимательно читайте отзыв. Вы сможете снова отправить заявку, как только внесете необходимые изменения.
Если мы принципиально не одобряем способ использования разрешений в вашем приложении, это будет указано в отзыве. В этом случае вам не следует отправлять повторную заявку на проверку.
Чтобы получить одобрение Центра приложений, ваше приложение должно соответствовать нашим критериям пригодности. Приложения, подходящие для Центра приложений Facebook, должны использовать вход через Facebook или содержать приложение для Холста Facebook.
В Центре приложений могут быть представлены:
Ваши текстовые объекты и рекламные изображения также должны соответствовать нашим рекомендациям.
Если вы используете для публикации контента на Facebook диалог "Поделиться" или другой социальный плагин, вам не нужно запрашивать проверку. Если у вас остаются сомнения, изучите документацию по проверке приложений.
Методы, вынуждающие людей использовать социальные плагины или ставить отметки "Нравится" Страницам, противоречат пункту 4.5 нашей Политики платформы. Обещание вознаграждений или предоставление доступа к приложениям или контенту, напрямую зависящее от того, поставил ли человек отметку "Нравится" Странице, относится к категории "запрещенных приемов". Мы не разрешаем использовать разрешение user_likes с этой целью.
Наша цель — помочь компаниям наладить качественное общение со своей аудиторией. Мы хотим, чтобы люди ставили отметку "Нравится" Страницам, потому что действительно хотят узнать больше о компании и быть в курсе ее новостей, а не в обмен на поощрения и вознаграждения. Мы верим, что наша политика принесет пользу всем, включая рекламодателей.
Нашей команде для выполнения проверки могут потребоваться дополнительные учетные данные для входа в ваше приложение.
Если приложению требуется дополнительная функция входа до или после входа через Facebook, обязательно предоставьте имя пользователя и пароль. Это могут быть данные для входа на сервер тестирования или демо-сервер, дополнительного входа в ваше приложение или процесса регистрации через электронную почту.
Приложения, размещенные на промежуточном сервере или сервере разработки, могут запрашивать дополнительные данные для входа на ваш сервер. Предоставьте все необходимые учетные данные для входа.
Если вам сложно точно определить, каких именно учетных данных не хватает, приложите к следующей заявке видео, на котором будут показаны вариант входа через Facebook и все интеграции с Facebook, требующие проверки.
Чтобы подтвердить вашу заявку на проверку приложения, наши специалисты должны войти в приложение и проверить все интеграции с Facebook.
Если проверяющий не смог загрузить или использовать ваше приложение, убедитесь в следующем:
Если ваша заявка снова будет отклонена по той же причине, запросите у проверяющего дополнительные пояснения и информацию в разделе Инструкции по проверке или Добавить заметки.
Скринкаст — отличный способ познакомить нас с вашим приложением и показать, как вы используете запрошенные разрешения. Ниже приведены рекомендации и ресурсы по созданию скринкаста.
На видео должно быть показано, как приложение использует запрашиваемые разрешения. Если вы запрашиваете разрешения publish_actions, вы должны показать, как материалы вашего приложения создаются и публикуются на Facebook.
ID приложения Facebook, созданный для Моментальной игры, нельзя использовать на другой платформе. Подробнее об этом см. в нашей документации.
При тестировании интеграции вашего приложения с Facebook наши сотрудники будут использовать ваши инструкции.
Если вы считаете, что ваше приложение отвергнуто несправедливо, обновите инструкции по проверке, включив в них больше информации, и заново отправьте заявку на проверку.
Процесс проверки — это лучший способ взаимодействия с проверяющим; при этом вы должны обновлять свои заметки в соответствии с полученным отзывом.
При выполнении проверки наши специалисты используют несколько тестовых пользователей и не обязательно тех, которые предоставлены вами. Если при проверке заявки надо обязательно использовать специального тестового пользователя, укажите это в своих инструкциях.
Если вы предоставляете данные тестового пользователя, убедитесь, что он создан правильно и корректно указан в заявке.
Нет. Если разрешение одобрено, вы можете использовать его в любой версии приложения и на любой платформе.
Проверка не нужна и в том случае, если вы совершенствуете и расширяете свое приложение для работы на новой платформе. Повторная проверка потребуется только при запросе нового разрешения, например если в приложение добавлена новая функция. Изменение или отправка информации о приложении или действий Open Graph не влияют на уже одобренные разрешения.
Если у вас игровое приложение, которое представлено на Холсте Facebook
Вы можете пригласить в игру новых людей, используя следующие способы:
Если приложение не представлено на Холсте Facebook
Вы можете использовать диалог сообщения в приложении для iOS и Android или диалог отправки в веб-приложении. Пользователи этих продуктов могут отправлять своим друзьям сообщения со ссылкой на ваше приложение.
Такие сообщения — отличный способ напрямую общаться с небольшой группой людей. Диалог сообщения и диалог отправки поддерживают функцию опережающего ввода, которая позволяет без труда выбрать друзей для рассылки приглашений.
Наши сотрудники на практике протестируют использование всех разрешений на всех платформах, которые указаны в разделе настроек вашего приложения. Проверяющий удостоверяет, что ваша интеграция входа через Facebook работает правильно и что все запросы разрешений отвечают нашим принципам и практическим руководствам и помогают сделать работу с приложением более удобной.
Подробнее см. в разделе, посвященном принципам проверки приложения, и в руководстве по проверке входа.
Чтобы одобрить вашу заявку на получение разрешения user_likes, мы должны убедиться, что информация об отметках "Нравится", которую пользователи передают приложению, позволяет улучшить процесс пользования приложением. Для этого наши сотрудники протестируют ваше приложение, используя учетные данные различных тестовых пользователей, у каждого из которых есть свой набор увлечений и интересов.
При отправке запроса на проверку разрешения user_likes вы должны составить подробные инструкции и включить в них следующее:
Если разрешение user_likes используется в составе алгоритма, важно показать проверяющему результат работы этого алгоритма и его влияние на отображение контента для пользователя.
Предположим, вам нужно, чтобы проверяющий воспроизвел определенное поведение или набор действий, доступных только специальному тестовому пользователю. В этом случае вы можете внести такого пользователя в заявку на странице "Проверка приложения". На вкладке "Элементы на рассмотрении" вы найдете раздел "Тестовый пользователь (дополнительно)", в котором можно задать имя пользователя для проведения проверки.
В нем доступны только тестовые пользователи, указанные в разделе "Роли" вашего приложения. Не указывайте в инструкциях по проверке учетные данные пользователей для входа в Facebook.
Сведения о том, как создать тестового пользователя, см. здесь.
Нет, чтобы использовать рекламу для увеличения числа установок мобильного приложения, проверка не нужна. Все, что вам требуется, — это рабочее приложение, размещенное в магазине iTunes или Google Play Маркет. Вы можете воспользоваться нашим руководством, чтобы создать рекламу для установки мобильного приложения.
Вы должны точно и доступно объяснить, как протестировать каждое разрешение или функцию приложения, чтобы мы могли убедиться, что все работает корректно и в соответствии с нашими политиками. Мы не сможем одобрить ваше приложение, если нам не удастся тщательно протестировать его интеграцию с Facebook. Предоставьте подробные инструкции. Это повысит ваши шансы пройти проверку с первого раза.
Для каждого запрашиваемого разрешения необходима отдельная пошаговая инструкция, которая позволит его воспроизвести. Все инструкции должны быть на английском языке.
Они не должны:
Вот хороший пример пошаговой инструкции:
Если у вас остались вопросы о том, какие сопроводительные материалы предоставлять при проверке приложения, см. дополнительные примеры в этом разделе.
Недавно мы изменили процедуру проверки и ожидаем рост количества заявок, из-за чего срок рассмотрения может увеличиться до нескольких недель.
Предоставьте проверяющему максимум полезной информации, в частности разборчивые снимки экрана, подробные пошаговые инструкции и скринкаст, в котором показаны работа приложения и интеграция с Facebook.
Приложения, использующие промежуточные средства публикации, такие как социальные плагины, диалог "Поделиться" и Share Sheets, или часть разрешений входа через Facebook, не требуют проверки со стороны Facebook. Подробнее о том, какие приложения требуют проверки, см. в нашей документации.
Мы проверяем приложения, чтобы убедиться в том, что людям на Facebook будет удобно использовать их. Пользователи должны знать, что входят на Facebook и публикуют здесь свои материалы. Они должны контролировать информацию, которой делятся с вашим приложением или с Facebook.
Примечание. Тем, кто указан на вкладке "Роли" приложения, доступ к расширенным разрешениям (например, user_posts
) предоставляется без проверки. Однако при публикации приложения оно должно пройти проверку для доступа к информации даже тех пользователей, у которых есть роли в нем.
В режиме разработки должны быть доступны все возможности приложения, но доступ ограничен вашими данными, данными вашего тестового пользователя или данными ваших страниц. Даже если вы единственный пользователь, чтобы сделать приложение общедоступным, его нужно отправить на проверку.
Если вы запрашиваете список Страниц компании с помощью /BUSINESS_ID/pages
, не все поля Страницы можно запросить, а API может выдать ошибку: (#100) Unknown fields: <FIELD_NAME>
.
Это происходит из-за того, что данный эндпойнт не возвращает объект Страницы, как другие подобные эндпойнты, а также включает запросы на рассмотрении, которые еще не одобрены. И таким образом невозможно с помощью расширения поля возвращать поля со Страницы.
Вы можете воспользоваться <BUSINESS_ID>/owned_pages
или <BUSINESS_ID>/client_pages
— оба эти эндпойнта должны возвращать объекты Страницы и поддерживают расширение полей.
Чтобы отправить запрос подтвержденной Странице, менеджер по работе с партнерами Facebook должен подготовить отправку этих запросов для организации, связанной со Страницей. Компании, у которых нет менеджера по работе с партнерами Facebook, не смогут отправлять эти запросы.
В рамках проверки использования данных администратор приложения должен:
1. Изучить утвержденные разрешения и функции приложения
2. Пройти проверку на предмет того, что приложение отвечает требованиям допустимого использования
3. Пройти проверку на соблюдение Условий Платформы и Правил для разработчиков, а также всех остальных условий и правил, действующих на Facebook
Это два отдельных, но связанных между собой процесса по обеспечению безопасности на платформе. Проверка приложения позволяет получить доступ к определенным разрешениям Платформы Facebook. Для этого разработчикам необходимо отправить свое приложение на проверку, которую вручную проведут специалисты нашей команды по взаимодействию с разработчиками. Разработчики, получившие доступ к платформе, должны ежегодно проходить проверку использования данных, которая подтверждает, что при использовании данных Facebook они не нарушают Условия использования платформы Facebook и Правила для разработчиков.
Проверку должно пройти каждое приложение, которым управляет ваша компания.
Разработчики, управляющие большим количеством приложений, могут пройти проверку использования данных сразу для нескольких приложений. Для этого перейдите на страницу "Мои приложения" в панели приложений. На этой странице вы увидите все приложения, которыми управляете, сможете выбрать нужные (например, те, для которых необходимо пройти проверку использования данных) и пройти проверку.
Вам понадобится пройти проверку для каждого приложения, которым вы управляете (у каждого приложения может быть несколько разрешений). Вы можете проходить проверку отдельно для каждого приложения и в любой очередности. Главное — завершить проверку до истечения срока, заданного для каждого приложения.
Мы попросим вас пройти проверку для всех разрешений, к которым у вас есть доступ. Если какие-либо разрешения вам больше не нужны, вы можете удалить их, и мы перестанем просить вас пройти для них проверку.
Рабочий режим и режим разработчика определяют функциональность приложения и порядок проверки использования данных. Режим разработчика позволяет тестировать приложение, осваивать продукты/разрешения по работе с API и проходить проверку приложения. Приложения в режиме разработчика не имеют доступа к данным пользователя. Рабочий режим используется для выполнения производственных сценариев и не регулирует доступ к данным/разрешениям, которые утверждены в рамках проверки приложения. Проверку использования данных должны проходить только приложения в рабочем режиме.
Если по какой-либо причине у вас нет доступа к приложению и вам нужно восстановить статус администратора, нажмите здесь.
Мы постарались совместить сроки проверки тех приложений, у которых один и тот же администратор, поэтому для всех ваших приложений будет действовать один срок. Однако могут быть и исключения — например, если вы создали новое приложение, после того как остальные уже прошли проверку использования данных, у него будет другой срок ежегодной проверки.
Чтобы посмотреть, какие приложения должны пройти проверку использования данных, перейдите на страницу "Мои приложения" в панели приложений. В этом разделе представлены все приложения, которыми вы управляете. Вы можете выбрать те, которые должны пройти проверку использования данных.
Этот процесс предназначен для администраторов приложения. Чтобы узнать, кто является администратором вашего приложения, откройте панель приложений и нажмите "Роли" в левой части страницы. Администраторы приложения должны обладать достаточными полномочиями, чтобы представлять вашу компанию.
Пройти проверку может любой администратор приложения. Если у приложения несколько администраторов, пройти проверку должен только один из них.
С начала проверки (когда вы получите первое оповещение для разработчиков) и до окончания срока у вас будет 60 дней.
По окончании срока проверки мы начнем отзывать доступ к платформе. Для этого мы будем прерывать вызовы API в течение месяца после окончания срока. Чтобы восстановить работу приложения и вернуть полноценный доступ к платформе, вам понадобится перейти в панель приложений и пройти проверку использования данных. Если вы этого не сделаете в течение одного месяца после окончания срока, доступ к платформе будет отозван полностью.
Если доступ к платформе будет отозван, вы всё равно сможете открыть панель приложений, пройти проверку использования данных и восстановить доступ. Периодически мы удаляем разрешения для приложений, которые не используются. Если ваши разрешения будут удалены, вам понадобится снова отправить приложение на проверку, чтобы вернуть доступ. Чтобы избежать этого, рекомендуем своевременно проходить проверку использования данных.
В проверке использования данных приведены все разрешения, к которым есть доступ у вашего приложения вне зависимости от того, как часто вы их используете. Это позволяет вам следить за своей интеграцией, знать возможности своего приложения и удалить разрешения, которые вам не нужны.
В некоторых случаях информация об использовании API представлена в инструменте для проверки использования данных. Другой способ узнать, используете ли вы то или иное разрешение — посмотреть в разделе "Разрешения и функции" в панели приложений. После того как вы выполните вход, нажмите "Проверка приложения" в левой части страницы, а затем выберите "Разрешения и функции" в раскрывающемся меню. Вы увидите столбец "Вызовы API". Разрешения, которые вы используете регулярно, будут отмечены зеленым флажком. Не забывайте, что это просто примерная оценка, поэтому обязательно спросите у своих разработчиков, требуется ли то или иное разрешение для интеграции.
Это "базовые" разрешения, которые предоставляются автоматически. Мы требуем у разработчиков проходить для них проверку, поскольку они используются чаще всего и обеспечивают доступ к данным пользователей. Если вы не используете эти данные, вам не составит труда пройти проверку. Проверка подтверждает, что при использовании данных вы не нарушаете никаких правил, а если вы их не используете, то и не можете ничего нарушить.
Сначала вам понадобится удалить разрешение с помощью панели приложений (нажмите "Мои разрешения и функции" в раскрывающемся меню слева под разделом "Проверка приложения"). После этого вы сможете пройти проверку для тех разрешений и функций, которые используете.
Однако некоторые разрешения предоставляются автоматически — их нельзя удалить, поэтому мы всё равно попросим вас пройти по ним проверку. Если вы не используете эти данные, вам не составит труда пройти проверку. Проверка подтверждает, что при использовании данных вы не нарушаете никаких правил, а если вы их не используете, то и не можете ничего нарушить.
Нет. После того как вы удалите разрешение из панели приложений, оно исчезнет, как только вы обновите страницу с проверкой использования данных.
Вам понадобится пройти проверку использования данных для всех разрешений, к которым есть доступ у вашего приложения.
Мы будем запускать проверку использования данных поэтапно. Это означает, что вам предстоит пройти проверку в ближайшие месяцы, но точные сроки пока неизвестны. Тем временем мы попросим вас указать актуальную контактную информацию в панели приложений и следить за оповещениями для разработчиков, из которых вы узнаете сроки проведения проверки.
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.
Meta’s services are not available in all regions.
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.
Снимки экрана или баннеры, которые одобрены для Центра приложений, удалить нельзя. Чтобы заменить эти изображения на новые, нажмите «Редактировать» рядом со снимком экрана или баннером и выберите нужное изображение.
Проверьте, появляется ли сообщение об ошибке, если не делать запрос фото пользователя. Затем сделайте следующий запрос API me/photos и снова проверьте, отображается ли сообщение об ошибке. Когда вы делаете тестовый вызов me/photos, вы используете нужное приложение и получаете маркер доступа, который требует разрешения user_photos!
Цель этой проверки заключается в том, чтобы разработчики тщательно проверили функцию в своем приложении, перед тем как запрашивать у нас то же самое разрешение. Тестирование в тестовом приложении не гарантирует стабильную работу в основном приложении. Вы должны отправить тестовый запрос из своего основного приложения, чтобы вы могли убедиться в том, что оно работает надлежащим образом, прежде чем сделаете его доступным широкой аудитории. Следуйте инструкциям, чтобы вручную отправить запрос, и проверьте, не отображается ли предупреждение в панели.
Он нужен, чтобы приложение не могло публиковать URL, которые не указывают на принадлежащий ему домен. Не используйте этот процесс, если ваше приложение публикует ссылки на другие сайты.
Этой функции больше нет в панели приложений. Чтобы привязать тестового пользователя к нужному приложению, воспользуйтесь эндпойнтом /{app-id}/accounts/test-users/. Подробнее об этом см. здесь.
См. здесь: https://developers.facebook.com/docs/apps/test-users#rules. Тестовые пользователи не могут стать поклонниками общедоступных Страниц на Facebook или создавать контент на них, например они не могут писать на стене Страницы. Однако тестовые пользователи могут просматривать и использовать любые вкладки на Странице приложения, для которого они созданы.
Так и должно быть. Мы не разрешаем указывать несколько доменов по соображениям безопасности.
Так и должно быть. У диалога «Вход» фиксированная ширина, и она не масштабируется.
Так и должно быть. Разработчик приложения обязан задать соответствующее значение параметра redirect_uri с учетом устройства пользователя. Если тот запустил приложение на мобильном устройстве, то в качестве значения redirect_uri следует указать URL мобильного сайта.
Это нормально, поскольку предотвращает уязвимость для безопасности. Некоторые браузеры применяют фрагмент хэша из URL к концу нового URL, на который происходит перенаправление (если этот новый URL сам по себе не имеет фрагмента хэша).
Например, если example1.com возвращает перенаправление на example2.com, браузер, выполняющий переход на example1.com#abc, перейдет на example2.com#abc и контент фрагмента хэша из example1.com будет доступен сценарию на example2.com.
Поскольку можно один процесс аутентификации можно перенаправить на другой, конфиденциальные данные аутентификации из одного приложения могут быть доступны другому. Чтобы не допустить такой ситуации, можно назначить новый фрагмент хэша для URL перенаправления. Если имеет значение эстетика URL или поведение на стороне клиента, можно использовать window.location.hash (или даже свой собственный URL перенаправления на стороне сервера), чтобы удалить ненужные символы.
Test apps created from Business apps will have Standard Access for all permissions and features.
No. The access level model only applies to permissions and features.
No. For a given permission, Business apps have either None, Standard, or Advanced Access.
Yes. A Business app will be auto-granted Standard Access and may request Advanced Access for a given permission.
Yes. For Business apps, the Advanced Access level includes access to all data within the Standard Access level.
Чтобы поделиться URL, связанное изображение должно быть как минимум 200x200 пикселей. В противном случае вы получите сообщение об ошибке вроде «Provided og:image is not big enough. Please use an image that's at least 200x200 px». (Изображение og:image недостаточно большое. Пожалуйста, используете изображение размером как минимум 200x200 пикселей).
Чтобы выбрать изображение для URL, мы сначала смотрим на тег «og:image»: существует ли он и превышает ли значение 200x200 пикселей. Если тега «og:image» нет, мы выберем первое изображение, которое увидим на веб-странице.
Если вы получили сообщение об ошибке, но считаете, что ваше изображение больше 200x200 пикселей, убедитесь, что вы правильно настроили тег «og:image». Проблема может быть в том, что мы извлекли неправильное изображение с вашего сайта.
Мы изменили алгоритм работы плагина «sharer» в соответствии с другими плагинами и функциями на нашей платформе.
Плагин «sharer» больше не будет принимать индивидуально настроенные параметры, а Facebook будет извлекать из метатегов URL Open Graph информацию, которая отображается в предпросмотре так же, как если бы она была опубликована на Facebook.
Нет, у опубликованного URL можно переопределить только заголовок и описание.
Приложение не может загружать фото в альбомы, созданные другими приложениями.
Бывают альбомы, которые не связаны ни с какими приложениями (например, альбом для фото обоев). Попробуйте проверить поле can_upload. Если поле can_upload возвращает значение «false», пользователи не могут размещать фото в этом альбоме через представление «Альбомы» в своем профиле.
Призыв к действию появится по окончании видео под значком повторного воспроизведения.
На Facebook воспроизводятся только те файлы GIF, размер которых не превышает 8 МБ.
Сейчас невозможно оставлять комментарии к неразмещенным публикациям через API.
Встроенные видеопубликации не отображаются в эндпойнте «promotable_posts», потому что они уже продвигаются. Встроенная видеопубликация — это публикация, которая разрабатывается в инструменте для создания рекламы, поэтому ее нельзя поднимать отдельно.
Именно поэтому встроенные публикации не отображаются в эндпойнте «/promotable_posts».
Это случается при использовании маркера доступа к Странице, если пользователю, связанному с маркером, назначена роль аналитика.
Когда поступает запрос с использованием API Graph, срабатывают различные правила конфиденциальности. Они могут препятствовать передаче данных, даже если публикация общедоступна на сайте. Это может зависеть от различных факторов, таких как настройки конфиденциальности пользователя, разрешения на уровне приложения и т. д. Как следствие, API может возвращать не все данные, доступные для просмотра на сайте.
Публикации, которые созданы с помощью «object_story_spec» в API Ads, считаются встроенными. Чтобы просматривать эти публикации, необходимо использовать границу контекста /{page-id}/promotable_posts и модификатор «is_inline» в v2.3 и более ранних версиях, а в v2.4 и более поздних версиях — «include_inline». Подробнее см. здесь.
Поле «shares» возвращает результаты только в том случае, если публикацией поделились более 10 раз. Если публикацией поделились менее 10 раз, мы пропустим это поле или попробуем указать подходящее значение.
Подробнее об этом эндпойнте см. по адресу: https://developers.facebook.com/docs/graph-api/reference/v2.4/post.
Это устаревшее значение, которое мы использовали в прежней системе. Оно сохранено для обратной совместимости.
Данная проблема возникает только с давними публикациями, с новыми все будет в порядке.
Так и должно быть. Между публикацией и фото в публикации нет никакой связи. Мы возвращаем только первое изображение, загруженное в публикацию.
Поле «application» не возвращается, если публикация соотнесена с сайтом или мобильным приложением Facebook. Это соответствует сайту, который не демонстрирует атрибуцию для этих типов публикаций.
Поле «privacy» публикации будет включать информацию о видимости публикации на Facebook, но когда публикация на Странице таргетирована или настроена так, чтобы ее видели только люди из определенной аудитории, в этом поле не отображаются все варианты таргетинга.
Чтобы узнать, как публикация таргетирована или настроена, посмотрите на поле «targeting» (для настройки) и поле «feed_targeting» (для таргетинга в Ленте новостей). Подробнее о доступных полях см. здесь.
Значение comment_count, возвращаемое для публикации, может включать комментарии, которые были скрыты или удалены. Количество комментариев, которые отображаются в публикации, никогда не может быть больше, чем значение comment_count.
Переопределить подпись публикуемого URL невозможно. Изменить можно только заголовок и описание URL.
Подробнее об этом и о том, какие поля можно публиковать через API Graph, см. в документации о /feed: https://developers.facebook.com/docs/graph-api/reference/v2.3/page/feed#publish
Так устроена система. Она соответствует тому, как отображается контент, сгенерированный приложением Facebook (на мобильных устройствах или в веб-браузере), без атрибуции к самому Facebook.
Мы внесли на серверах некоторые изменения. Теперь потоковые данные и публикации передаются через API по-другому.
Если вы сталкиваетесь с проблемами получения публикаций через API и считаете, что документация не соответствует положению вещей, проверьте, что:
Фото, загруженные через Instragram, публикуются как действия Open Graph. Необходимо, чтобы соответствующие разрешения Open Graph считывались с помощью API Graph.
В случае с фото Instagram требуется разрешение «user_actions: instapp», поскольку instapp – пространство имен приложений для Instagram.
Действия Open Graph не отображаются в подключении /feed. Но если фото загружена как действие Open Graph, то к ней можно получить доступ с соответствующими разрешениями через подключение альбомов пользователя или подключение /photos, если это применимо.
Подробнее о разрешениях Open Graph читайте здесь.
Так и должно быть. Наша система возвращает сообщение об ошибке для объектов, которые были удалены или которые не видны в ходе проверок конфиденциальности/разрешений.
Нет, фильтровать комментарии по дате нельзя.
Поле «total_count» с суммарным параметром для эндпойнта /{user-id}/accounts может вернуть слишком большое значение. Это происходит из-за того, что «total_count» включает удаленные Страницы, администратором которых был пользователь.
Однако данные от самого эндпойнта будут включать только Страницы, которые существуют, то есть не удалены.
Теперь сегментирование данных выполняется не по абсолютному времени (понятия «с 1 января» и «до 1 января»), а по относительному (понятия «раньше» и «позже» выбранного сегмента).
Подробнее читайте здесь: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging
После введения ID пользователей внутри приложения мы изменили порядок возвращения данных от эндпойнта.
Поскольку версия 1.0 упразднена, мы рассмотрим эту проблему на примере версий 2.x. /v2.0/{id} может возвращать https://www.facebook.com/{id} или https://www.facebook.com/app_scoped_user_id/{id}.
Так и должно быть. Это означает, что с данным токеном нельзя получить доступ к ID приложения, которое пытается продлить действие этого токена.
Скорее всего, в вашем приложении есть демографические ограничения. Система обнаружила, что пользователь, токен которого вы хотите продлить, не отвечает этим ограничениям. Возможно, пользователь сейчас находится не в той стране, что обычно, или мы более точно определили его местоположение.
Вторая самая вероятная причина: мы не можем подтвердить, что пользователь отвечает ограничениям (например, если мы не знаем его местоположение), поэтому ваше приложение не разрешает ему доступ.
С июля 2013 г. эта функция не поддерживается.
API Graph версии 2.0 предлагает множество возможностей, но не поиск в общедоступных публикациях и по ключевым словам.
Подробнее читайте в журнале изменений.
Приложения, созданные после 30 апреля 2014 г., работают с API версии 2 и более поздними. Действительно, в этих версиях список друзей можно получить, только вызывая эндпойнт /me/friends
. Но ID пользователей теперь действуют только внутри приложения, они уникальны и постоянны для каждого приложения.
О новых функциях и изменениях в версии 2.0 можно узнать здесь.
В документации по полю email
объекта User
объясняется это поведение: «это поле не возвращается, если действительный эл. адрес недоступен».
Есть ряд обстоятельств, когда вы можете думать, что в отклике должен содержаться эл. адрес пользователя, но его нет. Из-за соображений конфиденциальности и безопасности мы не можем выявить точную причину того, почему эл. адрес конкретного пользователя отсутствует в отклике.
Вот некоторые возможные причины:
Эти публикации нельзя открыть через API, потому что пользовательский контент размещается на Странице, а пользователь не предоставил вашему приложению доступ к своему контенту.
Публикации пользователя, размещенные в хронике Страницы, не будут доступны через API, если пользователь отключил базовые разрешения для типа контента публикации.
Чтобы получать фото от, например, своих поклонников, вы можете скачивать альбомы Страницы с помощью токена доступа к Странице. Фото должны быть в альбоме «Фото хроники».
Несмотря на то что публикация является общедоступной и в ней упоминается запрашиваемая Страница, ваше приложение не может видеть эти публикации, не имея разрешения read_stream от владельца публикаций. Это означает, что эндпойнт {page_id}/tagged не возвращает все публикации.
Подробнее см. здесь.
Иногда приложение не может получить какую-либо информацию о пользователе Facebook из-за его настроек конфиденциальности. Это касается доступа к публикациям, сделанным этим пользователем в контексте, в котором ваше приложение должно получить данные о публикации (например, в процессе управления Страницами).
Пример: пользователь заблокировал приложение или запретил доступ через API к информации приложений платформы.
В API Graph 2.1 и более поздних версиях эта функция упразднена. В приложениях, созданных до 7-го августа 2014 года, этого поля нет в signed_request.
В этих приложениях свойство liked всегда будет возвращать значение true независимо от того, поставил ли человек отметку «Нравится» Странице.
Используйте ссылки paging.next и paging.previous, возвращаемые в отклике, чтобы получить доступ к другим страницам с результатами. В этом случае вы можете быть уверены, что ваше приложение будет работать нормально, когда формат ссылок пейджинации изменится в будущем.
Функции API не всегда отражают все возможности сайта Facebook. То, что в интерфейсе Статистики Страницы называется органическим охватом, сильно отличается от органического охвата в API и рассчитывается по-другому.
Например, значение «органический» в интерфейсе Статистики Страницы соответствует значению unpaid (неоплаченный) показателя page_impressions_by_paid_non_paid_unique, доступному через API Graph.
Мы планируем устранить подобные разночтения в будущем.
Эта ошибка означает, что пользователь, связанный с маркером доступа, не может просматривать эту Страницу из-за настроек конфиденциальности. Например, Страница может быть неопубликованной, а пользователь не является администратором Страницы.
Такая ошибка обычно возникает, когда вы пытаетесь получить данные по очень активной Странице. Этого можно избежать, сократив временной интервал, по которому вы запрашиваете информацию. Используйте поля since и until («c определенной даты» и «до определенной даты»).
Так и должно быть с тестовыми приложениями и теми, что запущены в режиме разработки. Когда приложение будет опубликовано, оно начнет работать правильно.
Советуем изучить эту информацию.
Читать и отправлять сообщения от имени Страницы могут только администратор, редактор или модератор. Люди с ролями рекламодателя и аналитика не могут читать переписки со Страницей.
Подробнее о ролях Страницы см. по адресу: https://www.facebook.com/help/289207354498410.
Метрики «page_fans» и «page_fans_country» не всегда выдают одинаковые результаты. Значение «page_fans_country» зависит от целого ряда факторов. Например, некоторые подписчики не указывают страну проживания в своих аккаунтах, а другие предпочитают скрыть свою страну в настройках конфиденциальности.
Подробнее о настройках конфиденциальности на Facebook читайте в Справочном центре по адресу: https://www.facebook.com/help/445588775451827.
Некоторые общедоступные публикации Страниц – это повторно размещенный пользовательский контент. Если пользователь, создавший публикацию, не предоставил вашему приложению требуемые разрешения, то оно не сможет получить доступ к своим публикациям через API Graph. Следовательно, приложение не будет в состоянии комментировать эти публикации.
Публикации, созданные при составлении оформления рекламы, нельзя поднимать отдельно. Поэтому такие публикации не будут отображаться в эндпойнте /promotable_posts Страницы.
Так происходит, когда для планирования публикаций вы используете приложение в режиме разработки. Чтобы решить проблему, воспользуйтесь приложением, которое опубликовано.
К сожалению, с помощью API пока нельзя создавать, изменять или удалять фото обложки.
О том, какие действия можно выполнять с фото обложки через API, читайте здесь.
Нет, через API менять ширину невозможно.
Так и должно быть. Администраторы не могут размещать публикации на Страницах от своего имени через API Graph — это можно делать только на http://www.facebook.com/ и в наших мобильных приложениях.
К сожалению, нет. Так устроена система.
Убедитесь, что используете токен доступа страницы, когда выполняете действия с помощью Страницы. Это сообщение означает, что вы применяете токен доступа пользователя, а не страницы.
Подробнее читайте здесь: https://developers.facebook.com/docs/facebook-login/access-tokens.
Это невозможно. Закреплять публикации и читать их можно только через нативные продукты Facebook.
Если дублирование комментариев включено для стороннего URL, реакции на публикации с зеркальными комментариями будут регистрироваться по самому URL и будут выданы при вызове {URL-id}/reactions>
.
Сейчас в разбивке эндпойнта /app_insights/app_event
нельзя показать более 1000 значений. Чтобы подробнее изучить данные по конкретным категориям, например по отдельным странам, рекомендуем воспользоваться пользовательским интерфейсом Facebook Analytics.
Возможно, вы слишком быстро вызываете эндпойнт, даже раньше, чем данные поступают на наш сервер.
Чтобы информация поступила на все наши серверы, вызовы API следует выполнять через 1–2 секунды.
Обычно метрика «page_fans_country» является подмножеством метрики «page_fans». Эта метрика включает разбивку по стране поклонников Страницы при условии, что мы сможем точно определить страну проживания пользователя.
Кроме того, в эту метрику входят только основные страны (по количеству поклонников) проживания поклонников Страницы, а не все страны, где они есть; если поклонники Страницы проживают во многих странах, в эту метрику не войдут страны, где живет меньше всего поклонников.
API не поддерживает пейджинацию по сдвигу.
Вместо нее используйте либо ссылки пейджинации, которые возвращаются в конце каждого отклика от API Graph, либо (предпочтительнее) пейджинацию по положению курсоров.
Подробнее о том, как правильно выполнить пейджинацию через API Graph, см. по адресу: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#paging
Существуют маркеры доступа с большим и коротким сроком действия. Маркеры с коротким сроком действия предназначены для коротких сеансов. Их срок действия обычно истекает через несколько часов.
Вместо маркер с краткосрочным действием вы можете использовать маркер с большим сроком действия (до 60 дней).
Подробнее см. здесь.
Это не случайно. API Search соблюдает правила конфиденциальности на Facebook, учитывает особенности пользователя, чей маркер доступа вы применяете, не поддерживает поиск по хэштегам и возвращает результаты, которые отличаются от результатов аналогичного поиска на Facebook.com.
Это связано с тем, что результаты от API как правило контролируются более строгими правилами конфиденциальности и проверками безопасности, чем публикации от Facebook.
Наша система накладывает ограничения по количеству вызовов к API от приложений. Подробнее о различных лимитах и о том, как предотвратить регулирование приложения, см. здесь: https://developers.facebook.com/docs/marketing-api/api-rate-limiting.
Чтобы добавить в статью анимированные изображения в формате GIF, используйте элемент <figure>, в который вставлен элемент <img> с URL этого изображения. В изображения GIF, как и в другие изображения, можно добавлять подписи и атрибуцию.
Дополнительные сведения и примеры см. здесь.
URL ленты можно использовать на разных страницах. Но имейте в виду: мы получаем только статьи с каноническими URL, которые соответствуют доменам страниц.
Рекомендуем использовать для каждой страницы отдельную ленту RSS, содержащую только статьи, которые должна получить эта страница.
Видео и другие материалы из социальных сетей можно добавить в статью в качестве встроенных материалов из социальных сетей. Другие сторонние видеоплееры можно добавить в статью в качестве встроенных интерактивных материалов.
Чтобы добавить в статью интерактивные встроенные материалы и изображения, используйте тег <figure> с классом op-interactive. В тег <figure> необходимо добавить элемент <iframe>, содержащий встроенные материалы.
Дополнительные сведения и примеры см. здесь.
Чтобы задать подпись, используйте элемент <figcaption>. Добавить атрибуцию в подпись можно с помощью элемента <cite>.
Дополнительные сведения и примеры см. здесь.
Если статья находится в режиме черновика, в качестве моментальной статьи она доступна только администраторам страницы. После публикации статьи любой человек на Facebook может поделиться ей, и она будет отображаться для всех как моментальная статья.
Убедитесь, что вы предоставили приложению разрешение pages_manage_instant_articles. Оно необходимо для вызова методов API для чтения и обновления моментальных статей на вашей странице.
Подробнее об использовании API см. здесь.
Если вы используете атрибут dir="rtl" для отображения языка с письмом справа налево в своей статье, вы сможете просматривать эту статью даже в приложении, которое не поддерживает такие языки в моментальных статьях.
Убедитесь, что вы используете новейшую версию приложения. Минимальная версия каждого приложения, поддерживающая языки с письмом справа налево:
Проверьте, не задан ли атрибут dir="rtl" в теге <body> вашей статьи. Этот атрибут нужно добавлять только в статьи на языках с письмом справа налево.
Для предварительного просмотра статьи в Ленте новостей используется изображение, заданное в метатеге og:image в веб-версии статьи. Если вы хотите заменить его на видео, добавьте класс fb-feed-cover в любое видео в статье. Подробнее о предварительном просмотре в Ленте новостей см. здесь.
URL статьи, опубликованный до публикации моментальной статьи, перенаправляет пользователей на веб-версию статьи для мобильных устройств. После публикации моментальной статьи все ссылки, в том числе опубликованные ранее, будут автоматически отображать моментальную статью при просмотре на мобильном устройстве.
На сегодняшний день метрика views включает только пользователей iOS. Просмотры с устройств Android подсчитываются отдельно, в метрике android_views.
Подробнее об этом см. здесь.
Pages Manager для Android пока не поддерживает закрытые ленты. Чтобы просмотреть свои статьи на устройстве Android, попробуйте добавить их в общедоступную ленту как черновики.
Отредактировать моментальные статьи можно с помощью интерфейса своей Страницы. Для этого откройте Страницу в браузере и перейдите в раздел «Инструменты для публикации» > «Моментальные статьи». В нем вы сможете отредактировать свои моментальные статьи. Подробнее об этом см. здесь: https://developers.facebook.com/docs/instant-articles/publishing.
На сегодняшний день таймаут загрузки ленты составляет 30 секунд.
Нет. Публикуемая ссылка должна совпадать с каноническим URL статьи. Измененный URL (например, с добавленными параметрами) мы расцениваем как другой URL.
Все ошибки и предупреждения, обнаруженные при получении вашей ленты RSS, отображаются во вкладке «Моментальные статьи» на странице «Настройки». Чтобы просмотреть предупреждения и ошибки определенной статьи, выберите ее во вкладке «Моментальные статьи» страницы «Инструменты для публикации».
Убедитесь, что ваша лента RSS имеет формат, описанный здесь.
Кроме того, канонический URL статей должен использовать домен, заданный для вашей страницы, или его субдомен. Если статьи извлекаются, но обновления существующих статей не отображаются, убедитесь, что вы изменили значение метки времени op-modified на более позднее.
Подробнее об этом см. здесь.
Как правило, статьи не обновляются из ленты RSS из-за того, что метка времени op-modified статьи в ленте совпадает с меткой последней версии статьи, которую мы получили. Мы обновляем статью, только если ее метка времени позднее, чем у последней версии.
Кроме того, убедитесь, что в обновленной версии статьи используется тот же канонический URL.
Подробнее о том, как мы получаем статьи из ленты RSS, см. здесь.
Мы пытались полностью загрузить и обработать вашу ленту RSS в течение 10 секунд. Такая ошибка свидетельствует о том, что нам это не удалось сделать.
Чтобы решить проблему, вы можете сократить количество элементов в ленте RSS — например, оставить в ней только новые и измененные статьи за последние 10 минут. Поскольку мы извлекаем данные из ленты каждые 3 минуты, добавлять в нее статьи без изменений не требуется.
К сожалению, у нас нет списка статических IP-адресов для краулера. Вместо него вы можете использовать пользовательский агент нашего краулера: facebookexternalhit/1.1
Если метка времени op-modified моментальной статьи указывает, что ее обновили более 24 часов назад, статья не обновляется. Мы обновляем статью, только если время ее изменения отличается от времени изменения существующей статьи не более чем на 24 часа и не совпадает с текущим временем. Если мы проигнорировали обновление, вы можете вручную внести изменения в нужные статьи в веб-интерфейсе редактора моментальных статей.
Подробнее об этом см. здесь.
Проверьте, не используются ли в дубликатах другие канонические URL. Канонический URL статьи — это ее уникальный идентификатор. Если у статей разные канонические URL, мы рассматриваем их как разные статьи.
Возможно, ваша система управления материалами публикует обновления статей под другими URL, из-за чего они передаются в нашу систему как новые статьи.
Да. Каждая страница сопоставлена с определенным уникальным именем домена. Канонические URL моментальных статей, связанных с определенной страницей, должны принадлежать ее домену или субдомену.
Однако домен URL ленты RSS может не совпадать с доменом, который сопоставлен со страницей. Это ограничение касается только канонических URL статей в ленте.
Если вы хотите опубликовать статьи на разных страницах в соответствии с языком, создайте разные ленты RSS для каждого языка и настройте для каждой страницы соответствующую ленту RSS.
Нет. Если мы получили статью из ленты RSS, то будем хранить ее как моментальную статью, пока вы не удалите ее из инструментов для публикации своей страницы. Затем вы сможете безопасно удалить эту статью из ленты RSS, чтобы ускорить передачу данных нам.
На сегодняшний день публиковать или удалять статьи с помощью API невозможно, но мы работаем над этим.
К кнопке «Нравится» применяется акцентный цвет, который вы задали в настройках стиля. Убедитесь, что этот цвет различим на фоне заголовка.
Кроме того, кнопка «Нравится» отображается только в том случае, если пользователь еще не поставил отметку «Нравится» этой странице. Поэтому администраторы страницы, которые уже поставили ей отметку «Нравится», эту кнопку не видят.
Убедитесь, что вы не добавили в статью несколько тегов <br> подряд. Чтобы разделить текст статьи на несколько параграфов, мы рекомендуем использовать не разрывы строк, а теги параграфа (<p>).
Убедитесь, что вы добавили класс op-tracker в тег <figure>, в который заключен пиксель отслеживания. Без этого тега материалы будут обработаны как встроенное изображение.
Убедитесь, что формат видеофайла поддерживается. Список поддерживаемых форматов видеофайлов см. здесь.
Проверьте также, нет ли ошибок в теге <figure>, в который добавлено встроенное видео, и убедитесь, что вы не добавили это видео в параграф (тег <p>).
Обычно это предупреждение отображается при добавлении материалов без текста — например, изображений или встроенных интерактивных материалов — в параграфы (теги <p>). В параграфы можно добавлять только текст. Любые другие материалы необходимо заключить в тег <figure> или другой подходящий контейнер.
Нет. Элемент подписи (<figcaption>) поддерживает только теги <h1>, <h2> и <cite>. Тег параграфа (<p>) не поддерживается.
На сегодняшний день элементы <video> не поддерживают атрибут muted.
Добавить рекламу в статьи можно с помощью стандартного элемента <figure> HTML5, в который вставлен элемент <iframe>, содержащий разметку рекламы. Для этого нужно применить к элементу <figure> класс op-ad. Существует два способа настройки рекламы: вы можете указать URL рекламы напрямую с помощью атрибута «src» в iframe или встроить в iframe неизолированный набор HTML и скриптов.
Подробнее о рекламе см. здесь: https://developers.facebook.com/docs/instant-articles/reference/ad.
Стандартный элемент <img> не поддерживает формат SVG. Однако вы можете добавить в статью встроенные интерактивные материалы (op-interactive), вставить в iframe элемент <img> и указать в атрибуте src URL изображения SVG.
Используйте элемент «Карта», который описан здесь: https://developers.facebook.com/docs/instant-articles/reference/map. Это рекомендованный способ добавления карты в моментальную статью.
Если добавить в статью интерактивный встроенный элемент из «Карт Google», возникает известная ошибка, из-за которой эта карта иногда не отображается. Чтобы ошибка не возникала, вставьте iframe, который загружает эту карту («https://www.google.com/maps/embed?...»), в другой iframe.
Интерактивные модули можно встроить в статью с помощью элемента figure с классом op-interactive. Дополнительные сведения и примеры кода см. здесь: https://developers.facebook.com/docs/instant-articles/reference/interactive.
Чтобы задать высоту, добавьте атрибут height в элемент <iframe>, в который заключены встроенные материалы. Значение атрибута должно быть целым числом. Оно соответствует высоте в пикселях. Высота не может превышать 960 пикселей.
Чтобы добавить обложку, вы можете добавить тег <figure> в заголовок. В качестве обложки можно использовать изображение или видео. В первом случае в тег <figure> нужно добавить тег <img>, во втором — тег <video>.
Подробнее об обложках см. здесь.
Чтобы разделить смежные изображения пробелом, вставьте между ними пустые параграфы — например, <p> </p>.
Для добавления атрибуции используйте элемент <cite> в элементе <figcaption>.
Для фото обложки можно задать атрибуцию, которая сделает его постоянно видимым. Для этого явно настройте один из атрибутов вертикального выравнивания в элементе <cite>. В противном случае читатель не увидит цитату, пока не развернет изображение.
Чтобы встроить в статью материалы из социальных сетей, необходимо добавить в нее элемент figure с классом op-social и iframe, содержащий эти материалы.
Дополнительные сведения и примеры кода см. в этом документе.
Чтобы добавить обложку, вы должны указать прямую ссылку на видеофайл (например, mp4). Поскольку прямые ссылки на видео, размещенные на Facebook, не предоставляются, вы должны разместить видео на другом портале.
В пунктах списка можно использовать некоторые теги HTML, например теги жирного шрифта или добавления ссылок. Чтобы изменить цвет или стиль шрифта, используйте редактор стиля в интерфейсе Страницы Facebook («Настройки» -> «Моментальные статьи»).
Если вы встроили в статью видео с помощью HTML-элемента <video>, это невозможно, поскольку мы не поддерживаем последовательное воспроизведение нескольких видео.
Если же вы встроили в статью видеоплеер в качестве встроенных в iframe материалов из социальных сетей, вы можете добавить список воспроизведения, при условии что плеер поддерживает такую функцию.
Боковые врезы в параграфах не поддерживаются. Их нужно размещать за пределами тега параграфа.
Если заголовок статьи занимает две строки, в Ленте новостей отображается только он. Если же он занимает только одну строку, в Ленте новостей также отображается начало статьи.
Убедитесь, что вы не добавили в видео атрибут data-fb-disable-autoplay.
Если видео не воспроизводятся автоматически только для определенного пользователя, проверьте, не отключена ли функция автоматического воспроизведения видео в настройках его приложения Facebook. О том, как это сделать, см. здесь.
Чтобы добавить видео в окно предварительного просмотра статьи в Ленте новостей, добавьте класс fb-feed-cover в любое видео в статье. Подробнее о предварительном просмотре в Ленте новостей см. здесь.
В HTML-разметку каждой статьи нужно добавить элемент <time> с классом op-published, чтобы указать дату и время первой публикации.
Класс op-modified использовать не обязательно. Его необходимо применить к элементу <time> только при обновлении статьи, если вы хотите, чтобы мы обновили сохраненную у нас версию этой статьи.
Убедитесь, что этот текст заключен в параграфы (теги <p>). Подробнее о создании разметки статьи см. здесь.
Убедитесь, что вы не заключили элемент <figure> в параграф (теги <p>). Изображения нужно заключить в теги <figure> и вложить непосредственно в тег <article>.
К сожалению, добавить подписи к отдельным изображениям в слайд-шоу невозможно. Можно добавить только одну подпись ко всем изображениям.
Подробнее см. в документации по слайд-шоу.
Чтобы добавить отметки «Нравится» и комментарии к изображению, задайте атрибут data-feedback в теге <figure>, в котором содержится изображение. Например, если добавить атрибут data-feedback="fb:likes,fb:comments, будут одновременно отображаться и отметки «Нравится», и комментарии к изображению.
Подробнее см. в документации по атрибуту feedback.
Чтобы задать ширину встроенных интерактивных материалов, укажите целое число, соответствующее ширине в пикселях. По умолчанию элементы отображаются в полную ширину.
Чтобы встроенные интерактивные материалы отображались без полей, добавьте класс no-margin в iframe, который содержит эти материалы.
Если лента RSS вашей страницы уже прошла проверку, повторно отправлять ее на проверку после изменения URL не нужно.
Мы связываем каждую страницу с уникальным именем домена. URL ленты RSS может не совпадать с этим именем. Однако канонические URL отдельных статей в ленте должны принадлежать тому же домену или его субдомену. Если вы измените только URL ленты RSS, никаких проблем не возникнет.
Если вы также обновите канонические URL статей и свяжете их с новым доменом, вы должны будете запросить обновление этого домена у своего менеджера по работе с партнерами. Он поможет вам выполнить эту процедуру.
У вашего приложения для Facebook должны быть настроены настоящие ID iPhone Store и iPad Store (при тестировании необязательно использовать настоящие ID — будет достаточно ID любого приложения из Apple App Store). Кроме того, в перечень указанных платформ Центра приложений должны входить iOS и iPad.
Так устроена система. Через диалоговое окно контент публикуется уже с вложением, поэтому невозможно настроить дополнительные вложения.
Рекомендации по оптимизации изображений для предпросмотра см. здесь.
Ответные данные доступны только в том случае, если пользователь вошел в приложение через Facebook и предоставил разрешение publish_actions. Подробнее об этом читайте здесь.
Это сделано специально. Мы сократили список друзей, чтобы игровые запросы были более актуальны для игроков. Обратите внимание, что с помощью поля «Поиск» игроки по-прежнему могут выбрать любое количество друзей.
Благодаря этому изменению увеличилось число кликов и повысился показатель CTR. Мы будем и дальше оптимизировать этот канал, чтобы предлагать людям интересные для них игры.
Краулер возвращает код отклика 0, если ему не удается найти запись AAAA. Убедитесь, что вы правильно обновили запись AAAA, когда изменили URL или сервер.
Подробнее см. в разделе Обновление URL.
Изменения og:title, og:image и т.д. влияют только на будущие перепосты ссылки.
Если с перепостом взаимодействовали более 50 раз (включая комментарии, отметки "Нравится", публикации и т. д.), его название нельзя изменить. Это ограничение не позволяет изменить ссылку на сайте уже после взаимодействия с ней, чтобы создать впечатление, что пользователь взаимодействовал с другим контентом. Все остальные свойства можно изменить в любой момент.
Если вы сделали перепост ссылки и обновили изображение, в исходной публикации по-прежнему будет отображаться старое изображение, если вы не обновите его именно в этой публикации.
Чтобы обновить изображение ссылки в публикации:Мы «замораживаем» заголовки после выполнения определенных действий с ними (см. статью Обновление URL).
На кадрирование изображения влияет множество факторов. Например, если мы распознаем лица на изображении, то пытаемся поместить их в центр.
Если изображения крупные, постарайтесь приблизить соотношение их сторон к 1,91:1, чтобы мы могли показать в Ленте полное изображение, не обрезая его.
В репостах ссылок на страницах всегда используются крупные изображения в альбомной ориентации. В таком виде они отображаются в Ленте и на ПК, и на мобильных устройствах. Попробуйте загружать изображения с соотношением сторон, максимально близким к 1,91:1, чтобы мы могли показать в Ленте полное изображение, не обрезая его.
Возможно, наша система фильтрации материалов отметила вашу ссылку как недопустимую. Если вы считаете, что это ошибка, отправьте сообщение с сайта нашей службы поддержки и обязательно укажите в нем соответствующий URL.
Изображения кэшируются асинхронно, поэтому, когда человек впервые делится вашими материалами, изображение может не отобразиться. Чтобы избежать этого, попробуйте сделать следующее:
— Кэшируйте изображение предварительно путем скрапинга с помощью отладчика публикаций — Укажите изображение явным образом с помощью тегов og:image:height и og:image:width
Все перепосты и отметки "Нравится" привязаны к определенному URL (мы называем его каноническим URL). При замене URL в структуре сайта отметки "Нравится" и перепосты будут связаны с новым URL.
Подробнее см. в разделе Обновление URL.
Все перепосты и отметки "Нравится" привязаны к определенному URL (мы называем его каноническим URL). При замене URL в структуре сайта отметки "Нравится" и перепосты будут связаны с новым URL.
Подробнее см. в разделе Обновление URL.
В небольшое изображение квадратной формы преобразуются изображения размером меньше 600 x 315 пикселей, но больше 200 x 200 пикселей.
Мы считаем все URL изображений постоянными, поскольку они используются для кэширования ресурсов на разных уровнях. Поэтому чтобы заменить изображение, нужно заменить и URL. Когда данные в кэше устареют, мы получим новое изображение и проблема решится сама собой.
Если вы изменили URL, но изображение не изменилось, попробуйте повторно выполнить скрапинг этого URL с помощью отладчика публикаций:
Все URL должны быть абсолютными, поскольку они указывают на каноническое расположение ресурса (страница/изображение); в противном случае мы не сможем соотнести перепосты и отметки «Нравится» с правильными URL и изображениями в кэше.
Исходное изображение больше не доступно, слишком велико или мы не можем его получить из-за какой-либо временной проблемы. Убедитесь, что URL изображения доступен для краулера, размер файла изображения не превышает 8 МБ и показ изображения осуществляется с задержкой менее нескольких секунд.
При изменении og:image страницы убедитесь, что старое изображение не удалено с сайта, поскольку в этом случае в ранее сделанных перепостах вместо изображения будет показан белый прямоугольник.
Это происходит из-за задержки репликации на наших центрах обработки данных. Завершение процесса занимает несколько секунд, а до тех пор к ID объекта невозможно получить доступ через API.
Если вы попытаетесь прочитать данные о рекламе до полного сохранения, вы можете получить GraphMethodException
с сообщением наподобие Unsupported get request. Object with ID 'XXXXXXXXXXXXXXXXXX' does not exist, cannot be loaded due to missing permissions, or does not support this operation.
Чтобы избежать этой проблемы, подождите немного, прежде чем пытаться получить данные о рекламе.
Иногда при попытке использовать определенное оформление в определенной кампании вы можете столкнуться с ошибкой проверки. Это может произойти, если у кампании есть цель, которая несовместима с используемым оформлением. Пример: оформление указывает на игру на веб-странице, но цель кампании – MOBILE_APP_INSTALLS (увеличить число установок мобильного приложения).
Чтобы найти решение этой проблемы, изучите эти рекомендации.
Проверьте, нет ли ошибок в сеансах загрузки, которые не содержали интересующих вас позиций.
Когда параметр deletion_enabled настроен на значение «true», удаляются только те позиции, которых больше нет в ленте успешного сеанса загрузки.
Если вы столкнетесь с этой ошибкой, проверьте статус рекламного аккаунта. Нередко эта ошибка возникает, когда рекламный аккаунт не оплачен.
Это нормально, поскольку дата в бэкэнде для Статистики Страницы хранится только в течение 2 лет. Поэтому вызов возвращает нулевые значения. Ненулевые значения будут только для отметок «Нравится», перепостов и комментариев публикации, данные которой сохраняются самой публикацией.
Проверьте синтаксис настроек таргетинга, в частности параметры и значения geo_locations.
Когда вы создаете рекламу с определенными целями, используются характеристики конверсии по умолчанию. Если вы измените характеристики конверсии, существующие характеристики будут переписаны.
Обратите внимание: некоторые цели не имеют характеристик конверсии по умолчанию, поэтому их нужно задавать явно.
Причина может быть в том, что аудитория work_positions для страны, на которую вы настроили таргетинг, настолько мала, что это не влияет на приблизительный охват. Мы продолжаем собирать данные, которые могут увеличить количество людей, добавляемых в исключение work_positions, что будет влиять на значение приблизительного охвата.
Это происходит из-за того, что в вашем приложении включена миграция Stream post URL security.
Если в вашем приложении включена эта настройка, система не позволит создать рекламу публикации со ссылкой, если эта ссылка не перенаправляет на URL Холста, указанный в настройках приложения. Эта настройка не должна быть обязательной кроме тех случаев, когда ваше приложение — это приложение Холста, в котором публикуются только истории, перенаправляющие людей обратно в домен приложения.
Cкорее всего, пользователь связан с аккаунтом через Business Manager, а в этой ситуации API Graph не считает связь установленной.
Убедитесь, что партнерские категории указаны в соответствующем поле таргетинга. Партнерские категории, извлеченные из эндпойнта «/partnercategories», содержат поле под названием «targeting_type», которое вы должны использовать при выборе типа таргетинга.
Например, если ваша партнерская категория возвращает «поведение» как «targeting_type», вам следует использовать эту партнерскую категорию в поле «поведение» (behavior) характеристик таргетинга.
Подробнее о типах таргетинга и партнерских категориях см. здесь: https://developers.facebook.com/docs/marketing-api/partnercategories/v2.3#targeting_types
Вероятная причина ошибки: индивидуально настроенная аудитория, в которой не заданы критерии отбора пользователей (включения в аудиторию и исключения из нее). Советуем создать новую аудиторию и указать несколько критериев отбора.
Подробнее об индивидуально настроенных аудиториях читайте в этой статье.
У группы объявлений может быть как daily_budget (дневной бюджет), так и lifetime_budget (бюджет на весь срок действия). Значение daily_budget, указанное в валюте аккаунта, должно составлять хотя бы 100 центов и быть рассчитано на не менее чем 24 часа. Если вы запросите одно из этих полей, возвращены будут оба. Если поле не используется, будет указано значение 0.
Подробнее см. по адресу: https://developers.facebook.com/docs/reference/ads-api/adset.
Эндпойнт adcampaign_groups использует пейджинацию по положению курсоров, поэтому не возвращает поля с количеством, порогом и сдвигом. Для получения достоверных результатов рекомендуем использовать пейджинацию по положению курсоров.
Подробнее об использовании пейджинации по положению курсоров см. по адресу: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#paging.
Возможно, некоторые публикации являются встроенными. О том, как получать такие публикации, читайте в этом разделе документации. Нужно будет проверять значение поля is_inline.
Если пользователь ответил на первый вопрос, окно обмена сообщениями будет открыто. Если пользователь не ответил или выбрал вариант, который ведет к дисквалификации, показ рекламы прекращается. Реклама передает управление перепиской целевому приложению и предоставляет метаданные messenger_lead_gen_incomplete. Это позволяет компании использовать альтернативный способ конверсии пользователей, которые не становятся лидами, в клиентов. Дополнительная информация: Webhook HOP после рекламы для лидов.
Отправка резюмирующего сообщения включена по умолчанию только тогда, когда приложение выбрано в диалоговом окне создания шаблона в объявлении. Резюмирующее сообщение можно отключить в объявлении после выбора подключенного приложения. Даже если приложение не выбрано, реклама для генерации лидов передаст управление перепиской основному получателю, если он установлен, или просто освободит управление перепиской. Любое последующее сообщение после отправки лида будет отправлено в подписанные приложения. Приложения могут запрашивать Conversations API, чтобы получить историю сообщений и информацию, которой поделились во время генерации лидов.
По умолчанию во время показа рекламы для генерации лидов Send API и Webhooks заблокированы. Приложение (ID 413038776280800) для генерации лидов в Messenger будет управлять перепиской. Это можно отключить с помощью переключателя блокировки Send API в диалоговом окне "Создать шаблон" в объявлении.
После отправки лида Приложения получат Webhooks сообщений пользователя и смогут ответить на них. Если приложение выбрано как часть Приложения, то только этому приложению будет разрешено отвечать и оно получит Webhooks в канале обмена сообщениями. Окно обмена сообщениями открыто, и Приложение может ответить с помощью Send API.
Приложения устанавливаются с сайта приложения с использованием входа через Facebook и предоставлением разрешения pages_messaging конкретной Странице. Авторизованные приложения появятся в разделе Расширенный обмен сообщениями в настройках Страницы.
В списке появляются только авторизованные приложения для Страницы. Вы можете увидеть авторизованные приложения в разделе Расширенный обмен сообщениями в настройках Страницы. Приложения устанавливаются с сайта с использованием входа через Facebook и предоставлением разрешения pages_messaging конкретной Странице.
Чат-бот должен сообщать пользователю о том, что это автоматизированный сервис, в следующие моменты:
Подробные сведения об этой политике см. здесь.
Если этого требует применимое законодательство, автоматический чат (или "бот") должен уведомлять пользователей, что они общаются с автоматизированным сервисом. Желательно уведомлять пользователей, даже если нет таких требований законодательства. Подробные сведения об этой политике см. здесь.
Да. Одно приложение Facebook может быть подписано на несколько Страниц. После отправки приложения на проверку (например, для разрешения pages_messaging) вы сможете настроить приложение так, чтобы оно получало Webhooks с нескольких страниц. Вам нужно будет самостоятельно определить контекст каждого Webhook на основании на полезных данных.
Да, на Страницу могут подписаться несколько приложений. Когда несколько приложений обрабатывают одну переписку, лучше всего использовать протокол передачи, чтобы определить, какой бот управляет перепиской в конкретный момент.
Выполните следующие действия для проверки интеграции платформы Messenger:
https://graph.facebook.com/v2.6/me/accounts?access_token=[TEST_USER_ACCESS_TOKEN](Документация)
https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=[TEST_USER_PAGE_ACCESS_TOKEN](Документация)
GET /oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}
Это может происходить по разным причинам:
Если вы работаете с плагином «Отправить в Messenger», то можете использовать параметр data-ref для передачи любой информации о контексте клика.
Люди могут находить вашу страницу и через поиск в Messenger. В этих случаях у вас не будет параметра для передачи информации. Вы можете использовать функцию привязки аккаунта, чтобы связать переписку с аккаунтом пользователя на вашем сайте.
В настройках Messenger на панели приложений доступна кнопка "Показать недавние ошибки". С ее помощью можно узнать, получают ли Webhooks отклик 200 или завершаются неудачно.
Для просмотра недавних ошибок Webhooks есть специальный инструмент. Если вызовы Webhooks не доставляются, серверы Facebook автоматически отменяют подписку для вашего URL. Чтобы воспользоваться инструментом, перейдите на Панель приложений, выберите > Messenger > "Настройки" и найдите в карточке Webhooks кнопку Показать недавние ошибки.
Убедитесь, что ваш Webhook отвечает с кодом статуса 200. Это код указывает на успешное получение запроса. Если код 200 не возвращается, мы будем отправлять повторные вызовы, пока этот код не будет получен. Кроме того, если Webhook не возвращает код 200 в течение долгого времени, мы начинаем отправлять разработчику предупреждения.
Обратите внимание, что успешный ответ возвращается через установленный промежуток времени. Вызов Webhook имеет таймаут 20 секунд. Конфигурируйте код таким образом, чтобы запросы Webhook обрабатывались асинхронно, тогда код статуса будет возвращаться мгновенно.
Вызовы Webhook содержат в заголовке поле X-Hub-Signature, которое позволит убедиться, что вызов получен от Facebook.
Это может быть связано с двумя факторами. Во-первых убедитесь, что ваш Webhook правильно настроен (https://developers.facebook.com/docs/messenger-platform/webhook-reference#setup). Существует индикатор, указывающий на корректную работу Webhook.
Во-вторых, нужно подписаться на все страницы. Вы увидите список всех страниц, на которые вы подписаны.
Если вызовы Webhook дают сбои в течение долгого времени, подписка приложения будет отменена, и вам придется снова добавлять Webhook и подписывать приложение на страницу.
Скорее всего, контент нужно будет получить повторно. Можно подождать, когда это произойдет автоматически, или запустить процесс вручную с помощью инструмента отладки.
При размещении истории Open Graph нельзя контролировать размер отображения публикации в Ленте новостей или Хронике (если не считать предоставление тегов OG для Страницы). Facebook автоматически оптимизирует публикации, чтобы обеспечить максимальную вовлеченность для вашего контента.
Да, функция ссылок действий упразднена. Сайт Facebook больше не поддерживает ссылки действий, поэтому данная функция упразднена на всей платформе. В будущем эта функция может быть восстановлена, но это не входит в наши ближайшие планы.
Если ваша веб-страница использует наши метатеги OpenGraph и включает запись og:image, мы извлекаем это изображение и показываем его в окне предпросмотра. Кроме того, если ваш сайт предоставляет параметры og:image, og:image:width и og:image:height, это изображение будет использоваться даже для первой публикации.
Если этих параметров не будет, вам придется дождаться, когда наши краулеры извлекут и проанализирует изображения. Пример см. здесь: http://ogp.me/#structured.
Так устроена система. Мы давно упразднили API REST и не планируем его восстанавливать. Как следствие, маркеры доступа к Странице нельзя использовать с API REST.
Вы можете задать нужный язык для кнопки «Нравится», используя параметр locale в SDK для JavaScript. Тогда даже те, кто не вошел в систему, будут видеть правильный перевод. Если пользователь вошел в систему, учитываются его языковые настройки. Если он указал конкретный язык, то «Нравится» будет написано на этом языке.
Вы можете протестировать данную функцию: откройте свою ленту, не входя в Facebook или используя приватное окно браузера.
Правила Facebook запрещают разработчикам указывать что-либо в текстовом поле при отправке материалов в Facebook. Пользователи вашего приложения должны самостоятельно вводить текст, публикуемый с изображением.
Иначе вы нарушите пункт 2.3 Политики платформы. Он предусмотрен, чтобы пользователи публиковали именно то, что они хотят, а не чужие слова, подставляемые приложением.
Это нормально, если вы изменили URL веб-страницы. Каждый URL, на котором размещен плагин комментариев, считается отдельным объектом open graph, и комментарии связаны с этим объектом. Поэтому, если вы измените URL, будет создан новый объект и комментарии могут не отображаться на странице.
Нет, публиковать комментарии с помощью API в плагин комментариев нельзя.
Человек, который поделился публикацией, не разрешает настраивать индивидуальные параметры и вместо этого отправляет метаданные из метатегов open-graph страницы.
Рекомендации по публикации контента см. здесь: https://developers.facebook.com/docs/sharing/best-practices
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.
Нет. На данный момент мы не поддерживаем изменение местоположения медиафайлов по умолчанию (/usr/local/wamedia/). Для правильной работы все медиафайлы должны находиться в этой папке.
Нет, в настоящее время для совместного доступа Coreapp и Webapp к тому медиафайлов необходимо использовать AWS EFS.
Нет. Мы не поддерживаем KOPS. Мы предлагаем поддержку решения AWS на основе ECS. Также можно воспользоваться руководством по настройке Kubernetes Minikube.
Coreapp проверяет каталоги /usr/local/waent/data
и /usr/local/waent/log
в контейнере Coreapp. В них должно быть не менее 10 МБ свободного пространства. В противном случае возникает эта ошибка.
Проверьте каталоги данных и журналов вручную и убедитесь, что в них достаточно места.
Нет. На данный момент невозможно использовать несколько номеров для одного клиента WhatsApp Business API. Мы работаем над решением, которое позволит делать это в будущем.
Используйте сбор мусора в базе данных API конечной точки services
, чтобы удалить сообщения и соответствующие подтверждения о получении сообщений из таблиц messageStore.messages
и messageStore.messages_receipt_log
.
Проверьте параметр pass_through
. Если параметр pass_through
включен в клиенте WhatsApp Business API версии v2.29.1
или более поздней, вы не будете получать обратные вызовы для статуса "прочитано".
Чтобы получать эти вызовы, отключите параметр pass_through
. Примечание. При включенном параметре pass_through
база данных может быстро заполняться. Подробнее об управлении базой данных см. в документации.
Таблицы messages
и messages_reciept_log
периодически очищаются от мусора.
При этом в сборщике мусора сохраняются сообщения некоторых видов, необходимые для доставки или обработки сообщений. Например, входящие сообщения сохраняются в течение определенного времени, чтобы бизнес-интеграция могла пометить сообщение как прочитанное.
Coreapp собирает мусор со случайными интервалами (каждые несколько часов). Это необходимо, чтобы избежать снижения производительности в стеках повышенной доступности из-за заполнения базы данных.
Сбор мусора не затрагивает очередь обратных вызовов. Например, если сервер Webhooks недоступен в течение четырех дней, обратные вызовы сохраняются и будут отправлены, когда сервер станет доступен.
Получатель может переходить по присылаемым вами ссылкам только в тех случаях, когда он уже добавил вашу компанию в контакты или у вас официальный бизнес-аккаунт.
До версии v2.29.x
существовала ошибка, из-за которой очередь исходящих сообщений могла увеличиваться со временем. Чтобы избежать этой ошибки, выполните обновление до версии v2.29.3
.
Вы должны предоставить QR-код, соответствующий предполагаемому местоположению и языку пользователей.
Теперь QR-коды можно генерировать и управлять ими напрямую через API WhatsApp Business Management. Пользователи могут сканировать QR-коды с помощью камеры WhatsApp, iOS или Android.
Кроме того, при использовании QR-кодов WhatsApp:
При считывании удаленного QR-кода или переходе по удаленной короткой ссылке пользователи получают уведомление о том, что срок действия кода или ссылки истек.
Если у пользователя установлен клиент WhatsApp для компьютеров, при переходе по ссылке откроется чат с вашей компанией. Если клиент отсутствует, пользователю будет предложено установить его.
Готовые сообщения для коротких ссылок можно редактировать или удалять в любое время. Синтаксис URL в коротких ссылках преображается в случайный код, благодаря чему в URL не нужно встраивать текст сообщения, а номер телефона скрывается.
Мы рекомендуем использовать изображения в формате .svg
для достижения максимального качества печати.
Вы можете просматривать, создавать, редактировать и удалять QR-коды и короткие ссылки с помощью API WhatsApp Business Management и в пользовательском интерфейсе Business Manager.
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).
В версии v2.25.x
по сравнению с предыдущими повышена производительность обработки входящего и исходящего трафика. Для такой оптимизации используются дополнительные соединения с базой данных. В результате в некоторых развертываниях количество соединений может превзойти ограничение. Чтобы сохранить высокую производительность, увеличьте максимальное количество соединений, которое может принимать ваш сервер базы данных. Если это невозможно, измените значение параметра axolotl_context_striping_disabled, чтобы отключить оптимизацию. Подробнее о том, как его изменить, см. в документации.
Если вы или ваш конечный клиент хотите получить статус официального бизнес-аккаунта WhatsApp, ознакомьтесь с инструкциями в соответствующем разделе документации.
Нет. В настоящее время ограничивается только количество сообщений, инициированных компанией (уведомлений).
Для этого нужно отправить через WhatsApp Business API не менее 4 изображений подряд. Если в момент получения изображений у пользователя включено свое представление чата, то представление альбома не будет доступно до следующего сеанса.
Альбом не создается, если выполняется хотя бы одно из следующих условий:
Нет. В настоящее время клиент API WhatsApp Business не работает в Docker для Windows. В целях разработки рекомендуется запускать Docker на виртуальной машине Linux. В рабочей среде во избежание проблем с совместимостью и производительностью мы рекомендуем использовать сервер Linux.
Код ошибки 471
связан с ограничением количества обращений в зависимости от качества. Дополнительную информацию см. в документации.
Сначала для всех компаний действует минимальное ограничение. Компании, отправляющие качественные сообщения, автоматически переводятся на уровни с более высокими ограничениями.
Да. Если сообщение с шаблоном не удалось показать получателю, вы получаете обратный вызов со статусом failed (сбой) и сообщением Structure Unavailable (Структура недоступна) в объекте ошибки. В зависимости от получателя вы также можете получить обратный вызов со статусом delivered (доставлено). Он означает лишь то, что сообщение было доставлено, но не то, что оно было показано.
Вот список ошибок и возможные причины их возникновения.
template
. Дополнительную информацию см. в документации по шаблонам сообщений с медиафайлами.Повторная отправка сообщений в Webhook WhatsApp — единственный способ гарантировать, что они будут получены хотя бы один раз. Если это влияет на обработку сообщений, дубликаты можно удалять по идентификаторам.
Если этот номер не зарегистрирован в API WhatsApp Business, его можно использовать. Дополнительную информацию о миграции номера см. в этом разделе.
Начиная с версии 2.18.26 конечная точка App Stats позволяет экспортировать внутренние метрики в текстовом формате Prometheus. Дополнительную информацию см. в документации по мониторингу экземпляров.
Если бизнес-профиль заполнен только частично, возвращается пустой объект profile
. Чтобы избежать этой ошибки, выполните обновление до версии v2.21.4
.
Дополнительную информацию о заполнении бизнес-профиля см. в этом разделе.
Если при настройке в AWS возникает ошибка, схожая с указанной ниже, сократите название стека (не более 8 символов).
Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:string is too long, it needs to be less than 64 bytes long Common Name (e.g. server FQDN or YOUR name) []:Email Address []:error, no objects specified in config file problems making Certificate Request Created device key for internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com (Страна (двухбуквенный код) [AU]:штат или провинция (полное название) [штат]:населенный пункт (например, город) []:название организации (например, компании) [Internet Widgits Pty Ltd]:название подразделения (например, отдела) []:общее имя (например, полностью квалифицируемое доменное имя сервера или ваше имя) []:слишком длинная строка, размер общего имени не должен превышать 64 байт общее имя (например, полностью квалифицируемое доменное имя сервера или ваше имя) []:электронный адрес []:ошибка, в файле конфигурации не указан объект проблемы с созданием ключа устройства запроса сертификата для internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com)
Ограничений на количество параметров в шаблонах нет.
В одном бизнес-аккаунте WhatsApp может быть не более 250 шаблонов.
Если событие Webhook не было доставлено по какой-либо причине (например, клиент находится офлайн) или запрос к Webhook вернул код статуса HTTP, отличный от 200
, мы попытаемся доставить событие ещё раз. Попытки будут повторяться через все большие промежутки времени, пока не истечет время ожидания (обычно 24 часа, но может быть иным) или пока событие не будет доставлено.
Иногда для обработки запроса клиента 24 часов может оказаться недостаточно. Мы рекомендуем создать шаблон сообщения, чтобы:
В обоих случаях следует включить в шаблон всю необходимую информацию. Примеры:
В WhatsApp проводятся эксперименты для анализа и оценки влияния уведомлений API WhatsApp Business на удобство работы пользователей и продукт в целом. Если получатель сообщения участвует в таком эксперименте, он может не получать от вас уведомления, даже если согласился на это.
Если вы создадите резервную копию текущей конфигурации и восстановите ее на новом компьютере, регистрационные данные должны быть перенесены вместе с остальными настройками. Дополнительные сведения см. в разделе Резервное копирование и восстановление настроек.
Да. Поведение при ротации журналов для контейнеров webapp и coreapp различается.
Обратитесь в службу поддержки и предоставьте всю имеющуюся у вас информацию. Мы разберемся в ситуации и заблокируем подложные номера.
Все сборки клиента API WhatsApp Business имеют срок действия 6 месяцев с даты выпуска. Если возникает эта ошибка, выполните обновление до последней версии.
Прежде чем отправлять сообщение, нужно проверить, существует ли контакт. Дополнительную информацию см. в разделе Контакты.
Эта ошибка происходит, если узел Coreapp ещё не запустился. Возможно, регистрация не выполнена, и вам потребуется заново пройти ее перед отправкой вызова к другой конечной точке. После установки API WhatsApp Business необходимо выполнить вход и пройти регистрацию. Без этого отправлять запросы к конечным точкам невозможно.
Примечание. Начиная с версии v2.27.8
, языковая политика fallback
упразднена. Теперь по умолчанию используется политика deterministic
.
Если вы создаете перевод на новый язык, на него нужно перевести все используемые элементы. В противном случае, если телефону получателя не удастся найти элемент на нужном языке, могут происходить ошибки типа Structure Unavailable (Структура недоступна). Они случаются при отправке сообщений с шаблонами в режиме резервного языка.
Если перевод шаблонов пока невозможен, выберите режим определенного языка, чтобы избежать этих ошибок.
Полезные данные сообщения — это текст или медиафайл.
На данный момент способы отправлять вредоносные данные в тексте не выявлены.
Для медиафайлов:
auto_download
пустой массив. Нет. С помощью API WhatsApp Business нельзя определить, используют ли несколько устройств один и тот же номер.
Ошибка Structure Unavailable происходит, когда телефон не может прочитать сообщение с шаблоном.
Шаблоны хранятся на сервере. Если сообщение с шаблоном отправляется через узел messages
,на телефон отправляется только информация о пространстве имен, языке, имени элемента и локализованных параметрах. Получив эти значения, телефон пытается сформировать из них сообщение.
Если при формировании сообщения возникают какие-либо ошибки, на URL обратного вызова отправляется сообщение об ошибке structure unavailable
, содержащее ID получателя и сообщения. Причинами могут быть неправильное пространство имен, несоответствие локализованных параметров, неправильное имя элемента и т. д.
Чтобы узнать правильное количество параметров, перейдите в WhatsApp Manager в своем аккаунте Facebook Business Manager. Проверьте, правильно ли указано пространство имен и существует ли имя элемента.
Распространенная причина ошибок — отсутствие переводов для некоторых используемых шаблонов. Например, если вы обычно отправляете два шаблона и добавляете перевод на новый язык для одного из них, то нужно обязательно добавить перевод и для второго. Если вам нужно реализовать поддержку нескольких языков, предоставьте переводы всех шаблонов на каждый из них.
В большинстве случаев ошибки structure unavailable
происходят из-за ошибок в вызове messages
API, и их можно исправить, изменив отправляемые полезные данные.
Регистрировать для аккаунта WhatsApp новые номера телефонов и удалять старые можно в Facebook Business Manager.
К изображениям подписи можно добавлять в качестве описания. Текст подписи отображается для изображений полностью как на устройствах Android, так и на iPhone.
Для документов подпись заменяет собой имя файла. Она отображается на устройстве пользователя не как описание, а как имя файла. На iPhone текст отображается целиком, в то время как на устройствах Android имя файла обрезается (таковы особенности текущей реализации WhatsApp на обеих платформах).
Если завершить регистрацию с помощью SMS не удается из-за слишком большого количества попыток и вы видите сообщение о том, что в доступе отказано, попробуйте зарегистрироваться с использованием голосового вызова.
На данный момент кэширование производится на 7 дней. Если кэш не обновлялся более 7 дней, самый новый языковой пакет будет загружен с сервера, независимо от того, имеется нужный элемент в пакете или нет.
Устройство сначала пытается загрузить элемент из кэша. Если элемент есть в нем, сообщение распаковывается с использованием этого шаблона. Поэтому безопаснее не изменять шаблон сообщения, а просто добавить новый с другим именем элемента. Это гарантирует, что в случае отсутствия элемента языковой пакет будет скачан повторно. Шаблоны сообщений занимают очень мало места, поэтому удалять их нет никакой необходимости.
Дополнительную информацию см. в этом разделе.
Сейчас этот API находится в ограниченном публичном доступе. Если вы хотите сотрудничать с нами, укажите информацию о своей компании или свяжитесь с представителем Facebook, если вы уже указали ее.
При выходе пользователя с помощью конечной точки users
все маркеры аутентификации, привязанные к его аккаунту, становятся недействительными. Кроме того, чтобы сделать маркеры недействительными, можно удалить пользователя, однако это крайняя мера. Обратите внимание: при выходе пользователя с помощью конечной точки users
возвращается новый маркер аутентификации, но маркеры, которые уже используются, не становятся недействительными. Если у пользователя есть доступ к этим маркерам, он сможет пользоваться ими до тех пор, пока их срок действия не истечет или вы не сделаете их недействительными одним из указанных выше способов.
Если вы видите эту ошибку, но соответствующий обязательный параметр в объекте JSON задан, возможно, произошла ошибка при анализе кода JSON. Причиной может быть неправильный формат полезных данных JSON. Проверьте, нет ли в значениях параметров недопустимых символов, например возврата каретки в конце. Иногда параметры копируются с дополнительными пробелами, которые нарушают формат JSON.
Причин может быть множество. Например, Coreapp может быть недоступен или база данных может быть настроена неправильно. Если дело не в этом, просмотрите журналы Coreapp (или основного узла Coreapp в режиме распределения нагрузки). Если имеются ошибки подключения к базе данных, скорее всего, не хватает подключений. См. документацию по MySQL или документацию по PostgreSQL.
Мы рекомендуем увеличить количество подключений к базе данных. Одной тысячи подключений должно быть достаточно, но решение следует принимать с учетом конкретной ситуации. Если ошибка не устраняется, подайте заявку в службу поддержки.
Причины могут быть следующими:
Скорее всего, это означает, что контейнер Coreapp не запущен. Чтобы проверить это, выполните команду docker ps
. Если контейнер не работает, просмотрите журналы Docker. Возможно, Coreapp не удается подключиться к базе данных. Убедитесь в том, что она настроена правильно.
Она происходит, если мост Docker поврежден. Чтобы устранить ее, лучше всего перезапустить службу Docker. Можно также попробовать выполнить команду docker restart
в контейнерах.
WhatsApp проверяет, действительно ли предоставленный номер принадлежит телефону. Если у пользователя есть аккаунт WhatsApp, это означает, что он прошел проверку и никто другой не регистрировался в WhatsApp с использованием этого номера. Однако это не гарантирует, что SIM-карта находится в телефоне.
С другой стороны, при потере или краже телефона пользователь может деактивировать свой аккаунт WhatsApp. Подробнее о деактивации аккаунтов при потере или краже телефона см. в этом разделе.
Пользователи с неактивным номером телефона могут по-прежнему пользоваться WhatsApp до тех пор, пока номер телефона не будет переназначен другому пользователю или использован при регистрации.
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.
Эта ошибка происходит, когда база данных настроена неправильно.
Да, подключение TCP обязательно. Если вы не можете использовать дополнительные порты, воспользуйтесь дешифрованным протоколом SSL.
Подробнее см. в статье Требования к сети.
Это известная проблема. Иногда при обновлении клиента API WhatsApp Business через скрипты CloudFormation производится обновление стека базы данных RDS. Имя хоста нового стека RDS отличается от имени исходного, из-за чего контейнеры Docker не могут подключиться к базе данных. Чтобы решить эту проблему, войдите через SSH в экземпляр EC2, созданный CloudFormation. Обновите имя хоста в файле whatsapp.conf
и перезапустите контейнеры Docker.
Да. Перед отправкой сообщения необходимо отправить вызов API на узел contacts
. Полученная от contacts
информация кэшируется в контейнере. Ее отсутствие может вызвать ошибку Unkown Contact
. Дополнительную информацию см. в документации по проверке контактов.
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.
Если Webhook не отправляет обратный отзыв, он переносится в очередь повторной отправки. Все обратные вызовы, отправленные после сбоя, будут получены только после успешной отправки неудавшегося вызова.
Клиент API WhatsApp Business отправляет вам обратные вызовы Webhook через контейнер Coreapp. Поэтому конечную точку Webhook необходимо настроить так, чтобы она могла принимать входящие запросы от Coreapp.
Необходимо зарегистрировать второй номер телефона и создать второй стек CloudFormation или экземпляр Docker для тестирования. Если два активных клиента WhatsApp Business API используют один и тот же номер телефона, сервер откажет вам в доступе из-за конфликта ключей шифрования. Рекомендуется иметь вторую среду, которую можно использовать для тестирования нерабочего экземпляра перед выполнением миграции на рабочем клиенте.
Необходима версия MySQL 5.7.x либо версия PostgreSQL 9.5.x, 9.6.x или 10.x. При использовании более ранних версий возникает ошибка Unable to initialize config store
.
При отправке сообщения вы получаете его ID. Это означает, что запрос на отправку сообщения сохранен в нашей базе данных. Клиент API WhatsApp Business будет отправлять это сообщение до тех пор, пока сервер WhatsApp не примет его. Попытки отправки не ограничены по времени. После принятия сообщения сервер WhatsApp попытается доставить его конечному пользователю. Если устройство пользователя отключено, сообщение будет храниться на сервере WhatsApp в течение 30 дней, после чего будет удалено.
В базе данных хранится информация о настройках приложения, переписках, сообщениях, медиафайлах и т. п. Все эти данные необходимы для работы приложения.
Автоматические уведомления о том, что клиент изменил номер телефона, не предусмотрены. При запросе узла contacts
для номера будет указан новый статус: invalid
.
Нет, в экземпляре может использоваться только один аккаунт. Если вам нужен второй тестовый аккаунт, используйте для второго экземпляра другой номер.
Проверка работоспособности не требует дополнительных ресурсов. Ее можно проводить с любой частотой.
Подробную информацию о данных статистики приложения и базы данных, которые можно запрашивать, см. в документации по статистике. Статистика приложения хранится в памяти и требует небольшого количества ресурсов для считывания. Статистика базы данных требует большего количества ресурсов. Ее следует запрашивать только при необходимости.
При использовании узла messages
нужно задать для заголовка Content-Type
значение application/json
, чтобы клиент API WhatsApp Business мог правильно проанализировать текст сообщения. Кроме того, заголовок Authorization
должен содержать действительный маркер доступа. Информацию о получении маркера и его сроке действия см. в разделе Вход и аутентификация.
Если места остается мало, работа системы может замедлиться. Обычно это происходит, если у вас хранится слишком много медиафайлов, сообщений или объемных файлов журналов. Для файлов журналов автоматически выполняется ротация, но если файлы становятся слишком большими, их можно просто удалить.
Сообщения хранятся в базе данных. Их можно удалять по мере необходимости. Если в настройках приложения для параметра pass_through
установлено значение false, все сообщения сохраняются в базе данных и их необходимо удалять явным образом.
Медиафайлы, которые вы получаете от пользователей, скачиваются на тома медиаданных. Вы сами решаете, какие файлы нужно удалить. В большинстве случаев можно удалять все медиафайлы. Проверить путь к тому медиаданных можно с помощью команды docker inspect your-container-id
.
Локально настройте MySQL, следуя этому руководству.
Локально настройте PostgreSQL, следуя этому руководству.
В общем случае база данных должна работать на отдельном физическом сервере (не на том, где размещены контейнеры Coreapp и Webapp). Допустимая задержка при передаче данных между этим сервером и компьютером — не больше нескольких миллисекунд.
Вы сами принимаете решение об удалении медиафайлов.
После загрузки медиафайла вы получаете его ID, который затем можно использовать для отправки сообщения с загруженным мультимедийным содержимым получателю. При отправке сообщения с медиафайлом WhatsApp Business API зашифровывает и загружает этот файл на серверы WhatsApp, где он хранится в течение 14 дней. После этого вы можете удалить медиафайл по его ID либо сохранить для использования в будущем. Мы рекомендуем хранить медиафайлы в течение 30 дней, однако вы самостоятельно определяете политику хранения с учетом потребностей вашей организации.
Да, если это не влияет на таблицы, связанные с WhatsApp.
Чтобы выяснить причину, проверьте обратные вызовы.
Если имеется сообщение об ошибке "Conflict: Detected multiple instances that share the same number" (Конфликт: обнаружено несколько экземпляров с одинаковым номером), проверьте контейнеры. Скорее всего, несколько контейнеров Docker пытаются подключиться к серверам WhatsApp с использованием одного аккаунта WhatsApp. Одновременно должен работать только один контейнер. Завершите работу старых контейнеров, и ошибка будет устранена.
Если вы хотите протестировать более сложное решение с повышенной доступностью, см. этот раздел.
Белый список можно создавать на основе и имен хоста, и IP-адресов.
Дополнительную информацию см. в разделе Имена хостов документа Требования к сети.
Да. WhatsApp позволяет выделить текст в сообщении жирным или курсивом, зачеркнуть его или сделать моноширинным.
Да. Шаблоны сообщений поддерживают все символы и способы форматирования, используемые в WhatsApp, включая смайлики, выделение жирным, курсив и т. д. Чтобы вставить смайлик, используйте его символ (при необходимости скопируйте и вставьте его), а не код в Unicode.
Номера с бесплатным вызовом можно использовать, если в них указан код страны. Если код страны не указан, конкретный номер будет невозможно определить, поскольку в разных странах могут использоваться одинаковые номера.
Учтите, что при использовании номеров с бесплатным вызовом возникают дополнительные сложности. Если позвонить на такой номер из страны, код которой указан в номере, может произойти сбой. Возможно, ваши клиенты, находящиеся в этой стране, не смогут дозвониться по указанному в информации о компании номеру, если он включает код страны. Заранее предупреждайте клиентов об этом.
Подробнее о номерах с бесплатным вызовом.
НЕТ. Одновременно может быть запущен только один экземпляр клиента API WhatsApp Business с определенным номером телефона. Как только вы зарегистрируете ещё один экземпляр, предыдущий завершит работу. Мы работаем над решением этой проблемы. Следите за новостями.
Соединение с пользователями WhatsApp Business API, управляющими конечной точкой API на своих серверах, считается защищенным сквозным шифрованием, так как никакая третья сторона не может получить доступ к контенту между конечными точками.
Некоторые организации предпочитают передать управление конечной точкой WhatsApp Business API стороннему поставщику решений для компаний. В таких ситуациях для передачи данных используется то же шифрование по протоколу Signal. Однако в этих случаях соединение не считается защищенным сквозным шифрованием, так как пользователь WhatsApp Business API привлекает третью сторону для управления конечной точкой. В 2021 г. этот подход будет применяться также для компаний, которые пользуются облачной версией API, размещенной на серверах Facebook.
Кроме того, если вы выполняете вызовы к клиенту WhatsApp Business API по протоколу HTTPS, данные на пути от вашего внутреннего клиента к клиенту WhatsApp Business API защищаются с помощью SSL-шифрования.
Подробные сведения см. в этом техническом документе.
Она вызвана ошибкой в старой версии клиента для iOS. По мере обновления клиента пользователями эти ошибки будут происходить все реже.
Нет. Сообщения могут доставляться в другом порядке. Если для вас важен порядок доставки, дождитесь получения обратного вызова о доставке одного сообщения и только после этого отправляйте следующее.
Очистить старые записи журнала контейнера можно с помощью следующего скрипта:
docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh
Его можно использовать как для контейнеров Webapp, так и для Coreapp. Скрипт удаляет старые файлы и оставляет последние 30 файлов журнала контейнера.
Примечание. Не отправляйте сообщение повторно одному и тому же получателю через WhatsApp Business API.
Причин может быть множество. Например, пользователь может выходить в сеть лишь время от времени или быть неактивным в течение некоторого времени или нужно создать высококачественный пользовательский опыт.
Сообщения, которые могут быть доставлены с помощью WhatsApp, имеют очень высокий коэффициент доставки. Однако проблемы доставки могут возникать по различным причинам. Точно узнать статус сообщения можно по обратным вызовам. В случае с SMS, например, ситуация иная: у вас нет возможности узнать окончательное состояние доставки, а при повторной отправке результат может быть иным.
Сообщения могут не доставляться, потому что телефон пользователя неисправен, его аккумулятор разрядился или телефон потерялся и пользователь временно отключил SIM-карту. Возможно, клиенту не удается подключиться к сети. Возможно также, что не доставляются обратные вызовы (Webhooks). Отслеживать эти ситуации можно с помощью узла health
. Чтобы знать, попадают ли сообщения на серверы WhatsApp, можно включить прием обратных вызовов на этих серверах.
Как только пользователь вновь подключится к сети, все отправленные вами сообщения будут доставлены. Получение нескольких сообщений с одинаковым контентом часто вызывает негативную реакцию. Пользователь может заблокировать вас или отправить жалобу. В результате вам может быть запрещен доступ к платформе.
Если вы отправили сообщение и получили его идентификатор от API, больше ничего делать не нужно. Не отправляйте один и тот же контент одному и тому же получателю несколько раз.
Если проблемы с доставкой наблюдаются в течение длительного времени, обратитесь в прямую поддержку.
Клиенту локального API WhatsApp Business требуется база данных для хранения ключей, с помощью которых расшифровываются сообщения переписки между компанией и клиентами. Все сообщения в WhatsApp зашифрованы ключами отправителя и получателя. Ключи пользователя хранятся на его мобильном устройстве, а ключи компании — в ее базе данных. Подробнее о безопасности в WhatsApp…
Если вы используете облачный API WhatsApp Business, то база данных компании размещается на серверах Meta. В этом случае мы можете пользоваться API, не тратя средства на размещение своих серверов. Подробнее…
Нет. Клиент API WhatsApp Business открывает исходящее TCP-подключение к порту 5222 или 443 на серверах WhatsApp. Трафик TCP передается через это долговременное подключение. В брандмауэрах он обычно классифицируется как исходящий и подтвержденный трафик. Конечно, пакеты будут передаваться в обе стороны, но подключение исходит из клиента API WhatsApp Business, поэтому правило, разрешающее входящие подключения, не требуется.
Поддерживаются MySQL и PostgreSQL. Если вы настраиваете Docker самостоятельно, потребуется база данных MySQL или PostgreSQL, к которой будут подключаться контейнеры. При использовании шаблона AWS по умолчанию настраивается база данных MySQL.
Требования зависят от нагрузки и ситуации. Это решение будет работать на любом устройстве, если оно подключено к Интернету и на нем работает платформа Docker. Например, простое тестирование можно выполнить на обычном ноутбуке.
Минимальные требования к рабочему серверу с одним экземпляром: твердотельный накопитель емкостью 250 ГБ, 16 ГБ ОЗУ, четырехъядерный ЦП. Использовать обычные жесткие диски не рекомендуется из-за низкой скорости ввода-вывода: при высокой нагрузке это будет мешать работе.
Минимальные требования к рабочему серверу с распределением нагрузки: твердотельный накопитель емкостью 50 ГБ, 4ГБ ОЗУ, двухъядерный ЦП для каждого контейнера Coreapp, Master или Webapp.
В общем случае база данных должна работать на отдельном физическом сервере (не на том, где размещены контейнеры Coreapp и Webapp). Допустимая задержка при передаче данных между этим сервером и компьютером — не более нескольких миллисекунд.
Такая конфигурация поддерживает отправку примерно 20 сообщений в секунду.
Конечно. Обратитесь с этим запросом к своему представителю WhatsApp.
В настоящее время это невозможно. Если вы не можете обрабатывать входящие сообщения от пользователей WhatsApp, рекомендуем настроить автоматический ответ. В нем вы можете указать, каким способом клиенты могут связаться с вами.
Так и должно быть, если вы отправляете сообщение получателю, которого нет в вашей адресной книге и которому вы ещё не отправляли сообщений. Если сообщение отправляет компания, при первом взаимодействии с пользователем необходимо использовать шаблон сообщения, чтобы установить доверие. После этого клиент API WhatsApp Business сможет представить ссылку как интерактивную.
Так и должно быть, если вы отправляете сообщение получателю, которого нет в вашей адресной книге и которому вы ещё не отправляли сообщений. Если сообщение отправляет компания, при первом взаимодействии с пользователем необходимо использовать шаблон сообщения, чтобы установить доверие. После этого клиент API WhatsApp Business будет действовать согласно настройкам автоматического скачивания в приложении.
К сожалению, вам придется выбрать другой номер, на который можно принять SMS или голосовой вызов, чтобы мы могли отправить вам код регистрации. Ранее мы разрешали принимать коды регистрации вручную, но сейчас такая возможность не поддерживается. Поддержка номеров телефонов, для которых ранее использовались ручные коды регистрации, будет сохранена. Для новых номеров регистрационные коды отправляются только через SMS и посредством голосовых вызовов.
Если вы хотели бы использовать номер 1800 или бесплатный номер, ознакомьтесь с этим руководством.
В данный момент количество и имена пользователей, которые заблокировали вашу компанию, узнать нельзя. Вы можете проверить обратные вызовы статуса. Если от пользователя нет ответного статуса delivered
, он заблокировал вас или у него отсутствует подключение к Интернету. Дополнительную информацию см. в документации по Webhook.
Даже если пользователь заблокировал вашу компанию, API Contacts будет возвращать его номер телефона в качестве действительного пользователя WhatsApp. Однако отправленные ему сообщения не будут доставляться. Если сообщение платное, средства списываться не будут.
Да, мы позволяем задать новый номер телефона или сменить подтвержденное имя уже после начала работы.
Максимальный размер загружаемого файла составляет 64 МБ, и это ограничение распространяется на любое изображение, документ или видео, которые вы отправляете в сообщении.
Нет. Для API WhatsApp Business необходим новый номер.
Чтобы определить точку подключения тома медиафайлов, можно воспользоваться командой docker.
docker volume inspect whatsappMedia
[ { "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data", "Name": "whatsappMedia", "Options": {}, "Scope": "local" } ]
Затем запустите команду ls
с полученным путем файла Mountpoint
, чтобы увидеть все входящие медиафайлы:
ls /var/lib/docker/volumes/whatsappMedia/_data/
В конфигурации AWS том медиафайлов подключается по пути /mnt/wa/media
на хосте.
Механизм очистки для исходящих или входящих медиафайлов не предусмотрен. Вы можете удалять свои медиафайлы вручную, находя их в своей файловой системе.
Чтобы перезапустить контейнеры Docker, выполните указанные ниже команды.
docker restart wacore<Current_WABA_Version>
docker restart webapp<Current_WABA_Version>
Проверка версии
docker ps
Да. По умолчанию клиент WhatsApp Business API устанавливает соединение с помощью chatd
через порт 5222. Порт 5222 следует открыть для любого исходящего трафика. Это безопасно, так как вы отправляете трафик только из своего центра обработки данных.
Если порт 5222 закрыт, клиент WhatsApp Business API попытается использовать порт 443. Если брандмауэр или прокси продолжает блокировать соединения, обратитесь в прямую поддержку, чтобы получить помощь от команды WhatsApp.