2012-02-15 2 views
0

Я использую Graph Api на PHP для извлечения альбомов для пользователя.Обложка обложки альбома

Как я их показываю, я хотел бы также показать фотографию обложки для каждого альбома. Я получаю атрибут [cover_photo] на каждом альбоме, но я хотел бы показать это изображение без необходимости делать новый запрос для каждой фотографии, чтобы получить URL-адрес source для всех них.

Есть ли способ сделать это?

Я пытался (безуспешно) для получения фотографий, выполнив следующие действия:

<img src="//graph.facebook.com/<?=$album['id'] ?>/picture"> 

Я прочитал a post about it где решение:

https://graph.facebook.com/<id>/picture?type=album&access_token=<token> 

Но я не могу просто поставить access_token внутри img src публично ... можно?

+0

'// graph.facebook.com' бы Недопустимый URL в любом случае. –

+4

Его действительный URL. Его относительный URL-адрес протокола. –

+0

Я поднял его с этой должности: http://paulirish.com/2010/the-protocol-relative-url/ –

ответ

1

Это очень добросовестно для вас. Но вам не нужно беспокоиться, так как любой вызов графика api, который использует маркер доступа автоматически, требует, чтобы запрос был https.

Другой подход: вы можете выйти из своего сеанса facebook в конце скрипта, который приведет к недействительности маркера доступа.

В соответствующей заметке в facebook не упоминается об этом как о безопасности. У них возникла проблема с пропущенными токенами доступа, вызванными включением их в HTTP-запрос, а также без использования HTTPS. Оба эти отверстия фиксированы, а также не вырезанные токены также удалены. https://developers.facebook.com/blog/post/497/

Вот хорошая статья объясняет безопасности маркера доступа, так как Facebook перешел на OAuth 2.0 http://www.sociallipstick.com/?p=239

0

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

Убедитесь, что ваше приложение общается через HTTPS, в противном случае, если ваш пользователь просматривает ваш сайт на общедоступном Wi-Fi, кто-то может отслеживать ваш трафик и получить access_token. Взлом похож на то, как работал Firesheep.

Если злоумышленник получает доступ к пользователю, он может запросить Facebook с запросами, как если бы он был вашим приложением. Это может стать очень неприятным, если ваше приложение имеет разрешения publish_stream или manage_friendslists.

Пока ваш пользователь осведомлен об этом, все в порядке. Главное, что вы не хотите, чтобы пользователь имел секретный ключ вашего приложения. Во время процесса аутентификации ваше приложение сообщает браузеру пользователя перейти к Facebook и вернуться с «кодом». Затем ваш сервер напрямую подключается к facebook (браузер пользователя не знает) и отправляет этот код вместе с секретным ключом вашего приложения. Facebook возвращается на ваш сервер с помощью токена доступа.

+0

Я понимаю поток OAuth. Вот почему я пытаюсь найти решение, которое не требует ввода access_token в img src. –