2016-01-13 3 views
0

Я хочу сканировать изображения с помощью Instagram API в любом местеКак получить изображения из API Instagram?

Вот мой код в Python:

from instagram.client import InstagramAPI 
    client_id = ******** 
    client_secret = ******* 
    access_token = ******* 
    client_ip = ******* 

    q=None 
    count=100 
    lat=51.51608899635712 
    lng=0.09891956707558282 
    min_timestamp = '2015-12-07 22:00:00' 
    max_timestamp = '2015-12-08 22:00:00' 
    distance=1000 


    api = InstagramAPI(client_id=client_id, client_secret=client_secret, client_ips= client_ip,access_token= access_token) 

    media_all_ids = [] 
    media_id = api.media_search(q,count=20) + api.media_search(lat=lat, lng=lng, min_timestamp=min_timestamp, max_timestamp=max_timestamp, distance=distance) 

    temp,max_tag = next.split('max_tag_id=') 
    max_tag=str(max_tag) 

    for media_id in media_ids: 
     media_all_ids.append(media_id.id) 

    counter = 1 

    while next and counter <3 : 
     more_media, next = api.media_search(lat, lng, min_timestamp, max_timestamp, distance, max_tag_id=max_tag) 
     temp,max_tag=next.split('max_tag_id=') 
     max_tag = str(max_tag) 
     for media_id2 in more_media: 
      media_all_ids.append(media_id2.id) 
     print (len(media_all_ids)) 
     counter+=1 

    media_all_ids=list(OrderedDict.fromkeys(media_all_ids)) 
    print (len(media_all_ids)) 

Основная проблема в том, что это дает мне ту же самую ошибку, которую я не имею ни малейшего понятия, чтобы решить:

content, next = self._do_api_request(url, method, body, headers) 
in _do_api_request 
    raise InstagramAPIError(status_code, content_obj['meta']['error_type'], content_obj['meta']['error_message']) 
instagram.bind.InstagramAPIError: (400) APIInvalidParametersError-missing lat and lng 

Я хочу распечатать их идентификатор вместе со ссылкой на изображение и время, когда фотография была захвачена. Мне было интересно, знает ли кто, как решить эту проблему?

+0

Проверьте, что возвращает api.media_search. Ошибка говорит, что возвращается более двух значений, и она не знает, как распаковать остальные. – nikihub

+0

Все еще дает мне ошибку, даже если я задаю правильные параметры –

+0

Что вы подразумеваете под «установкой правильных параметров»? 'api.media_search' возвращает больше двух значений. Попробуйте это в консоли python 'a, b = (1, 2, 3)'. Это даст вам ту же ошибку. Переписывая его в 'a, b, c = (1, 2, 3)', будет исправлена ​​ошибка. – nikihub

ответ

1

Порядок аргументов имеет значение. Если вы посмотрите at the source, вы увидите, что вам нужно передать аргументы в следующем порядке:

["q", "count"] + ['lat', 'lng', 'min_timestamp', 'max_timestamp', 'distance'] 

Попробуйте передавая свои аргументы, используя их имена, чтобы избежать этой проблемы. Вы уже делаете это для max_tag_id=max_tag, так что сделайте это для остальных.

Я не уверен насчет access_token, хотя. Это не похоже на параметр метода. Вы больше знакомы с клиентом API, чем я, поэтому я оставляю это вам.

+0

Все еще дает мне ошибку :( –

+0

raise InstagramAPIError (status_code, content_obj ['meta'] ['error_type'], content_obj ['meta'] ['error_message']) instagram.bind.InstagramAPIError: (400) APIInvalidParametersError-missing lat и lng –

+0

Как вы теперь вызываете 'media_search'? – 2rs2ts

Смежные вопросы