2016-04-01 2 views
21

я работал несколько раз с этой конечной точкой и кажется, что с этой недели, когда я прохожу max_id значения выбрасывается ошибка, она говорит:Instagram API/{метка-имя}/тегов/СМИ/недавнее измененное поведение

{ 
    "meta": { 
     "error_type": "APIInvalidParametersError", 
     "code": 400, 
     "error_message": "max_id must not be a media id." 
    } 
} 

Я не знаю, где найти, изменилось ли поведение ави или просто сломано.
Ребята, есть ли у вас идеи?

Другая ошибка, которую я нашел, - это порядок возвращенных Medias, когда я запрашиваю эту конечную точку. Вот образец данные:

#sample error 
[ 
    Media: 1220853576116214570_1383882821 
    Media: 1220853572180739674_233961632 
    Media: 1220853571106323542_44255974 
    Media: 1220853327487332588_16383867 
    Media: 1220853529276039536_37204591 
    Media: 1220853517236612185_1342227858 
    Media: 1220853478513480317_596571 
    Media: 1220853329006327307_299159508 
    Media: 1220853296836482014_1829274963 
    Media: 1220853282356978078_1498664215 
    Media: 1220853191933038656_528166155 
    Media: 1220481246711237359_211289081 #MEDIA INCORRECT ORDER 
    Media: 1220853144521663282_3026017167 
    Media: 1220853127735637950_619046756 
    Media: 1220853103550902683_2074401387 
    Media: 1220853106444172011_3020165605 
    Media: 1220449359646948005_208916789 #MEDIA INCORRECT ORDER 
    Media: 1220853071011680880_596571 
    Media: 1220852985861033044_446238634 
    Media: 1220852995848611111_3098675456 
    Media: 1220852944343050919_1126655937 
    Media: 1220852926209616200_327453609 
    Media: 1220852902671104371_351483533 
    Media: 1220852898165133786_207127275 
    Media: 1220852887618705294_1736270372 
    Media: 1220852850174855566_1133338201 
    Media: 1220852831895483805_30557620 
    Media: 1220851564341433250_1460935835 
    Media: 1220852721064734213_14247170 
    Media: 1220852681564341476_1329013696 
    Media: 1220852647186623946_2143587522 
    Media: 1220852634988856098_6331807 
    Media: 1220852621030972511_530287550 
] 

Edit: Я только что проверил, что клиент Python Instagram было осуждается 9 дней назад, и есть много StackOverflow вопросов о апи поведения от 23 марта. Много совпадений

  • Instagram /v1/tags/{tag-name}/media/recent endpoint doesn't return min_tag_id in pagination block
  • Error 400: Bad request while fetching json data from instagram api via coldfusion
  • API Tags endpoint error - min_id is not a valid cursor for this tag


  • Изменить 2: параметр подсчета не может быть больше, чем 33, в противном случае опущено. Другими словами, не более записей на номер страницы 33

    Edit 3: Python клиент сломана с 1 июня из-за другого незарегистрированной изменения поведения

    File "/usr/local/lib/python2.7/dist-packages/instagram/bind.py", line 194, in _call 
        return method.execute() 
        File "/usr/local/lib/python2.7/dist-packages/instagram/bind.py", line 186, in execute 
        content, next = self._do_api_request(url, method, body, headers) 
        File "/usr/local/lib/python2.7/dist-packages/instagram/bind.py", line 148, in _do_api_request 
        obj = self.root_class.object_from_dictionary(entry) 
        File "/usr/local/lib/python2.7/dist-packages/instagram/models.py", line 88, in object_from_dictionary 
        for comment in entry['comments']['data']: 
    KeyError: 'data' 
    


    Редактировать 3 решаемой here

    +2

    Существует, безусловно, то, что изменилось/порвал с их API в течение этой недели. Во-первых, они изменили min/max_tag_id на некоторую хешированную строку вместо численного значения, которое они ранее имели. Если вы попытаетесь передать старое числовое значение, вы получите здесь сообщение об ошибке. Новые запросы API будут возвращать хешированную строку, поэтому вы можете использовать ее вместо этого. Но что-то не так с max_tag_id, оно просто не работает, как раньше. Я подал отчет, но я не так надеюсь, что они ответят на него, учитывая, как мало они общаются со своими пользователями ... – Joel

    +0

    Есть ли способ проверить статус api (например, Twitter) или сообщить о какой-либо проблеме или что-то в этом роде? – xecgr

    +0

    Вы можете сообщить об этом здесь: https://www.instagram.com/developer/clients/manage/. Я сделал это, но я не буду надеяться получить ответ от них. – Joel

    ответ

    1

    Кажется, что вы передаете медиа-идентификатор как разбивку на страницы. Вы больше не можете этого делать, поскольку Instagram изменила значения разбивки на страницы. Это был идентификатор носителя, но теперь это строка.

    Когда вы делаете запрос, вы получите JSON как это:

    { 
        pagination: { 
         next_max_tag_id: ..., 
         deprecation_warning: "next_max_id and min_id are deprecated for this endpoint; use min_tag_id and max_tag_id instead", 
         next_max_id: ..., 
         next_min_id: ..., 
         min_tag_id: ... 
         ... 
        }, 
        meta: { 
         ... 
        }, 
        data: { 
         ... 
        } 
    } 
    

    Просто использовать значение next_max_id как max_tag_id в запросе. Это должно сработать.

    +1

    Хорошо, во-первых: это изменение задокументировано? Во-вторых: как насчет того, если я хочу искать из Max_id в прошлое, поскольку я использовал эту конечную точку, пока она не сломалась? – xecgr

    +0

    К сожалению, это не документировано ... Это изменение произошло пару недель назад. Нет изменений в журнале изменений, и поскольку имя поля по-прежнему остается неизменным и только значение отличается от других, оно отсутствует в документации .. Я боюсь, что вы не можете искать носители до max_id, если этот max_id является media_id ... Вам нужно будет вернуться назад, используя новый max_id, указанный в разбивке на страницы, пока вы не получите то, что хотите. –

    +0

    Я получаю 'next_max_id и min_id устарели для этой конечной точки; используйте min_tag_id и max_tag_id вместо ', но когда я использую' max_tag_id', я получаю сообщение об ошибке: 'max_id не должен быть идентификатором носителя.' – Ionut

    0

    Обходной путь для этого до тех пор, пока Instagram не ответит, что кто-либо должен использовать старый и устаревший next_max_id или next_max_tag_id. Кажется, что max_tag_id полностью исчез в ответе на запрос и был заменен на next_max_tag_id.

    /tags/{tag-name}/media/recent?access_token={access-token}&next_max_id={next_max_id}

    +0

    Это не работает, параметр опущен. Он возвращает тот же результат, что если бы вы его не пропустили – xecgr

    +0

    Странно, это работает для меня. – bangerang

    +0

    Я получаю 'next_max_id и min_id устарели для этой конечной точки; используйте min_tag_id и max_tag_id вместо ', но когда я использую' max_tag_id', я получаю сообщение об ошибке: 'max_id не должен быть идентификатором носителя.' – Ionut