/MMM-HTTP-Client

Do HTTP requests triggered by notifications from the MagicMirror Server

Primary LanguageJavaScriptApache License 2.0Apache-2.0

MMM-HTTP-Client

Do HTTP requests triggered by notifications from the MagicMirror Server.

This module use the Browser Fetch API on the node.js backend to do the actual http requests. The node-fetch packages is used to port the Fetch API to node.js.

This module does not provide any visual component, it's only an utility used by other modules via the notification mechanism of MagicMirror.

this.sendNotification("MMM-HTTP-Client-REQUEST", {
    url: "https://example.com/api/webhook",
    options: {
        method: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify({ data: 17 })
    }
});

Because the fetch() is executed on the node.js server, there are less restrictions on the requests you can do. You don't have to care about Cross-Origin, Content Security Policy and Mixed Content. But there are also downsides and limitations. You can read more about them in the node-fetch docs.

Installation

cd modules
git clone https://github.com/Legion2/MMM-HTTP-Client.git
cd MMM-HTTP-Client
npm install

Using the module

To use this module, add the following configuration block to the modules array in the config/config.js file:

var config = {
    modules: [
        {
            module: "MMM-HTTP-Client"
        }
    ]
}

Module notifications

Notification Payload Description
MMM-HTTP-Client-REQUEST object Do a http request from the node.js server. The payload is the request object, which must define the url of the request and can also define an optional options object for the fetch() call, see init parameter.