• Как исправить ошибку iconv?

    Можно добавить //IGNORE к //TRANSLIT:

    iconv('UTF-8', 'Windows-1251//TRANSLIT//IGNORE', $line)
    Ответ написан
    Комментировать
  • Как реализовать загрузку фото из инстаграму по хэшам?

    Тут важно знать, это новый, уникальный тэг, нужна ли полная история фоток по этому тэгу и тд.

    1. Получаем список последних фоток с нужным тэгом и сохраняем их в базу:
    https://api.instagram.com/v1/tags/TAG_NAME/media/recent?access_token=TOKEN

    2. Из ответа берем pagination.next_min_id и сохраняем его для следующего запроса.
    2.a Если нужна история по этому тэгу, то делаем следующий запрос по ссылке из pagination.next_url или генерируем его сами с указанием next_min_id из pagination объекта и так пока этот параметр (next_url) будет в ответе или просто до момента пока вам не надоест.
    3. Запрашиваем новые фотки с указанием параметра next_min_id и сохраняем их в базу:
    https://api.instagram.com/v1/tags/TAG_NAME/media/recent?min_tag_id=NEXT_MIN_ID&access_token=TOKEN

    4. GOTO 3.

    Тут есть проблема, которую мне еще не удалось решить. Этот алгоритм работает пока у вас не очень много фоток появляется с этим тэгом и они все укладываются в один ответ на запрос к API. (параметр count может быть от 1 до 32). Как только кол-во новых фоток за то время пока вы делаете запрос к API и показываете/сохраняете фотки в базу превысит count — нужно будет выкачивать новые страницы по next_url и с каждой итерацией таких траниц будет все больше и больше (попробуйте тэг love например).

    Поведение метода tag c параметром next_min_id мне совсем не понятно, тк указывая этот параметр и count=1 я ожидаю увидеть ровно одну фотку опубликованую в Instagram сразу после той, у которой этот next_min_id и был, но по факту в ответе будет самая свежая фотка из всех что появились за период после next_min_id и ссылка на следующую порцию фоток из этой группы в next_url. Как это решить - я не знаю, вот мой вопрос на SO.
    Ответ написан
    Комментировать