3104
|
1 |
# Introduction |
|
2 |
|
|
3 |
Lets you easily publish data to PubSub using a HTTP POST request. The |
|
4 |
payload can be Atom feeds, arbitrary XML, or arbitrary JSON. The type |
|
5 |
should be indicated via the `Content-Type` header. |
|
6 |
|
|
7 |
``` {.bash} |
|
8 |
curl http://localhost:5280/pubsub_post/princely_musings \ |
|
9 |
-H "Content-Type: application/json" \ |
|
10 |
--data-binary '{"musing":"To be, or not to be: that is the question"}' |
|
11 |
``` |
|
12 |
|
|
13 |
# Configuration |
|
14 |
|
|
15 |
## Authentication |
|
16 |
|
|
17 |
Authentication can be handled in two different ways. |
|
18 |
|
|
19 |
### None |
|
20 |
|
|
21 |
``` {.lua} |
|
22 |
pubsub_post_actor = "superuser" |
|
23 |
``` |
|
24 |
|
|
25 |
The module uses an internal actor that has all privileges and can always |
|
26 |
do everything. It is strongly suggested that you do not expose this to |
|
27 |
the Internet. *Maybe* it shouldn't be the default... |
|
28 |
|
|
29 |
### IP |
|
30 |
|
|
31 |
``` {.lua} |
|
32 |
pubsub_post_actor = "request.ip" |
|
33 |
``` |
|
34 |
|
|
35 |
Uses the IP address from the HTTP request as actor, which means this |
|
36 |
pseudo-JID must be given a 'publisher' affiliation. This should work |
|
37 |
nicely with the `autocreate_on_publish` setting, where the first actor |
|
38 |
to attempt to publish to a non-existant node becomes owner of it, which |
|
39 |
includes publishing rights. |
|
40 |
|
|
41 |
Prosodys PubSub module does not currently support [setting affiliations |
|
42 |
via XMPP](https://xmpp.org/extensions/xep-0060.html#owner-affiliations), |
|
43 |
but this is planned. |
|
44 |
|
|
45 |
It can however be done from another plugin: |
|
46 |
|
|
47 |
``` {.lua} |
|
48 |
local mod_pubsub = module:depends("pubsub"); |
|
49 |
local pubsub = mod_pubsub.service; |
|
50 |
|
|
51 |
pubsub:create("princely_musings", true); |
|
52 |
pubsub:set_affiliation("princely_musings", true, "127.0.0.1", "publisher"); |
|
53 |
``` |