调试Python Instagram API客户端 - 'NoneType'没有len()

时间:2015-05-25 16:47:31

标签: python debugging instagram-api

这里有Python的新手,所以请耐心等待......

我正在尝试使用Python client for Instagram API,并在将令牌传递给InstagramAPI构造函数时输入有效的访问令牌和用户ID(是的,我正在使用我的访问令牌和用户ID运行代码插入,但遗漏了发布问题):

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

但是在终端我一直收到这个错误:

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()

有关如何调试此错误的任何建议?具体来说,这个错误的可能来源是什么?

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

1 个答案:

答案 0 :(得分:2)

您正面临一个错误,因为github上的doc(自述文件)不是最新的。请仔细阅读此问题以找到解决方案

Missing argument for InstagramAPI object instance

OAuth Signing is broken in 1.3.1

你的代码应该是:

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)