Software /
code /
prosody-modules
Comparison
mod_http_roster_admin/README.markdown @ 3006:e6f91e00b507
mod_http_roster_admin: Add missing protocol docs
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 29 Apr 2018 08:33:54 +0100 |
parent | 2312:234d679076c4 |
child | 3007:af1b3cef52e1 |
comparison
equal
deleted
inserted
replaced
3005:902ecd6400bd | 3006:e6f91e00b507 |
---|---|
42 | 42 |
43 When the user *john* then connects to Prosody, and `http_roster_url` is | 43 When the user *john* then connects to Prosody, and `http_roster_url` is |
44 set to “http://app.example.org/contacts/%s”, then Prosody will make a | 44 set to “http://app.example.org/contacts/%s”, then Prosody will make a |
45 GET request to http://app.example.org/contacts/john | 45 GET request to http://app.example.org/contacts/john |
46 | 46 |
47 ## Notifying Prosody of roster changes | 47 ## Protocol |
48 | |
49 ### Fetching rosters (Prosody to web app) | |
50 | |
51 Prosody considers the web application to always hold the most accurate and up-to-date | |
52 version of the user's roster. When a user first connects, Prosody fetches the roster | |
53 from the web application and caches it internally. | |
54 | |
55 Prosody will make a GET request to the URL specified in Prosody's configuration parameter | |
56 'http_roster_url'. In this URL, the pattern '%s' is replaced by an URL-encoded username. | |
57 | |
58 For example, when the user 'john' connects to Prosody, and http_roster_url is set | |
59 to "http://app.example.com/contacts/%s", Prosody will make a GET request to "http://app.example.com/contacts/john". | |
60 | |
61 The web app must return a JSON object, where each key is the JID of a contact, and the corresponding | |
62 value is data about that contact. | |
63 | |
64 If the user 'john' has friends 'marie' and 'michael', the web app would return a HTTP '200 OK' response | |
65 with the following contents: | |
66 | |
67 { | |
68 "marie@example.com": { | |
69 "name": "Marie" | |
70 }, | |
71 | |
72 "michael@example.com": { | |
73 "name": "Michael" | |
74 } | |
75 } | |
76 | |
77 ### Notifying Prosody of roster changes | |
48 | 78 |
49 The external service needs to notify Prosody whenever a user's roster | 79 The external service needs to notify Prosody whenever a user's roster |
50 changes. To do this, it must make an HTTP POST request to either: | 80 changes. To do this, it must make an HTTP POST request to either: |
51 | 81 |
52 - http://localhost:5280/roster_admin/refresh | 82 - http://localhost:5280/roster_admin/refresh |