Получить "настоящий" URL-адрес профиля от Facebook Graph API/пользователь
Как указано в документации API для /user
, поле link
содержит URL-адрес профиля пользователя. Однако этот URL-адрес обычно перенаправляет на другой URL-адрес (т.е. тот, который отображается в результатах поиска Google).
Есть ли способ определить окончательное местоположение перенаправления ("реальный" URL) данного профиля через API Facebook?
Например, учитывая:
"link":"https://www.facebook.com/1091552020"
Я хочу получить https://www.facebook.com/sbhutiani
из API
Ответы
Ответ 1
Вы больше не можете получить реальный идентификатор или имя пользователя пользователей, поэтому нет никакого способа получить "реальный URL". Дополнительная информация: https://developers.facebook.com/docs/apps/changelog
Вы можете получить ссылку на профиль пользователя с помощью следующего вызова API: /me?fields=link
Проверьте "идентификаторы приложений" в документации Facebook.
Обновление: кажется, что ссылка на профиль пользователя больше невозможна: https://developers.facebook.com/blog/post/2018/04/19/facebook-login-changes-address-abuse/
Ответ 2
Похоже, что Facebook создал отдельное разрешение (которое пользователь должен одобрить) под названием user_link
, чтобы вы могли получить его. Вы можете увидеть более подробную информацию здесь:
https://developers.facebook.com/docs/facebook-login/permissions/#reference-user_link
Когда вы запрашиваете метаданные о доступных полях для конечной точки, используя /me?metadata=1
, это то, что говорится в описании link
:
{
"name": "link",
"description": "A link to the person Timeline. The link will only resolve if the person clicking the link is logged into Facebook and is a friend of the person whose profile is being viewed.",
"type": "string"
}
Если пользователь подтвердил это разрешение, вы сможете получить ссылку, как и раньше:
/me?fields=link
{
"link": "https://www.facebook.com/app_scoped_user_id/SOME_TOKEN/",
"id": "USER_ID"
}