python-instagram OAuthPermissionsException

时间:2017-04-06 20:50:09

标签: python oauth instagram python-3.4 instagram-api

所以我试图获得符合某些参数的Instagram照片,并且我得到了以下堆栈:

Traceback (most recent call last):
  File "instagram_find_shows.py", line 83, in <module>
    if __name__ == "__main__": main()
  File "instagram_find_shows.py", line 48, in main
    get_instagram_posts(show_name, show_time, coordinates)
  File "instagram_find_shows.py", line 73, in get_instagram_posts
    str(coordinates[1]), min_time, max_time)
  File "C:\Users\User Name\Anaconda3\lib\site-packages\instagram\bind.py", line 197, in _call
    return method.execute()
  File "C:\Users\User Name\Anaconda3\lib\site-packages\instagram\bind.py", line 189, in execute
    content, next = self._do_api_request(url, method, body, headers)
  File "C:\Users\User Name\Anaconda3\lib\site-packages\instagram\bind.py", line 163, in _do_api_request
    raise InstagramAPIError(status_code, content_obj['meta']['error_type'], content_obj['meta']['error_message'])
instagram.bind.InstagramAPIError: (400) OAuthPermissionsException-This request requires scope=public_content, but this access token is not authorized with this scope. The user must re-authorize your application with scope=public_content to be granted this permissions.

代码如下:

def get_instagram_posts(name, time, coordinates):
    max_time_dt = time + timedelta(hours=3)
    min_time_dt = time - timedelta(hours=1)

    max_time = str(calendar.timegm(max_time_dt.timetuple()))
    min_time = str(calendar.timegm(min_time_dt.timetuple()))

    dist_rad_str = str(insta_dist_radius_m)
    count_str = str(insta_count)

    api = InstagramAPI(access_token=insta_access_token, 
        client_secret=insta_client_secret)

    r = api.media_search(name, count_str, str(coordinates[0]),
        str(coordinates[1]), min_time, max_time)

    photos = []

    for media in r:
        photos.append('<img src="%s"/>' % media.images['thumbnail'].url)

    print(photos[0])

我无法弄清楚要做什么......直译我只是想做一个简单的测试,而不是试图削弱他们的API。在Instagram的参数中有没有办法做到这一点?非常感谢!

1 个答案:

答案 0 :(得分:0)

通过在浏览器中转到以下网址进行修复:

https://www.instagram.com/oauth/authorize?client_id=[CLIENT_ID]&redirect_uri=[REDIRECT_URI]&response_type=code&scope=basic+public_content+follower_list+comments+relationships+likes