Debugging Python Instagram API client - 'NoneType' has no len()

余生颓废 提交于 2019-12-24 15:33:02

问题


newbie to Python here, so bear with me...

I'm trying to use the Python client for Instagram API, and am entering a valid access token and user ID when passing the token into the InstagramAPI constructor (yes, I'm running the code with my access token and user ID inserted, but left out for posting the question):

from instagram.client import InstagramAPI

access_token = "YOUR_ACCESS_TOKEN"
api = InstagramAPI(access_token=access_token)
recent_media, next_ = api.user_recent_media(user_id="userid", count=10)
for media in recent_media:
   print media.caption.text

but in terminal I keep getting this error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/bind.py", line 196, in _call
    return method.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/bind.py", line 182, in execute
    include_secret=self.include_secret)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/oauth2.py", line 224, in prepare_request
    url = self._full_url_with_params(path, params, include_secret)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/oauth2.py", line 148, in _full_url_with_params
    self._full_query_with_params(params) +
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/oauth2.py", line 144, in _full_url
    self._signed_request(path, {}, include_signed_request, include_secret))
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/oauth2.py", line 172, in _signed_request
    return "&sig=%s" % self._generate_sig(path, params, self.api.client_secret)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/instagram/oauth2.py", line 127, in _generate_sig
    return  hmac.new(secret, sig, sha256).hexdigest()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hmac.py", line 136, in new
    return HMAC(key, msg, digestmod)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hmac.py", line 71, in __init__
    if len(key) > blocksize:
TypeError: object of type 'NoneType' has no len()

Any advice on how to debug this error? Specifically, what is the possible source of this error?

TypeError: object of type 'NoneType' has no len()

回答1:


you are facing a bug because the doc (readme) on github is not up-to-date. Read this issue carefully to find your solution

Missing argument for InstagramAPI object instance

OAuth Signing is broken in 1.3.1

your code should be:

from instagram.client import InstagramAPI 

access_token = "YOUR_ACCESS_TOKEN" 
client_secret = "YOUR_CLIENT_SECRET"
api = InstagramAPI(client_secret=client_secret, access_token=access_token) 


来源:https://stackoverflow.com/questions/30442663/debugging-python-instagram-api-client-nonetype-has-no-len

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!