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

Получить имя пользователя в Facebook Graph API 2.0

В "старом" API-интерфейсе Facebook был поле "имя пользователя", которое можно было бы использовать для создания удобочитаемого URL профиля. Например, мое имя пользователя - "sebastian.trug", что приводит к URL-адресу профиля Facebook http://www.facebook.com/sebastian.trug.

С Graph API 2.0 Facebook удалил поле "имя пользователя" из пользовательских данных, полученных из "/me".

Есть ли способ получить эти данные через API 2.0 или "имя пользователя" теперь рассматривается как устаревшее поле?

4b9b3361

Ответ 1

Facebook избавился от имени пользователя, потому что имя пользователя является одним из способов отправки электронной почты через Facebook.

Например, с учетом URL http://www.facebook.com/sebastian.trug

соответствующее электронное письмо Facebook будет [email protected]

который будет отправлен по электронной почте непосредственно в messages (если для параметра message установлено значение public), в противном случае в папке other.

Ответ 2

Поле username объекта User было удалено и не существует в Graph API версии 2.0. В версии 2.0 API нет способа получить имя пользователя FB пользователя.

Источник: https://developers.facebook.com/docs/apps/changelog#v2_0_graph_api

"/me/имя пользователя больше не доступно."

Ответ 3

@Simon Cross - он устарел, документирован, да. Это не вопрос, вопрос в том, как его получить и, кроме того, интересно, почему Facebook сделал такой ужасный выбор и удалил имя пользователя. Сотни приложений, которые полагаются на имя пользователя для создания аккаунтов на их службе, будут нарушены.

@user3596238 - Вы можете придерживаться API V.1, который будет существовать до конца апреля 2015 года, на сегодняшний день далеко не лучшим решением, но в любом случае Facebook может быть неактуальным. https://developers.facebook.com/docs/apps/changelog

Решение: попросите пользователя ввести имя пользователя, кроме фактического входа в Facebook? - По-моему, это делает логин Facebook абсолютно бессмысленным.

Ответ 4

Пока SDK 2.0 больше не будет предоставлять поле username, его можно легко очистить, если у вас есть номер идентификатора пользователя (который вы, вероятно, будете использовать для доступа к графику в любом случае).

URL-адрес facebook.com/<user id> будет перенаправлен на facebook.com/<username>, который затем можно извлечь, как вам нравится.

Ответ 5

мой подход отменяет имя пользователя, используя nokogiri через профиль пользователя. вроде как (в рубине):

html = RestClient.get("http://facebook.com/123123xxx)
doc = Nokogiri::HTML(html)
username = doc.css('head meta')[1].attributes["content"].value

Ответ 6

Одним из способов может быть доступ к facebook.com/{userid}, используя cURL, а затем выполните перенаправление.

Страница переименовывается в facebook.com/{username}

Ответ 7

Вдохновленный от @RifkiFauzi answer, вот мое решение в чистом Python

#get html of a page via pure python ref. https://stackoverflow.com/a/23565355/248616
import requests
r = requests.get('http://fb.com/%s' % FB_USER_ID) #open profile page of the facebook user
r.raise_for_status()
html = r.content

#search string with regex ref. https://stackoverflow.com/a/4667014/248616
import re
# m = re.search('meta http-equiv="refresh" content="0; URL=/([^?]+)\?', html)
m = re.search('a class="profileLink" href="([^"]+)"', html)
href = m.group(1) #will be https://www.facebook.com/$FB_USER_NAME on 201705.24
username = href.split('/')[-1]
print(href)
print(username)

Ответ 8

https://graph.facebook.com/?id=100005908663675

Просто измените id на любой.