Получить "настоящий" 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"
}