こんにちは、テキストの壁の警告:)
2 つのハッシュタグの 5 つの組み合わせに属する instagram の写真をスクレイピングして収集するサイトを構築しようとしています。最初のハッシュタグはサイト/キャンペーンの名前と同じで、もう 1 つのハッシュタグは 5 つのトピックのいずれかになります。
各ユーザーが 5 つのトピックすべての画像を「収集」できるように、これも instagram ユーザー名でソートする必要があります。
これは、「画像の数 DESC、組み合わせた DESC など」でソートされた「トップリスト」として提示する必要があります。各トピックの画像は 1 枚、つまり、ユーザーごとに最大 5 枚の画像です。
説明するのが難しいので、作成する必要があるトップリストのこの例で説明します。
トップリスト:
ランク1。
USERNAME - score 27 (has collected all 5 topics and have most combined likes)
(img) #competition #topic-1 5 likes
(img) #competition #topic-2 3 likes
(img) #competition #topic-3 10 likes
(img) #competition #topic-4 5 likes
(img) #competition #topic-5 4 likes
ランク2。
USERNAME - score 25
(img) #competition #topic-1 5 likes
(img) #competition #topic-2 3 likes
(img) #competition #topic-3 8 likes
(img) #competition #topic-4 5 likes
(img) #competition #topic-5 4 likes
ランク3。
USERNAME - score 38 (has more likes than the leader but has only 4 topics covered..)
(img)#competition #topic-1 5 likes
(img) #competition #topic-2 3 likes
(img) #competition #topic-3 10 likes
(img) #competition #topic-4 20 likes
ランク4。
USERNAME - score 17
(img) #competition #topic-1 1 likes
(img) #competition #topic-2 2 likes
(img) #competition #topic-3 3 likes
(img) #competition #topic-4 11 likes
等々....
私はAPIを少しいじっていましたが、この問題への「エントリポイント」だけではないにしても、「/tags/tag-name/media/recent」が最善のようです?
だから私が考えているのは、5分ごとにスクリプトを実行するか、「#competition」とタグ付けされた最新の画像を通過するまでスクリプトを実行し、5つのセカンダリタグのいずれかがそこにあるかどうかを確認し、そうでない場合は保存することですすでにDBにあります。
これらのタグに一致するすべての画像を時間の経過とともに取得するためにキャッシュする必要があると思いますか? クエリごとのオブジェクトのInstagramの制限にまだ達していません...しかし、何もしなければ、毎回すべてをロードしようとすると、自分のサーバーのタイムアウトに達します。
私の観点から見たお尻の大きな痛みはいいねです。これらはスコアボードを維持するためにインスタグラムから常に更新する必要があるためです。キャッシュされたすべての画像をcronでループしてから、APIリクエストを実行してそれぞれのようなカウントを更新するだけでは、サーバーとinstagramのAPI制限の両方で少し重いようです.
ログインしているユーザーのセッション/トークンを利用して、これをスマートな方法で行うことができるでしょうか?
それとも、チームの残りのメンバーに、これは悪い考えであり、「投票」メカニズムを構築または所有し、カウンターのようなインスタグラムから切り離して、競争をローカルに保つ必要があることを説得する必要がありますか?
これをどのように保存して解決するかについてのアイデアを共有してください:)