2015-09-19 4 views
8

Из моего понимания, мы можем получить информацию о пользователях через что-то вроде этого:Facebook граф API получить все данные поля

$cordovaFacebook.api(
    "me?fields=name,email,picture", ["public_profile", "email"]) 
    .then(function (response) { 
      console.log(response); 
    }, error); 

Как мы можем непосредственно получить всю доступную информацию без листинга один за другим?

ответ

14

Как мы можем напрямую получить всю доступную информацию, не публикуя один за другим?

Вы не можете.

С API v2.4, Facebook уменьшила количество полей, возвращаемых по умолчанию для различных конечных точек, для повышения производительности (особенно в отношении мобильной связи.)

Это было обдуманное решение - и позволить для «путь вокруг» это, просто сделать много ленивых-а ** разработчики еще раз просить их всех ;-)


Возможно, вы слышали, в какой-то момент, что в SQL фе a SELECT * считается плохой практикой - это в значительной степени тот же случай здесь. Вы должны явно указать данные вам нужно сейчас - и не просто идти «Я прошу все это, и выяснить, что я мог бы возможно использовать его для последующего использования.»


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

+1

Это действительно неприятно для просмотра в API-интерфейсе Graph API: - / –

0

Для python библиотека Facepy уже обертывает функцию get, чтобы получить все возможные поля.

Смежные вопросы