библиотека php для flickr API

Я бью головой, пытаясь использовать Flickr API ... Моя цель - иметь возможность загружать изображения и создавать альбомы в моей учетной записи Flickr с моего веб-сайта ... Я попробовал phpFlickr, но, очевидно, ей нужны обновления для получения аутентифицированных токенов ... Она продолжает выдавать мне" Недействительный токен аутентификации ".

Я немного читал о том, как получить токены, и с помощью DPZFlickr удалось получить oauth_token и oauth_verifier, но не удалось обменять что с токеном доступа ... Он также не смог загрузить любую фотографию в мою учетную запись, используя включенный пример upload.php (что дает мне "пустую" ошибку!). Покопавшись в коде DBZ flickr.php, мне удалось получить эту ошибку при попытке загрузки на Flickr: "oauth_problem = signature_invalid &" Итак, я начал искать, как создать действительную подпись, чтобы в конечном итоге получить действительный токен доступа ... и пришел к выводу что здесь нужно проделать довольно много работы, если я собираюсь строить все с нуля.

Итак, мой вопрос: есть ли какие-либо обновленные библиотеки php, которые я могу использовать для успешного создания альбомов и загрузки фотографий в мою учетную запись Flickr? Или я должен пойти дальше и попробовать построить его?


person Ahmad Khaled    schedule 22.06.2016    source источник


Ответы (1)


Хорошо .. Наконец-то я получил возможность работать с библиотекой DPZ.

Для справки в будущем любой, кто сталкивается с той же проблемой, что и я:

Мне удалось создать альбом с помощью DPZFlickr, изменив метод в auth.php на flickr.photosets.create ...., что указывает на то, что библиотека правильно генерирует токен доступа с разрешением на запись ..

Однако пример загрузки продолжал выдавать мне ошибку «Недопустимая подпись» .... Я проверил код. Flickr.php правильно сбрасывает параметр фотографии перед подписанием запроса, затем добавляет его обратно и отправляет запрос, который в точности соответствует указанному на странице: www.flickr.com/services/api/upload.api.html

Я нашел обсуждение в https://www.flickr.com/groups/51035612836@N01/discuss/72157650261711318/, который выяснил, что ошибка на самом деле не была проблемой подписи, а скорее проблема была отправлена ​​параметром «фото», который отправляется. Просто Flickr не знает, что делать с параметром фотографии, поэтому отправляет ошибку подписи.

Так что же не так с параметром фото? Flickr API требует, чтобы изображение было отправлено в двоичной форме ... Библиотека DBZ, строка сценария Flickr.php 677, выполняет тяжелую работу за нас, используя функцию cURL в php (http://au.php.net/manual/en/function.curl-setopt.php) . Он отправляет параметры $ (включая загруженную фотографию) в поле сообщения HTTP-запроса, который должен выполнить загрузку в двоичном формате за нас.

Однако блестящий комментарий, который я нашел в CURL PHP send image, гласит: «CURLOPT_SAFE_UPLOAD по умолчанию имеет значение true в 5.6.0 ... поэтому вам нужно будет добавить curl_setopt ($ ch, CURLOPT_SAFE_UPLOAD, false); перед установкой CURLOPT_POSTFIELDS "

Проверка руководства: http://au.php.net/manual/en/function.curl-setopt.php он говорит: «Добавлено в PHP 5.5.0 с FALSE в качестве значения по умолчанию. PHP 5.6.0 изменяет значение по умолчанию на TRUE».

Итак, если ваша версия php 5.5.0, библиотека будет работать нормально, в то время как при использовании версии PHP 5.6.0 вам нужно добавить строку перед 677 в Flickr.php, чтобы изменить CURLOPT_SAFE_UPLOAD на false (поэтому библиотека работает с некоторыми и другие нет).

Чтобы решить эту проблему ... Просто добавьте эту строку перед строкой 677 в Flickr.php: curl_setopt ($ curl, CURLOPT_SAFE_UPLOAD, false);

Вот и все. (-:

person Ahmad Khaled    schedule 24.06.2016
comment
Ах, почему я не нашел это 8 часов назад? Спасибо чувак - person m.qayyum; 20.06.2017
comment
Я не мог заставить это работать с ароматом DPZFlickr OP, который использовал. Но я заставил это работать с исходной библиотекой DPZFlickr. Подробности на этом SE: stackoverflow.com/questions/54331544/ - person MastaBaba; 25.01.2019