API графика Facebook: идентификатор изображения профиля пользователя - PullRequest
12 голосов
/ 10 февраля 2011

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

Редактировать: ОК, кажется, нет простого способа получить идентификатор!

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

Ответы [ 6 ]

18 голосов
/ 20 июля 2011

Публичную фотографию профиля пользователя можно получить по следующему адресу:

https://graph.facebook.com/[id]/picture

Ссылка: http://developers.facebook.com/docs/reference/api/

5 голосов
/ 11 февраля 2011

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

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

Действительно, запрос данных, который я когда-либо делал через API FB Graph, возвращает (в случае успеха) ответ в виде массива 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"
}

Фотография профиля представляет собой соединение объекта User (т. е. каждый объект FB имеет полей и соединений ).

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

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

Я полагаю, причина в том, что URL возвращает:

Graph API : User Properties

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

Graph API : User : Connections : picture

(см. Документацию FB для структуры Graph API здесь ).

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

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

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

https://graph.facebook.com/me

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

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

2 голосов
/ 15 сентября 2011

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

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

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

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

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

Вы можете проверить это по https://graph.facebook.com/<<strong>cover_photo значению >? Access_tokne =

1 голос
/ 29 ноября 2012

Я не знаю, нужно ли вам это по-прежнему, но я так и сделал в 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'];

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

0 голосов
/ 12 июля 2016
http://graph.facebook.com/<SOCIAL-ID>/picture?type=<small|normal|album|large|square>

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

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

0 голосов
/ 22 августа 2013

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

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

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

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

Итак, вотВещи, которые нужно проверить в Graph API (поддерживать порядок):

Друзья в друзьях Альбомы в названиях альбомов и фотографиях (в фотографиях идентификатор и имя фотографии)

Я сделалPHP скрипт, чтобы понравиться всем аватаркам моих друзей:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...