Подтвердить что ты не робот

Пользовательский объект API OpenGraph иногда возвращает ссылку, что 404s

В моем приложении я разрешаю пользователям подключать свои учетные записи 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 открытого графика, получить рабочую ссылку на их профиль/страницу?

4b9b3361

Ответ 1

Использование "www.facebook.com/{page_id" или "www.facebook.com/profile.php?id={user_id" всегда будет работать - они одинаковы. Единственная причина, по которой вы увидите 404, - это если страница была не опубликована/удалена или пользователь отключил свою учетную запись.