1

私はしばらくの間tweepyで遊んでいますが、レート制限の問題が発生し続け、429エラーが発生します。私はあなたが次のような個々の呼び出しにヘッダーを設定できることを知っています

api.get_user('twitter', headers={'User-Agent': 'MyUserAgent'})

しかし、ヘッダーを1つの場所に設定し、すべてのAPI呼び出しでそれを行う必要がない方法はありますか?

4

1 に答える 1

2

ハッキーな方法:

import functools
class NewAPI(object):
    def __init__(self, api):
        self.api = api
    def __getattr__(self, key):
        call = getattr(self.api, key)
        @functools.wraps(call)
        def wrapped_call(*args, **kwargs):
            headers = kwargs.pop('headers', {})
            headers['User-Agent'] = 'MyUserAgent' # or make this a class variable/instance variable
            kwargs['headers'] = headers
            return call(*args, **kwargs)
        return wrapped_call

api = NewAPI(api)
print(api.get_user('twitter'))

免責事項:私はtweepyを持っていないのでテストされていません。

于 2012-09-19T04:40:23.507 に答える