Nano Hash - криптовалюты, майнинг, программирование

TypeError: объект HMAC не вызывается

При прохождении следующих

hmac.new(secretkey.encode(), sig1.encode(), sha1)

Я получаю следующую ошибку

TypeError: объект HMAC не вызывается

Я уверен, что это, вероятно, базовое для большинства, но я только начинаю разбираться с python, и это вызывает небольшую головную боль.

Может кто-нибудь помочь объяснить или решить проблему

Дополнительная информация по запросу

url = "https://api.twitter.com/1.1/search/tweets.json?q=something"  # url = "https://google.com"
realurl = "https://api.twitter.com/1.1/search/tweets.json"
http_method = "GET"
oauth_consumer_key = "removed"
oauth_token = "removed"
oauth_signature_method = "HMAC-SHA1"
oauth_timestamp = "1430882576"
oauth_nonce = "pISS1c"
oauth_version = "1.0"
oauth_signature = "removed"
oauth_consumer_secret_key = "removed"


class TwitterModel:
    def SignitureGenerator():

    from urllib.parse import quote
    import binascii
    import hmac
    from hashlib import sha1

    secretkey = quote(oauth_consumer_secret_key, '')+"&"+quote(oauth_token_secret, '')

    sig1 = realurl+"&oauth_consumer_key="+oauth_consumer_key+"&oauth_nonce="+oauth_nonce+"&26oauth_signature_method="+oauth_signature_method+"&oauth_timestamp="+oauth_timestamp+"&oauth_token="+oauth_token+"&oauth_version="+oauth_version

    sig1 = "GET&"+quote(sig1, '')

    hashkey = hmac.new(secretkey.encode(), sig1.encode(), sha1)

    return hashkey

Отслеживание

Traceback (most recent call last):
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask_cors/extension.py", line 110, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
raise value
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/app.py", line 1478, in full_dispatch_request
response = self.make_response(rv)
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/flask/app.py", line 1577, in make_response
rv = self.response_class.force_type(rv, request.environ)
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/werkzeug/wrappers.py", line 841, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
 File "/var/www/projects/twitter/venv/lib/python3.4/site-packages/werkzeug/test.py", line 867, in run_wsgi_app
app_rv = app(environ, start_response)
 TypeError: 'HMAC' object is not callable
06.05.2015

  • Вам нужно немного больше вашего кода ... вы переназначили hmac или импортировали его напрямую? 06.05.2015
  • Вы пытаетесь сделать что-то вроде hmac.new(secretkey.encode(), sig1.encode(), sha1)()? 06.05.2015
  • Обновлено с полным кодом @Jkdc 06.05.2015
  • Все еще не ваш настоящий код, return инструкция без тела функции? 06.05.2015
  • Обновления с полным кодом модели 06.05.2015
  • Код выглядит нормально, тот, кто получает hashkey, возвращенный от SignitureGenerator, на самом деле пытается его вызвать, что неверно. 06.05.2015
  • @AshwiniChaudhary Контроллер просто возвращает результаты модели, а маршрутизатор возвращает результаты контроллеров. Есть ли способ лучше отладить это? 06.05.2015
  • @cusackBOOM Проверьте или опубликуйте всю трассировку, она сообщит вам, какая часть пытается вызвать hashkey. 06.05.2015

Ответы:


1

Кажется, добавление .digest () к hmac.new решило проблему.

hashkey = hmac.new(secretkey.encode(), sig1.encode(), sha1).digest()
06.05.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..