График Facebook, который API говорит мне, я могу получить фотографию профиля пользователя, использующего
http://graph.facebook.com/517267866/picture?type=large
который хорошо работает. Однако, когда Вы вводите выше URL в браузер, исполнительный адрес изображения
http://profile.ak.fbcdn.net/profile-ak-snc1/v227/560/83/n517267866_1928.jpg
Как я могу получить второй URL с помощью первого программно?
Первый URL-адрес дает HTTP 302 (временное перенаправление) на второй. Итак, чтобы найти второй URL-адрес программным способом, вы можете отправить HTTP-запрос для первого URL-адреса и получить в ответе заголовок Location
.
Тем не менее, не полагайтесь на то, что второй URL-адрес является постоянным. Немного прочитав код ответа HTTP (302 вместо постоянного 301), возможно, Facebook изменяет эти URL-адреса на регулярной основе, чтобы люди, например, не могли использовать свои серверы для размещения изображений.
Изменить: Обратите внимание, что URL-адрес CDN, опубликованный OP, теперь имеет значение 404, поэтому мы знаем, что мы не можем полагаться на долговечность URL-адреса. Кроме того, если вы подключаетесь к Graph API из
на странице, защищенной SSL, есть параметр , который вы должны добавить , убедитесь, что вы используете http s : //graph.facebook.com
.
Обновление: В API добавлен параметр - redirect = false
, который заставляет возвращать JSON, а не перенаправление. Возвращенный JSON включает URL-адрес CDN:
{
"data": {
"url": "http://profile.ak.fbcdn.net/...",
"is_silhouette": false
}
}
Опять же, я бы не стал полагаться на долговечность этого URL-адреса CDN. Ответ JSON отправляется с разрешающими заголовками CORS, поэтому вы можете делать это на стороне клиента с помощью запросов XHR.