Введение
Используя Flickr API, вы можете получать множество фотографий и, в свою очередь, создавать отличные приложения. Более того, вы можете загрузить свое приложение на рынок приложений Flickr APP Garden и зарабатывать деньги и признание.
В этом руководстве мы увидим, как начать работу с Flickr API. Мы создадим простое приложение с использованием Flickr API и в ходе курса узнаем некоторые нюансы того, как раскрыть потенциал потрясающих сервисов Flickr для обмена фотографиями.
Получение ключа API
Как и многие другие API, здесь вам также необходимо получить ключ API от Flickr. У вас должен быть Yahoo! учетная запись для входа на flickr.com или, если у вас ее нет, вам необходимо зарегистрироваться на Flickr. Как только вы войдете в Flickr, укажите в своем браузере https://www.flickr.com/services/api/. Перейдите в «Создать приложение», чтобы создать ключ API. Щелкните ссылку «Запросить ключ API».
Это появится два варианта, хотите ли вы использовать коммерческое приложение или некоммерческое. Щелкните соответствующую ссылку в соответствии с вашим намерением.
Что вы возьмете с собой на страницу, где вы должны предоставить им имя для вашего приложения и краткое описание.
Вы также должны принять к сведению две мелочи, касающиеся прав и условий использования. Пожалуйста, ознакомьтесь с условиями использования, потратив пару минут, потому что это поможет вам принимать решения как с точки зрения предпринимателей, так и с точки зрения разработчиков. После завершения нажмите «Отправить», и вам будет предоставлен ключ и секрет приложения. Сохраните их должным образом, потому что они понадобятся вам в будущем при написании приложения.
Схема нашего приложения
В этом приложении мы получим сотни недавних фотографий с Flickr, а затем отфильтруем их в соответствии с размером (в пикселях), указанным пользователем. Flickr предлагает несколько размеров фотографии, и пользователи могут выбирать соответственно.
Какие методы мы будем использовать
Flickr предлагает различные методы для выполнить определенную задачу. Когда вы разрабатываете приложение, в первую очередь вы должны выяснить, какой метод будет выполнять вашу работу. Тем не менее, могут быть случаи, когда вам нужно использовать более одного метода, чтобы соответствовать требованиям.
Для нашего приложения нам нужно что-то сделать. Во-первых, получение самых последних фотографий, а во-вторых, фильтрация этих доступных фотографий по определенному размеру из заданного размера.
Из списка, размещенного в разделе «Методы API» на https://www.flickr. com/services/api/вы найдете метод ‘flickr.photos.getRecent’, которого будет достаточно для выполнения первого из наших двух требований.
Для второго мы будем использовать ‘flickr. photos.getSizes ‘метод.
Методы понимания
Методы Flickr API создают конечную точку (URL-адрес), которая возвращает данные в формате XML или JSON. Как только это будет сделано, вы можете декодировать эти данные, используя множество языков программирования, и представить их своим пользователям. Каждый метод Flickr API имеет несколько аргументов, которые необходимо передать. Некоторые из них являются обязательными, а некоторые — необязательными.
Нажав на flickr.photos.getRecent, вы перейдете на https://www.flickr.com/services /api/flickr.photos.getRecent.html. Документация по методам доступна здесь. Вы можете видеть, что с этим методом можно использовать четыре типа аргументов. Среди них требуется api_key.
Вы можете передать ряд необязательных аргументов как ‘extra’, чтобы получить очень полезную информацию, такую как описание, лицензия, date_upload, date_taken, owner_name и т. д., относительно возвращенных фотографий.
‘per_page другой необязательный аргумент возвращает количество фотографий для каждой страницы. Если этот аргумент не указан, по умолчанию возвращается сто фотографий.
Чтобы вернуть количество страниц, содержащих результаты , можно использовать другой необязательный аргумент page. Если не используется, будет возвращена только одна страница результата.
Чуть ниже вы найдете ссылку, указывающую на проводник API этого метода. Вы можете найти структуру конечной точки в Flickr API Explorer. Щелкните по доступной ссылке, и вы найдете страницу с инструментами для создания конечной точки. Для той же простоты мы возьмем только per_page и присвоим значение 10, поэтому будут возвращены только десять фотографий из группы недавних фотографий.
Формат данных возвращено
Рядом с «Выводом» на этой странице вы найдете несколько вариантов, в которых данные могут быть возвращены. Доступны следующие варианты: XML (REST), JSON, JSONP и PHP Serial. Выбор XML вернет данные в формате XML, JSON вернет данные в формате JSON, если вы используете последовательный формат PHP, то есть встроенный в PHP формат сериализованной структуры данных, возвращаемые данные соответствуют формату ответа JSON, и вы можете использовать PHP serialize () и функции unserialize (). Для этого мы выберем JSON.
Немного о Sign Call
Это применение методов аутентификации при использовании Flickr API. Если вы используете «Подписать вызов как your_username с полными разрешениями?» или «Подписать вызов без токена пользователя?» в обоих случаях будет подразумеваться аутентификация. Часто методы аутентификации сопровождаются токеном пользователя. Если вы выберете более позднюю из двух указанных опций, токен пользователя не потребуется. В обоих случаях пользователь должен войти в систему, используя аутентификацию Flickr. Для третьего варианта «Не подписывать звонок?» Это не потребуется. На данный момент мы выберем этот вариант. Нажмите «Call Method», нам будет предоставлен набор данных, возвращенных в формате JSON, и URL-адрес..
Структура URL-адреса
Потратив немного времени на понимание URL-адреса, мы сможем понять формирование и, в свою очередь, поможет нам создать, а также изменить URL-адрес.
URL-адрес выглядит следующим образом: https://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key= your_key & per_page = 10 & format = json & nojsoncallback = 1
Sp URL-адрес начинается с https://api.flickr.com/services/rest/?. Обратите внимание, что у нас должен быть включен https на сервере, на котором запущен этот URL, поскольку FLick’r API не поддерживает http без SSL (Secure Socket Layer). Затем ключевое слово method добавляет метод, который вы хотите использовать, в данном случае «flickr.photos.getRecent». Знак «&» используется для добавления следующей части URL-адреса. Вы должны указать здесь api_key. Затем указывается, что ‘format = json’, т.е. мы используем формат JSON, а затем ‘nojsoncallback = 1’ указывает, что нам нужен необработанный JSON без функции оболочки. Если вы хотите использовать вместо этого функцию обратного вызова, вы можете использовать ‘jsoncallback = name_of_your_callback_function’.
Для метода ‘flickr.photos.getSizes’ мы также построим URL-адрес аналогичным образом.
Программирование и представление данных
А теперь время для кода. Поскольку у вас есть URL-адрес, который может возвращать данные по вашему запросу в формате JSON, вы должны использовать язык программирования для декодирования этих данных JSON и представления их пользователю. На странице https://www.flickr.com/services/api/вы найдете список используемых языков программирования в разделе «Наборы API». В этом приложении мы будем использовать JQuery для декодирования возвращаемых данных JSON, а затем добавим их на страницу HTML. Мы также будем собирать размер фотографий, которые пользователь хочет, чтобы они отображались.
Итак, у нас есть три шага. Во-первых, мы должны декодировать данные JSON, возвращаемые методом flickr.photos.getRecent. Во-вторых, мы должны собрать данные из браузера, предоставленного пользователем, чтобы отфильтровать доступные фотографии в соответствии с размером, который пользователь хочет видеть, а затем отображать только фотографии этого размера. Код для работы приведен ниже. Загрузите код, замените api_key своим и поиграйте.
Создание вашего первого приложения с Flickr API # sq, # lg-sq, # thumb, # small, # mid, # ori {width: 100%} var apiurl, myresult, apiurl_size, selected_size; apiurl =" https://api.flickr.com/services/rest/?method=flickr.photos. getRecent & api_key = ca370d51a054836007519a00ff4ce59e & per_page = 10 & format = json & nojsoncallback = 1 "; $ (document) .ready (function () {$ (" # sq "). click (function () {selected_size = 75;})}); $ (document). ready (function () {$ ("# lg-sq"). click (function () {selected_size = 150;})}); $ (document) .ready (function () {$ ("# thumb"). click (function () {selected_size = 100;})}); $ (document) .ready (function () {$ ("# small"). click (function () {selected_size = 240;})}); $ (документ) .ready (function () {$ ("# mid"). click (function () {selected_size = 500;})}); $ (document) .ready (function () {$ ("# ori" ) .click (function () {selected_size = 640;})}); $ (document) .ready (function () {$ ('# button'). click (function () {$. getJSON (apiurl, function ( json) {$. each (json.photos.photo, function (i, myresult) {apiurl_size = "https://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key=ca370d51a054836007519a00ff4ce59e&photo_id="+ myresult.id + "& format = json & nojsoncallback = 1"; $. getJSON (apiurl_size, function (size) {$. each (size.sizes.size, function (i, myresult_size) {if (myresult_size.width == sel ected_size) {$ ("# результатов"). append ('