Python Twitter API在尝试获取用户时返回401(未经授权)';她在推特上的朋友
我正在使用下面的代码,有一段时间它工作得很有魅力,但最近在10次尝试中有9次我从twitter api中得到了错误Python Twitter API在尝试获取用户时返回401(未经授权)';她在推特上的朋友,python,twitter,oauth,twitter-oauth,Python,Twitter,Oauth,Twitter Oauth,我正在使用下面的代码,有一段时间它工作得很有魅力,但最近在10次尝试中有9次我从twitter api中得到了错误 from twython import Twython, TwythonError from pymongo import Connection
from twython import Twython, TwythonError
from pymongo import Connection
import pika, time
connection = Connection("host")
connection.admin.authenticate('admin', 'passwords')
db = connection['tweets']
consumer_key="key"
consumer_secret="secret"
access_token="token"
access_token_secret="secret_token"
t = Twython(app_key=consumer_key,
app_secret=consumer_secret,
oauth_token=access_token,
oauth_token_secret=access_token_secret
)
Q ='download_friends'
r_connection = pika.BlockingConnection(pika.ConnectionParameters(
'host'))
channel = r_connection.channel()
channel.queue_declare(queue= Q,
arguments={'x-message-ttl':600000})
while 1:
method_frame, header_frame, id = channel.basic_get(Q)
if db.friends.find_one({"_id": id}) != None:
print "Panic, user already exists"
continue
try:
r = t.get_friends_list(user_id = id)
except Exception as ex:
print ex, id
else:
print id
r['_id'] = id
r['time'] = time.time()
db.friends.save(r)
time.sleep(121)
Twitter API返回401(未经授权),出现错误
正在处理您的请求
这是一个堆栈跟踪
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/twython/endpoints.py", line 290, in get_friends_list
return self.get('friends/list', params=params)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 230, in get
return self.request(endpoint, params=params, version=version)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 224, in request
content = self._request(url, method=method, params=params, api_call=url)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 194, in _request
retry_after=response.headers.get('retry-after'))
twython.exceptions.TwythonAuthError: Twitter API returned a 401 (Unauthorized), An error occurred processing your request.
它可以获得访问令牌,但仅此而已。可能是这样,因为用户id具有私人配置文件,而您无法访问它的朋友 我还认为,这是速率限制的问题,但根据twitter api,若达到限制,它将返回429错误 更新:
我没有测试,但发现了类似的情况:可能重复@AlexThornton不,这不是重复。我的代码有时有效,有时返回错误,而在链接上的问题是如何生成有效代码。在我的例子中,一些隐藏的变量开始发挥作用,否则好的代码会返回错误,而我却找不到它。那么错误发生在哪里呢?你能发布完整的回溯吗?@dorvak这是twitter api返回的错误。有时候。有时不会,但最近错误率越来越高。@Moonwalker您是否收到一个JSON错误响应,并返回401HTTP状态的Twitter错误代码?你能分享吗?谢谢,有问题的个人资料被删除了,因此出现了错误。
twitter = Twython('API key', 'API secret', oauth_version=2)
ACCESS_TOKEN = twitter.obtain_access_token()
print ACCESS_TOKEN
t = Twython('API key', access_token=ACCESS_TOKEN)
r = t.get_friends_list(user_id = 'id')