web-dev-qa-db-ja.com

Instagram API / tags / {tag-name} / media / recent変更された動作

このエンドポイントで何度か作業しましたが、今週max_id値を渡すとエラーがスローされるため、次のように表示されます。

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

APIの動作が変わったのか、単に壊れているのか、どこにあるのかわかりません。
皆さん、何か考えはありますか?

私が見つけたもう1つのエラーは、このエンドポイントを照会したときに返されるメディアの順序です。サンプルデータは次のとおりです。

#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
]

編集:python instagramのクライアントが9日前に非推奨になったことを確認しましたが、3月23日からのAPIの動作について多くのスタックオーバーフローの質問があります。多くの偶然があります。

  • Instagram/v1/tags/{tag-name}/media/latestエンドポイントはページネーションブロックでmin_tag_idを返しません
  • エラー400:コールドフュージョンを介してInstagram APIからjsonデータをフェッチしているときにリクエストが正しくありません
  • APIタグエンドポイントエラー-min_idはこのタグの有効なカーソルではありません


  • 編集2:

    編集3:
      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が解決しました ここ

    21
    xecgr

    メディアIDをページ付けとして渡しているようです。 Instagramがページネーションの値を変更したため、これを行うことはできなくなりました。以前はメディアIDでしたが、現在は文字列です。

    リクエストを実行すると、次のような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
    Daniel Trolezi

    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
    bangerang