it-roy-ru.com

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

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

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

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

56
trueg

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

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

соответствующий адрес электронной почты Facebook будет [email protected]

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

33
Nico Zarris

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

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

"/ me/username больше не доступен."

23
Simon Cross

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

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

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

20
Stefan

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

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

6
Matt Way

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

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

Одним из способов может быть доступ к facebook.com/ndomuserid} с использованием cURL и последующее перенаправление.

Страница переадресовывается на facebook.com/ndomusername}

2
Akshat Goel