Progressive Web App (PWA) and Push Notifications
- Edited
I have activated gmp PHP. But push notifications for PWA are not working and it says like this. How to fix this?
The gmp PHP extension doesn't seem to be enabled on your server. It's not strictly necessary, but can improve performance and is recommended. Some shared hosts might not support it though.
I was able to install this extension just fine. However, when I try to enable it, I get the Oops message.
"Oops! Something went wrong. Please reload the page and try again."
stryguardian take a look at your flarum logs for more info and share them here if still stuck
MikeJones Does this help?
Next Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'tcbpush_subscriptions' already exists in /home3/narraoom/twistedcyborg.com/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
t...', Array)
Stack trace:
#0 /home3/narraoom/twistedcyborg.com/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(114): Doctrine\DBAL\Driver\PDO\Exception::new(Object(PDOException))
#1 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Connection.php(485): Doctrine\DBAL\Driver\PDOStatement->execute()
#2 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Connection.php(685): Illuminate\Database\Connection->Illuminate\Database\{closure}('create table
#3 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Connection.php(652): Illuminate\Database\Connection->runQueryCallback('create table t...', Array, Object(Closure))
t...', Array, Object(Closure))
#4 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Connection.php(486): Illuminate\Database\Connection->run('create table
#5 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Schema/Blueprint.php(109): Illuminate\Database\Connection->statement('create table t...')
#6 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Schema/Builder.php(365): Illuminate\Database\Schema\Blueprint->build(Object(Illuminate\Database\MySqlConnection), Object(Illuminate\Database\Schema\Grammars\MySqlGrammar))
#7 /home3/narraoom/twistedcyborg.com/vendor/illuminate/database/Schema/Builder.php(228): Illuminate\Database\Schema\Builder->build(Object(Illuminate\Database\Schema\Blueprint))
#8 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Database/Migration.php(32): Illuminate\Database\Schema\Builder->create('push_subscripti...', Object(Closure))
#9 [internal function]: Flarum\Database\Migration::Flarum\Database\{closure}(Object(Illuminate\Database\Schema\MySqlBuilder))
#10 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Database/Migrator.php(202): call_user_func(Object(Closure), Object(Illuminate\Database\Schema\MySqlBuilder))
#11 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Database/Migrator.php(133): Flarum\Database\Migrator->runClosureMigration(Array)
#12 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Database/Migrator.php(116): Flarum\Database\Migrator->runUp('/home3/narraoom...', '2020_05_29_0000...', Object(Flarum\Extension\Extension))
#13 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Database/Migrator.php(90): Flarum\Database\Migrator->runMigrationList('/home3/narraoom...', Array, Object(Flarum\Extension\Extension))
#14 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Extension/Extension.php(482): Flarum\Database\Migrator->run('/home3/narraoom...', Object(Flarum\Extension\Extension))
#15 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Extension/ExtensionManager.php(311): Flarum\Extension\Extension->migrate(Object(Flarum\Database\Migrator), 'up')
#16 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Extension/ExtensionManager.php(182): Flarum\Extension\ExtensionManager->migrate(Object(Flarum\Extension\Extension))
#17 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Api/Controller/UpdateExtensionController.php(46): Flarum\Extension\ExtensionManager->enable('askvortsov-pwa')
#18 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/RouteHandlerFactory.php(41): Flarum\Api\Controller\UpdateExtensionController->handle(Object(Laminas\Diactoros\ServerRequest))
#19 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
#20 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ExecuteRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
#21 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#22 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Api\Middleware\ThrottleApi->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#23 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#24 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#25 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#26 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ResolveRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#27 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#28 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#29 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(56): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#30 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#31 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(31): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#32 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#33 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#34 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#36 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#37 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#38 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#39 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#40 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#41 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#42 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#43 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/InjectActorReference.php(25): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#44 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\InjectActorReference->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#45 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(76): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#46 /home3/narraoom/twistedcyborg.com/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#47 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#48 /home3/narraoom/twistedcyborg.com/vendor/middlewares/base-path-router/src/BasePathRouter.php(101): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#50 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(36): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#51 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#52 /home3/narraoom/twistedcyborg.com/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#53 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#54 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#55 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ProcessIp->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#56 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(76): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#57 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(65): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#58 /home3/narraoom/twistedcyborg.com/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#59 /home3/narraoom/twistedcyborg.com/vendor/flarum/core/src/Http/Server.php(44): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#60 /home3/narraoom/twistedcyborg.com/index.php(22): Flarum\Http\Server->listen()
#61 {main}
- Edited
I have activated gmp PHP. But push notifications for PWA are not working and it says like this. How to fix this?
The gmp PHP extension doesn't seem to be enabled on your server. It's not strictly necessary, but can improve performance and is recommended. Some shared hosts might not support it though.
[deleted]
thimiraonline Did you restart Apache or nginx ?
- Edited
Hi , There are a few problems with this extension , although it will still work if i enable it, but will crash every time someone comments and posts
it's say "The key needed for push notifications could not be generated. The full error message is: Unable to create the key"
Logs :
flarum.ERROR: ErrorException: [VAPID] Public key should be 65 bytes long when decoded. in /app/vendor/minishlink/web-push/src/VAPID.php:71
Stack trace:
#0 /app/vendor/minishlink/web-push/src/WebPush.php(88): Minishlink\WebPush\VAPID::validate()
#1 /app/vendor/askvortsov/flarum-pwa/src/PushNotificationDriver.php(123): Minishlink\WebPush\WebPush->__construct()
#2 /app/vendor/flarum/core/src/Notification/NotificationSyncer.php(110): Askvortsov\FlarumPWA\PushNotificationDriver->send()
#3 /app/vendor/flarum/mentions/src/Listener/UpdateMentionsMetadataWhenVisible.php(66): Flarum\Notification\NotificationSyncer->sync()
#4 /app/vendor/flarum/mentions/src/Listener/UpdateMentionsMetadataWhenVisible.php(46): Flarum\Mentions\Listener\UpdateMentionsMetadataWhenVisible->syncUserMentions()
#5 /app/vendor/illuminate/events/Dispatcher.php(412): Flarum\Mentions\Listener\UpdateMentionsMetadataWhenVisible->handle()
#6 /app/vendor/illuminate/events/Dispatcher.php(237): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}()
#7 /app/vendor/flarum/core/src/Foundation/DispatchEventsTrait.php(33): Illuminate\Events\Dispatcher->dispatch()
#8 /app/vendor/flarum/core/src/Post/Command/PostReplyHandler.php(104): Flarum\Post\Command\PostReplyHandler->dispatchEventsFor()
#9 /app/vendor/flarum/core/src/Notification/NotificationSyncer.php(148): Flarum\Post\Command\PostReplyHandler->Flarum\Post\Command\{closure}()
#10 /app/vendor/flarum/core/src/Post/Command/PostReplyHandler.php(105): Flarum\Notification\NotificationSyncer->onePerUser()
#11 /app/vendor/illuminate/bus/Dispatcher.php(122): Flarum\Post\Command\PostReplyHandler->handle()
#12 /app/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
#13 /app/vendor/illuminate/pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#14 /app/vendor/illuminate/bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
#15 /app/vendor/illuminate/bus/Dispatcher.php(78): Illuminate\Bus\Dispatcher->dispatchNow()
#16 /app/vendor/flarum/core/src/Api/Controller/CreatePostController.php(62): Illuminate\Bus\Dispatcher->dispatch()
#17 /app/vendor/flarum/core/src/Api/Controller/AbstractSerializeController.php(110): Flarum\Api\Controller\CreatePostController->data()
#18 /app/vendor/flarum/core/src/Api/Controller/AbstractCreateController.php(22): Flarum\Api\Controller\AbstractSerializeController->handle()
#19 /app/vendor/flarum/core/src/Http/RouteHandlerFactory.php(41): Flarum\Api\Controller\AbstractCreateController->handle()
#20 /app/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}()
#21 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ExecuteRoute->process()
#22 /app/vendor/malago/flarum-achievements/src/Middlewares/MiddlewarePosted.php(27): Laminas\Stratigility\Next->handle()
#23 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Malago\Achievements\Middlewares\MiddlewarePosted->process()
#24 /app/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle()
#25 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Api\Middleware\ThrottleApi->process()
#26 /app/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle()
#27 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\CheckCsrfToken->process()
#28 /app/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle()#29 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ResolveRoute->process()
#30 /app/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Laminas\Stratigility\Next->handle()
#31 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\SetLocale->process()
#32 /app/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(56): Laminas\Stratigility\Next->handle()
#33 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\AuthenticateWithHeader->process()
#34 /app/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(31): Laminas\Stratigility\Next->handle()
#35 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\AuthenticateWithSession->process()
#36 /app/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle()
#37 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\RememberFromCookie->process()
#38 /app/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle()#39 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\StartSession->process()
#40 /app/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle()
#41 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Api\Middleware\FakeHttpMethods->process()
#42 /app/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle()
#43 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ParseJsonBody->process()
#44 /app/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle()#45 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\HandleErrors->process()
#46 /app/vendor/flarum/core/src/Http/Middleware/InjectActorReference.php(25): Laminas\Stratigility\Next->handle()
#47 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\InjectActorReference->process()
#48 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(76): Laminas\Stratigility\Next->handle()
#49 /app/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process()
#50 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\RequestHandler->process()
#51 /app/vendor/middlewares/base-path-router/src/BasePathRouter.php(101): Laminas\Stratigility\Next->handle()
#52 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\BasePathRouter->process()
#53 /app/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(36): Laminas\Stratigility\Next->handle()
#54 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Laminas\Stratigility\Middleware\OriginalMessages->process()
#55 /app/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle()
#56 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\BasePath->process()
#57 /app/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle()
#58 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ProcessIp->process()
#59 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(76): Laminas\Stratigility\Next->handle()
#60 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(65): Laminas\Stratigility\MiddlewarePipe->process()
#61 /app/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle()
#62 /app/vendor/flarum/core/src/Http/Server.php(44): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#63 /app/public/index.php(22): Flarum\Http\Server->listen()
#64 {main}
PHP Forum info :
Flarum core 1.0.4
PHP version: 8.0.8
Loaded extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, pcntl, Reflection, SPL, session, standard, sodium, mysqlnd, PDO, xml, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, iconv, exif, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, Zend OPcache
+-------------------------------------+--------------+--------+
| Flarum Extensions | | |
+-------------------------------------+--------------+--------+
| ID | Version | Commit |
+-------------------------------------+--------------+--------+
| flarum-flags | v1.0.0 | |
| flarum-approval | v1.0.0 | |
| flarum-tags | v1.0.3 | |
| flarum-suspend | v1.0.0 | |
| flarum-markdown | v1.0.1 | |
| flarum-nicknames | v1.0.0 | |
| fof-oauth | 1.0.1 | |
| flarum-likes | v1.0.0 | |
| askvortsov-auto-moderator | v0.1.1 | |
| fof-spamblock | 1.0.0 | |
| fof-upload | 1.0.1 | |
| fof-disposable-emails | 1.0.0 | |
| fof-byobu | 1.0.0-beta.7 | |
| clarkwinkelmann-group-list | 1.0.0 | |
| askvortsov-checklist | v1.3.1 | |
| fof-user-directory | 1.0.2 | |
| fof-reactions | 1.0.0 | |
| clarkwinkelmann-author-change | 1.0.1 | |
| askvortsov-discussion-templates | v0.8.0 | |
| fof-default-user-preferences | 1.0.0 | |
| askvortsov-categories | v3.0.0 | |
| nomiscz-auth-steam | v1.0.1 | |
| flarum-subscriptions | v1.0.0 | |
| therealsujitk-gifs | v4.0.0 | |
| askvortsov-help-tags | v1.1.0 | |
| fof-username-request | 1.0.0 | |
| malago-achievements | 0.4.1 | |
| fof-bbcode-details | 1.0.0 | |
| fof-drafts | 1.0.1 | |
| fof-best-answer | 1.0.1 | |
| fof-terms | 1.0.0 | |
| fof-pretty-mail | 1.0.1 | |
| fof-polls | 1.0.3 | |
| fof-ban-ips | 1.0.0 | |
| clarkwinkelmann-emojionearea | 1.0.0 | |
| flarum-lock | v1.0.0 | |
| antoinefr-money | v1.0.0 | |
| sycho-profile-cover | v1.3.0 | |
| fof-share-social | 1.0.0 | |
| fof-nightmode | 1.0.0 | |
| flarum-bbcode | v1.0.0 | |
| flarum-emoji | v1.0.0 | |
| flarum-mentions | v1.0.0 | |
| flarum-statistics | v1.0.0 | |
| flarum-sticky | v1.0.0 | |
| migratetoflarum-canonical | 1.0.0 | |
| v17development-seo | v1.8.0 | |
| fof-user-bio | 1.0.0 | |
| fof-ignore-users | 1.0.0 | |
| fof-socialprofile | 1.0.0 | |
| fof-profile-image-crop | 1.0.0 | |
| fof-links | 1.0.0 | |
| fof-pages | 1.0.1 | |
| fof-recaptcha | 1.0.0 | |
| fof-formatting | 1.0.0 | |
| jslirola-login2seeplus | v0.2 | |
| fof-prevent-necrobumping | 1.0.0 | |
| askvortsov-rich-text | v2.0.3 | |
| flarum-embed | v1.0.0 | |
| fof-split | 1.0.0 | |
| ianm-html-head | 1.0.0 | |
| fof-merge-discussions | 1.0.0 | |
| sycho-advanced-extension-categories | v0.1.3 | |
| clarkwinkelmann-first-post-approval | 1.0.0 | |
| flarum-pusher | v1.0.0 | |
| ianm-synopsis | 1.0.0 | |
| nearata-no-self-likes | v1.2.0 | |
| fof-webhooks | 1.0.2 | |
| askvortsov-moderator-warnings | v0.6.0 | |
| the-turk-mathren | 0.3.7 | |
| v17development-user-badges | v0.2.1 | |
| flarum-lang-english | v1.0.0 | |
| yannisme-confixtheme | 2.0.2 | |
| fof-stopforumspam | 1.0.0 | |
| fof-linguist | 1.0.0 | |
+-------------------------------------+--------------+--------+
- Edited
On the FreeFlarum platform it also complains about Unable to create the key and if enabled users cannot create posts:
Looking through the logs https://freeflarum.com/api/logs/ I can see the following:
[2021-08-08 13:28:43] flarum.ERROR: ErrorException: [VAPID] Public key should be 65 bytes long when decoded. in /app/vendor/minishlink/web-push/src/VAPID.php:71
Stack trace:
#0 /app/vendor/minishlink/web-push/src/WebPush.php(88): Minishlink\WebPush\VAPID::validate()
#1 /app/vendor/askvortsov/flarum-pwa/src/PushNotificationDriver.php(123): Minishlink\WebPush\WebPush->__construct()
#2 /app/vendor/flarum/core/src/Notification/NotificationSyncer.php(110): Askvortsov\FlarumPWA\PushNotificationDriver->send()
#3 /app/vendor/flarum/mentions/src/Listener/UpdateMentionsMetadataWhenVisible.php(66): Flarum\Notification\NotificationSyncer->sync()
#4 /app/vendor/flarum/mentions/src/Listener/UpdateMentionsMetadataWhenVisible.php(46): Flarum\Mentions\Listener\UpdateMentionsMetadataWhenVisible->syncUserMentions()
#5 /app/vendor/illuminate/events/Dispatcher.php(412): Flarum\Mentions\Listener\UpdateMentionsMetadataWhenVisible->handle()
#6 /app/vendor/illuminate/events/Dispatcher.php(237): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}()
#7 /app/vendor/flarum/core/src/Foundation/DispatchEventsTrait.php(33): Illuminate\Events\Dispatcher->dispatch()
#8 /app/vendor/flarum/core/src/Post/Command/PostReplyHandler.php(104): Flarum\Post\Command\PostReplyHandler->dispatchEventsFor()
#9 /app/vendor/flarum/core/src/Notification/NotificationSyncer.php(148): Flarum\Post\Command\PostReplyHandler->Flarum\Post\Command\{closure}()
#10 /app/vendor/flarum/core/src/Post/Command/PostReplyHandler.php(105): Flarum\Notification\NotificationSyncer->onePerUser()
#11 /app/vendor/illuminate/bus/Dispatcher.php(122): Flarum\Post\Command\PostReplyHandler->handle()
#12 /app/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
#13 /app/vendor/illuminate/pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#14 /app/vendor/illuminate/bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
#15 /app/vendor/illuminate/bus/Dispatcher.php(78): Illuminate\Bus\Dispatcher->dispatchNow()
#16 /app/vendor/flarum/core/src/Discussion/Command/StartDiscussionHandler.php(82): Illuminate\Bus\Dispatcher->dispatch()
#17 /app/vendor/illuminate/bus/Dispatcher.php(122): Flarum\Discussion\Command\StartDiscussionHandler->handle()
#18 /app/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
#19 /app/vendor/illuminate/pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#20 /app/vendor/illuminate/bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
#21 /app/vendor/illuminate/bus/Dispatcher.php(78): Illuminate\Bus\Dispatcher->dispatchNow()
#22 /app/vendor/flarum/core/src/Api/Controller/CreateDiscussionController.php(61): Illuminate\Bus\Dispatcher->dispatch()
#23 /app/vendor/flarum/core/src/Api/Controller/AbstractSerializeController.php(110): Flarum\Api\Controller\CreateDiscussionController->data()
#24 /app/vendor/flarum/core/src/Api/Controller/AbstractCreateController.php(22): Flarum\Api\Controller\AbstractSerializeController->handle()
#25 /app/vendor/flarum/core/src/Http/RouteHandlerFactory.php(41): Flarum\Api\Controller\AbstractCreateController->handle()
#26 /app/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}()
#27 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ExecuteRoute->process()
#28 /app/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle()
#29 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Api\Middleware\ThrottleApi->process()
#30 /app/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle()
#31 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\CheckCsrfToken->process()
#32 /app/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle()
#33 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ResolveRoute->process()
#34 /app/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Laminas\Stratigility\Next->handle()
#35 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\SetLocale->process()
#36 /app/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(56): Laminas\Stratigility\Next->handle()
#37 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\AuthenticateWithHeader->process()
#38 /app/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(31): Laminas\Stratigility\Next->handle()
#39 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\AuthenticateWithSession->process()
#40 /app/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle()
#41 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\RememberFromCookie->process()
#42 /app/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle()
#43 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\StartSession->process()
#44 /app/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle()
#45 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Api\Middleware\FakeHttpMethods->process()
#46 /app/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle()
#47 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ParseJsonBody->process()
#48 /app/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle()
#49 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\HandleErrors->process()
#50 /app/vendor/flarum/core/src/Http/Middleware/InjectActorReference.php(25): Laminas\Stratigility\Next->handle()
#51 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\InjectActorReference->process()
#52 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(76): Laminas\Stratigility\Next->handle()
#53 /app/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process()
#54 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\RequestHandler->process()
#55 /app/vendor/middlewares/base-path-router/src/BasePathRouter.php(101): Laminas\Stratigility\Next->handle()
#56 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\BasePathRouter->process()
#57 /app/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(36): Laminas\Stratigility\Next->handle()
#58 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Laminas\Stratigility\Middleware\OriginalMessages->process()
#59 /app/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle()
#60 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Middlewares\BasePath->process()
#61 /app/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle()
#62 /app/vendor/laminas/laminas-stratigility/src/Next.php(51): Flarum\Http\Middleware\ProcessIp->process()
#63 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(76): Laminas\Stratigility\Next->handle()
#64 /app/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(65): Laminas\Stratigility\MiddlewarePipe->process()
#65 /app/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle()
#66 /app/vendor/flarum/core/src/Http/Server.php(44): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#67 /app/public/index.php(22): Flarum\Http\Server->listen()
#68 {main}
Is it just me or the link from the notification always goes to the first post instead of the reply it is notifying me for?
Example:
- I get a notification that a post I follow has a new reply
- I click on the notification
- It brings me to the first post on that discussion and not the one that was notified (or the last unread)
- Email notifications have links to the corresponding post, I would like to know if it is possible to replicate this for the push notifications
- Edited
when post:
POST https://mysite.com/api/posts
Error: Call to a member function getStatusCode() on null in /www/wwwroot/mysite.com/vendor/askvortsov/flarum-pwa/src/PushNotificationDriver.php:143
users can post successfully, but they will get a error message"oops ... "
What's strange is that admin user won't get this error.
Not sure if this is the right place for my question.
I have enable the PWA and then the webpage of http://localhost:8000/ got installed on my mac Launchpad. I tried to get rid of it, but cannot find it in the application folder, neither can I drag it to trash bin. Does anyone know, what can I do to uninstalled it? I believe I got it installed through chrome.
I enabled PWA on my forum and set Push notifications on my mobile. But when there was a post on a discussion I am following, there is no notification.
Update : Working on PC, but not on mobile. Tried both FF and Chrome.
[deleted]
meetdilip I had this exact issue some time ago and unfortunately never resolved it. I'm ready to take another look though as I really could do with this working.
I had a post repy today that did not notify my phone. I have everything enabled too. Was a bummer. I don't get enough posts/reply to test much
- Edited
For users receiving the "Unable to generate key" message:
You must upload at least one logo for your progressive web app to be installable.
I just tried it at FreeFlarum and it resolved the error. It's also mentioned at the extension page, but I think that many people didn't realize that. I think that this should be put "more on eyes" (maybe in a warning box when the key fails to generate). Or there should be a condition to check whether or not at least one image is uploaded, and show a warning based on that.
Edit: It seems that this doesn't always work. Not sure what is causing this