Open ishwara-bhat opened 2 years ago
@ishwara-bhat I have the same problem, how could you solve it?
Reading the dump, it appears that the problem is that http_ece
can't encrypt content
.
content
comes from data
in self.encode(data, content_encoding)
from a very quick view, I'm going to guess that the data being passed in is not a byte array. You may need to serialize the object content into a string or byte array before passing it to webpush.encode
For web push alone, I went for nodejs service. Rest of my back end is in python.
On Tue, 23 Aug 2022, 22:31 Carlos Mesas, @.***> wrote:
@ishwara-bhat https://github.com/ishwara-bhat I have the same problem, how could you solve it?
— Reply to this email directly, view it on GitHub https://github.com/web-push-libs/pywebpush/issues/145#issuecomment-1224351178, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJVKQPG2UZOTIDACENMTB7TV2T7VFANCNFSM5KJFSGGQ . You are receiving this because you were mentioned.Message ID: @.***>
Reading the dump, it appears that the problem is that
http_ece
can't encryptcontent
.content
comes fromdata
inself.encode(data, content_encoding)
from a very quick view, I'm going to guess that the data being passed in is not a byte array. You may need to serialize the object content into a string or byte array before passing it to
webpush.encode
An example of a key pair that I am using are the following. I am using string strings directly.
{ "subject": "mailto: mai@example.com", "publicKey": "BLR4PgElXtaeu16JlFEfVuOZkyub-Y36w1XRDYvl7-gNOKUpW-YadhR0Yv6vnrz5h4HhJG5jq0arBRuIrJdWXtQ", "privateKey": "LqUduWL7V0F7pOrYep5oTgZJaCXLl7eRvMZMpAE6DCA" }
Is it necessary to use PEM certificates or can I use string keys?
String keys can be in either raw or DER format: https://github.com/web-push-libs/vapid/blob/main/python/py_vapid/__init__.py#L134-L147. If you provide a path, py_vapid will try to read the file as either PEM or DER formatted https://github.com/web-push-libs/vapid/blob/main/python/py_vapid/__init__.py#L134-L147
Las claves de cadena pueden estar en formato raw o DER: https://github.com/web-push-libs/vapid/blob/main/python/py_vapid/__init__.py#L134-L147 . Si proporciona una ruta, py_vapid intentará leer el archivo con formato PEM o DER https://github.com/web-push-libs/vapid/blob/main/python/py_vapid/__init__.py#L134-L147
Ok, I will try to work with the private key in PEM format from the file directly.
Just ran into this same issue. Make sure your data
payload is JSON string encoded and not just a raw python dictionary.
I have trouble getting pywebpush work for my python backend on gcp.
VAPI PUBLIC KEY and PVT KEY obtained from firebase dash board thourhg manual creation
subscriptionObject comes from Angular front end. It used the VAPI PUBLIC KEY to receive the object.
I used the package versions specified in requirement.txt. The call happens from a Flask app route.
webpush(subscription_info = subscriptionObject, data=notificationMessageObject, vapid_private_key=VAPID_PRIVATE_KEY, vapid_claims={"sub": "mailto:mycontact_supplied_at_fire_base_bashboard@mydomain.com"})
Error Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 110, in wrapped_function return cors_after_request(app.make_response(f(*args, kwargs))) File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise raise value File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request return self.view_functions[rule.endpoint](req.view_args) File "/app/main.py", line 428, in notify_one_device webpush(subscription_info = subsObject, data=notificationMessageObject, vapid_private_key=VAPID_PRIVATE_KEY, vapid_claims={"sub": "mailto:mymail_configured_at_firebase_dashboard@mycontact.com"}) File "/usr/local/lib/python3.7/site-packages/pywebpush/init.py", line 485, in webpush timeout=timeout, File "/usr/local/lib/python3.7/site-packages/pywebpush/init.py", line 305, in send encoded = self.encode(data, content_encoding) File "/usr/local/lib/python3.7/site-packages/pywebpush/init.py", line 219, in encode version=content_encoding) File "/usr/local/lib/python3.7/site-packages/http_ece/init.py", line 394, in encrypt content[i:i + chunk_size], TypeError: unhashable type: 'slice'Please guide how I should approach this.