Instagramの文書化されていないAPIを使用していますhttps://www.instagram.com/<user>/?__a=1
パブリックユーザーフィードを取得します。
また、max_id
次のようなクエリパラメータ:https://www.instagram.com/<user>/?__a=1&max_id=<end_cursor>
end_cursor = json_response.graphql.user.Edge_owner_to_timeline_media.page_info.end_cursor
(はい、「has_next_page」はtrueです)
彼らは最近JSON形式を変更しましたが、他の機能が壊れている可能性があると思います。
「end_cursor」はまだありますが、使用すると、使用していないかのように同じInstagramの投稿が返されます。
明確にするために、私の問題はmax_id=<end_cursor>
は、パブリックユーザーフィードではもう機能しないようです。まだ最初の12件の投稿を取得できますが、それ以降は取得できません。
この問題を見ている人はいますか?
ここに私が意味することのJSFiddleの例があります: https://jsfiddle.net/LLsg91ja/33/
04-14-2018-廃止-INSTAGRAMは「?__ a = 1」と「?query_id = 17888483320059182」を廃止-これはもう機能しません!
メディアのページネーションについては、これを見てください。
https://instagram.com/graphql/query/?query_id=17888483320059182&id=<user_id>&first=12&after=<end_cursor>
これは返します:
['data'] ['user'] ['Edge_owner_to_timeline_media'] ['page_info'] ['end_cursor']
およびメディア:
['data'] ['user'] ['Edge_owner_to_timeline_media'] ['edges']
「query_id」は現在静的なので、17888483320059182を使用します。
「id」は「instagramユーザーID」なので、?__a=1
を使用して['graphql'] ['user'] ['id']を取得する必要があります
「最初」は、返される写真の数です。 12を使用して、メディアが同じものを返すようにします。
'after'は、使用するための新しい 'max_id'です['data'] ['user'] ['Edge_owner_to_timeline_media'] ['page_info'] ['end_cursor']
さらにテストし、後で対応します。
後で応答する:
?__a=1
を使用した「ページネーション」は廃止されたと考えられています。 trueの場合、Instagramのページネーションに?__a=1
を使用してopの直接の質問を解決できる答えはありません。
しかし、この回答で提供されるコードは、インスタグラムのメディアのページネーションを提供し、それは、オペが求めていた結果を提供します。
回答には、現在のAPI(json ?__a=1
ハックではなく)である 'instagram graphql api'が組み込まれているため、この回答は今のところある程度の安定性を提供するはずです。
私のライブサイトで使用されているように:
Instagramメディアリクエストの前にid=<instagram_user_id>
を取得します。
profile = https://www.instagram.com/<instagram_username>/?__a=1
media = https://instagram.com/graphql/query/?query_id=17888483320059182&id=<profile['graphql']['user']['id']>&first=12&after=<end_cursor>