3

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 Molloy Oct 9 '18 at 13:24
4

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 result member for every member on the team, as well as member@name.xmpp.slack.com. None of the rooms appear in the result list. – Matthew Piziak Jul 11 '15 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... – legoscia Jul 12 '15 at 0:08
  • That works great, thanks very much! – Matthew Piziak Jul 12 '15 at 0:29
2

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.