devrel-examples icon indicating copy to clipboard operation
devrel-examples copied to clipboard

WebHook: Python3 - TypeError: Unicode-objects must be encoded before hashing

Open naseem1amjad opened this issue 4 years ago • 1 comments

Hi, I am using Python WebHook_Inspector.py example from devrel-examples-master. (i.e. devrel-examples/python/webhooks at master · Asana/devrel-examples · GitHub) I have upgraded the python code to make it work with Python 3.9.1 (like adding parenthesis after print etc.) Now when I run the webhook_inspector.py using ngrok it shows following error ( TypeError: Unicode-objects must be encoded before hashing ) Here is the stack 127.0.0.1 - - [18/Jan/2021 19:59:15] “e[35me[1mPOST /receive-webhook?project=number-removed HTTP/1.1e[0m” 500 - Traceback (most recent call last): File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 2464, in call return self.wsgi_app(environ, start_response) File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 2450, in wsgi_app response = self.handle_exception(e) File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 1867, in handle_exception reraise(exc_type, exc_value, tb) File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask_compat.py”, line 39, in reraise raise value File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 2447, in wsgi_app response = self.full_dispatch_request() File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask_compat.py”, line 39, in reraise raise value File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 1950, in full_dispatch_request rv = self.dispatch_request() File “G:\Work\webhooksWin\myenv\Lib\site-packages\flask\app.py”, line 1936, in dispatch_request return self.view_functionsrule.endpoint File “G:\Work\webhooksWin\webhook_inspector.py”, line 153, in receive_webhook signature = hmac.new(hook_secret. encode(‘ascii’, ‘ignore’), File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\Lib\hmac.py”, line 170, in new return HMAC(key, msg, digestmod) File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\Lib\hmac.py”, line 93, in init self.update(msg) File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\Lib\hmac.py”, line 113, in update self._inner.update(msg) TypeError: Unicode-objects must be encoded before hashing

And I think it results in ngrok throwing following error POST /receive-webhook 500 INTERNAL SERVER ERROR

Please suggest what should be done to resolve this issue. Please note that I have tried this on windows 10 and WSL

naseem1amjad avatar Jan 19 '21 03:01 naseem1amjad

Please note that , I checked with Python2.7 and this issue exists there as well.

naseem1amjad avatar Jan 19 '21 14:01 naseem1amjad