В моем приложении я разрешаю пользователям подключать свои учетные записи Facebook через oauth для публикации через наш интерфейс. Мы поддерживаем как учетные записи страниц, так и обычные учетные записи, которые просто управляют страницами.
Мы также проверяем результат вызова API opengraph, чтобы получить действительный URL-адрес для своего профиля или страницы. Основной конечной точкой, которую мы используем, является https://graph.facebook.com/me (с учетными данными oauth). Для некоторых учетных записей только для страниц возвращенный объект имеет значение "ссылка", которое при вводе в веб-браузер 404 с.
Плохие URL-адреса, которые я видел, попадают в два разных случая:
URL-адрес может иметь форму "www.facebook.com/{page_id", который 404s на некоторых страницах, но не другие.
URL-адрес может иметь форму "www.facebook.com/profile.php?id={user_id", который чаще всего не 404.
Единственный формат URL, который я видел, который работает для всех учетных записей, - www.facebook.com/profile.php?id={page_id}. В первом случае мы обнаруживаем, что поле "link" не имеет правильной формы (используя profile.php? Id =...) и создайте URL-адрес с соответствующей структурой, и он работает.
Моя следующая эвристика, которую я рассматриваю, заключается в том, чтобы увидеть, соответствует ли URL-адрес правильной форме.... но использует {user_id} в качестве аргумента id для profile.php и просто создает URL-адрес, используя {page_id }. Очевидно, это становится смешным.
Итак, есть ли хороший способ узнать, вернет ли аккаунт неверную ссылку? Это ошибка в API? Каков самый надежный способ, с помощью Пользователя в API открытого графика, получить рабочую ссылку на их профиль/страницу?