I can connect with Slack through jabber
and chat with individual users, but I can't join channels. There are some instructions here, but I don't know which jabber
commands to use. I've tried jabber-muc-join
and jabber-groupchat-join
, but neither of those seem to work. I use conference.name.xmpp.slack.com
for the server name.
-
start a jabber call in slack with slack command: /jabbercall– Mike MolloyOct 9, 2018 at 13:24
2 Answers
The Slack XMPP server doesn't provide correct information about chat rooms in response to an information discovery query. Could you try the following function and see if M-x jabber-join-slack-room
lets you join the room?
(defun jabber-join-slack-room (jc group nickname)
(interactive
(let ((account (jabber-read-account))
(group (jabber-read-jid-completing "group: ")))
(list account group (jabber-muc-read-my-nickname account group))))
;; The Slack server does not return a proper disco result:
;;
;; 1. The disco response has no 'from' attribute. It should be
;; copied from the 'to' attribute of the request, so that the client
;; can correlate the request and the response.
;;
;; 2. The response doesn't contain an identity of "conference",
;; which jabber.el looks for to confirm that this is in fact a
;; conference room. (It would be confusing to try to "join" one of
;; your contacts.)
;;
;; 3. The disco response doesn't contain the feature
;; "muc_passwordprotected", so jabber.el doesn't know that it needs
;; to provide a password.
;;
;; Therefore, let's seed the correct information into the disco
;; cache before joining the room.
(jabber-disco-got-info
jc `(iq ((type . "result")
(from . ,group)
(id . "emacs-iq-21272.27175.175195")
(xmlns . "jabber:client")
(to . ,(jabber-connection-jid jc)))
(query ((xmlns . "http://jabber.org/protocol/disco#info"))
(identity ((category . "conference") (type . "text")))
(feature ((var . "http://jabber.org/protocol/muc")))
(feature ((var . "muc_passwordprotected")))))
(list nil))
(jabber-muc-join jc group nickname t))
I brought these issues to the attention of the Slack team in March 2014.
-
When I invoke
jabber-join-slack-room
, it returns a resultmember
for every member on the team, as well asmember@name.xmpp.slack.com
. None of the rooms appear in the result list. Jul 11, 2015 at 22:42 -
Right, you'll have to type in
roomname@conference.name.xmpp.slack.com
. Not sure if there's a way to get tab completion for existing rooms...– legosciaJul 12, 2015 at 0:08 -
It's a bug.
I've raised a ticket on jabber.el, and notified Slack of the problem. Their first tier support has escalated it; hopefully it'll be fixed soon.