Вы не можете проверить, является ли пользователь тестовым пользователем, основываясь на его данных API Graph.Точно так же вы не можете проверить, является ли пользователь лайком определенной страницы.Однако вы можете проверить свой page_id
по списку понравившихся вам страниц.Таким образом, чтобы определить, является ли данный user_id
обычным или тестовым пользователем, вы должны сравнить его со списком тестовых пользователей приложения:
https://graph.facebook.com/APP_ID/accounts/test-users?access_token=APP_ID|APP_SECRET
Таким образом, поток будет выглядеть следующим образом:
- Аутентификация пользователя
- Получить его
./likes
список - Найти свой
page_id
и успешно завершить работу - Получить свое приложение
./accounts/test-users
список - Найти данное
user_id
и успешно завершиться - Выход с ошибкой - требуется, чтобы пользователь понравился вашей страницей.
Это один дополнительный вызов, но вы можете безопасно кешироватьрезультаты для повышения производительности, поскольку тестовые пользователи не могут быть преобразованы в обычных пользователей.Я бы посоветовал кешировать проверку «лайков» на некоторое время, но YMMV.