特定のハッシュタグを付けて投稿された Instagram の写真を分析しようとしています。そのため、分析に使用する一時データベースにすべての画像を保存しようとしています。
私はpythonを使用しており、すべての画像を取得するためのセロリタスクを持っていますが、おそらく間違っているnext_max_tag_idで実行すると機能しません。
誰かが正しい next_max_tag_id を取得する方法を知っていますか?
これは私が使用しているコードです:
@task()
def get_latest_photos():
next_max_tag_id = get_option('next_max_tag_id')
if not next_max_tag_id:
next_max_tag_id = 0
url = BASE + '/tags/{tag}/media/recent?client_id={cliend_id}' \
'&max_tag_id={max_id}'.format(**{
'tag': a_tag,
'cliend_id': getattr(settings, 'INSTAGRAM_CLIENT_ID'),
'max_id': next_max_tag_id
})
while url:
request = requests.get(url)
if request.status_code != 200:
pass #TODO: error
json_response = request.json()
if json_response['meta']['code'] != 200:
pass #TODO: error
# do something with json_response['data']:
url = None
if json_response.has_key('pagination'):
pagination = json_response['pagination']
if pagination.has_key('next_url'):
url = json_response['pagination']['next_url']
if pagination.has_key('next_max_tag_id'):
next_max_tag_id = pagination['next_max_tag_id']
update_option('next_max_tag_id', next_max_tag_id)
流れは基本的に次のとおりです。
- データベースから next_max_tag_id を取得します (デフォルトは 0)
- 有効な URL がある間、データ、次の URL、および next_max_tag_id を取得します
- next_max_tag_id を更新します
最後の next_max_tag_id を使用して API URL にアクセスするたびに古い画像を取得するため、next_max_tag_id だけが間違っているように思えます。