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

API графиков Facebook: идентификатор изображения профиля пользователя

Есть ли способ получить идентификатор изображения, который является текущим профилем для пользователя?

Изменить: хорошо, кажется, нет никакого тривиального способа получить идентификатор!

Однако из случайного тестирования видно, что каждый пользователь имеет один альбом с атрибутом type="profile", а первое изображение в этом альбоме всегда является изображением профиля, поэтому можно получить идентификатор профиля изображения таким образом, Может ли кто-то более опытный с Facebook подтвердить, что это действительно так?

4b9b3361

Ответ 2

Ответ кажется да

например, фотографии в альбоме имеют ID (фотография профиля - это другой объект, хотя и другой FB ID). Идентификатор для каждого объекта является основной концепцией нового графического API FB: каждый объект в социальном графе имеет уникальный идентификатор.

Действительно, запрос данных, который я когда-либо делал с помощью API-интерфейса FB, возвращает (когда это успешно) ответ в виде массива JSON, состоящий из пар вложенных ID-значений, например. поле обучения из объекта User:

"education": [
    {
       "school": {
           "id": "126533127390327",
           "name": "Massachusetts Institute of Technology"
    },
       "year": {
            "id": "140829239279495",
            "name": "1992"
    },
       "concentration": [
           {
                "id": "192578844099494",
                "name": "Computer Science"
           }
       ],
       "type": "College"
}

фотография профиля - это соединение объекта Пользователь (т.е. каждый объект FB имеет поля и соединения),

В соответствии с таблицей на странице Страница разработчика FB, вызов графического API-запроса (фото профиля пользователя) возвращает строку, которая является URL-адресом для изображения профиля пользователя.

Но почему этот же вызов не возвращает идентификатор фотографии профиля пользователя?

Я полагаю, что URL-адрес возвращается:

Graph API : User Properties

Фото профиля пользователя отсутствует, но в соседнем node:

Graph API : User : Connections : picture

(см. FB Documentation for Graph API здесь).

Когда вы вызываете этот вызов API, изучите Заголовки запросов и, в частности, URL-адрес запроса; когда вы это сделаете, вы увидите что-то вроде этого:

http://profile.ak.fbcdn.net/hprofile-ak-snc4/32093_100005743929541_5467982_q.jpg

Строка между символами подчеркивания (100005743929541) является идентификатором пользователя. это легко проверить, сделав еще один вызов API-интерфейса Graph. Из панели местоположения вашего браузера (при условии, что вы вошли в Facebook) просто введите:

https://graph.facebook.com/me

Итак, первый элемент в этой строке JSON является идентификатором пользователя FB. Учитывая, что мне кажется, что если идентификатор профиля пользователя действительно имеет свой собственный идентификатор, то эта строка (идентификатор пользователя FB) плюс две меньшие соседние строки целых чисел на обоих концах идентификатора должны будь то - другими словами, 32093_100005743929541_5467982 в URL-адресе запроса выше.

Наконец, возможно, лучший способ ответить на этот вопрос - использовать новый Graph API Explorer. (Я просто пытался это проверить, но мои запросы висят.)

Ответ 3

Есть еще один простой способ выполнить эту задачу.

  • Получить все альбомы facebook с помощью https://graph.facebook.com/me/albums?access_token=.

  • Перейдите в альбомы и проверьте, не является ли объект типом == 'profile'.

  • Получить значение объекта cover_photo, где введите == 'profile > .

Это значение cover_photo - это идентификатор пользователя профиля.

Вы можете проверить его https://graph.facebook.com/ < значение cover_photo? access_tokne =

Ответ 4

Я не знаю, нужна ли вам эта проблема, но так я сделал это в PHP:

$albumsfb = $facebook->api('/me/albums/?fields=type');
$albumsfb = $albumsfb['data'];
foreach ($albumsfb as $albumfb) {
    if ($albumfb['type']=='profile'){
        $albumprofile = $albumfb['id'];
        break;
    };
}
$photoprofilefb = $facebook->api('/'.$albumprofile.'/?fields=cover_photo');
$photoprofilefb = $photoprofilefb['cover_photo'];
$photoprofilefb = $facebook->api('/'.$photoprofilefb);
$fotoperfilfburl = $photoprofilefb['source'];

Вместо "me" введите идентификатор пользователя, который вы хотите?

Ответ 5

http://graph.facebook.com/<SOCIAL-ID>/picture?type=<small|normal|album|large|square>

SOCIAL-ID = Facebook возвратил социальный идентификатор.

small | normal | album | large | square = размер изображения.

Ответ 6

Недавно я попытался понравиться одному из моих профилей профиля друзей из API-интерфейса Graph API

Вот как я получил идентификатор его текущего профиля pic:

fields=friends..fields(albums.fields(photos.fields(id,name,link),name))

Если вы использовали API-интерфейс Graph API, вы можете быть в курсе приведенной выше строки кода, сгенерированной в textEntry, когда вы устанавливаете флажки. Размер лимита зависит от вас, я просто сохранил его 1, чтобы быстро получить объект JSON (без ограничения, мне потребовалось 5 минут, чтобы получить объект JSON, содержащий много информации).

Итак, вот что вам нужно, чтобы проверить API-интерфейс Graph (поддерживать порядок):

Друзья В альбомах друзей В названиях альбомов и фотографий (в пределах Фотографий идентификатор и имя фотографии)

Я сделал PHP script, чтобы любить все фотографии моих друзей:)