# NAME Net::Matrix::Webhook - A http->matrix webhook # VERSION version 0.901 # SYNOPSIS Net::Matrix::Webhook->new({ matrix_home_server => 'matrix.example.com', matrix_user => 'your-bot', matrix_password => '12345', http_port => '8765', # = default })->run; # or use the wrapper script http2matix.pl included in this distribution http2matrix.pl --matrix_home_server matrix.example.com --matrix_user your-bot --matrix_password 12345 # Then send your requests curl http://localhost:8765/?message=hello%2C%20world%21 # DESCRIPTION L\[matrix|https://matrix.org/\] is an open network for secure, decentralized communication. A bit like IRC, but less 90ies. `Net::Matrix::Webhook` implements a webhook, so you can easily post messages to your matrix chat rooms via HTTP requests. It uses [IO::Async](https://metacpan.org/pod/IO%3A%3AAsync) to start a web server and connect as a client to matrix. It will then forward your messages. Per default, everybody can now post to this endpoint. If you want to add a tiny bit of "security", you can pass a `secret` to `Net::Matrix::Webhook`. If you do this, you will also have to send a `token` consisting of a `sha1_hex` of the message and the secret: my $token = sha1_hex( encode_utf8($msg), $secret ); request('http://localhost:8765/?message=hello%2C%20world%21&token='.$token); # OPTIONS If you use [http2matrix](https://metacpan.org/pod/http2matrix), you can pass the options either via the commandline as `--option` or via ENV as `OPTION`, for example `--matrix_home_server matrix.example.com` or `MATRIX_HOME_SERVER=matrix.example.com` ## matrix\_home\_server Required. The hostname of your matrix home server. Without the protocol! ## matrix\_room Required. Example: `#dev:example.net` The room you want the bot to join. The bot-user has to be invited to this room. To get the room address, use [riot](https://metacpan.org/pod/riot), go to the "room settings" and find the "main address" in "published addresses". You might need to set it first via "local address" - "add". ## matrix\_user Required. The user name of your bot. You will have to set up an account for this user on your matrix home server. ## matrix\_password Required. The password of your bot. ## http\_port Optional. Default: 8765 The HTTP port the webserver will use. ## secret Optional. A shared secret to calculate / validate the optional `token` parameter, for a little bit of "security". # OUTPUT Output happens via `Log::Any`. If you use [http2matrix.pl](https://metacpan.org/pod/http2matrix.pl), you can use environment vars `LOGADAPTER` and `LOGLEVEL` to finetune the output. # SEE ALSO - [https://matrix.org/](https://matrix.org/) - [Net::Async::Matrix](https://metacpan.org/pod/Net%3A%3AAsync%3A%3AMatrix) # THANKS Thanks to - [validad.com](https://www.validad.com/) for supporting Open Source. # AUTHOR Thomas Klausner # COPYRIGHT AND LICENSE This software is copyright (c) 2020 - 2021 by Thomas Klausner. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.