phallstrom / slackistrano

Slack integration for Capistrano deployments.
MIT License
373 stars 74 forks source link

Slackbot HTTP 404 Not Found #36

Closed seankibler closed 8 years ago

seankibler commented 8 years ago

When using slackbot integration the HTTP POST returns a 404.

My configuration of slackbot in config/deploy.rb looks like this:

set :slack_via_slackbot, true                                                                                         
set :slack_team, "actual team name"                                                                                         
set :slack_token, "a real token"                                                         
set :slack_channel, '#mx-deploy'                                                                                      
set :slack_username, 'mxdeploybot'

I run cap dev deploy and no message posts in slack. I run cap -t dev deploy and I can see the slack:deploy:updating task runs.

I run cap dev slack:deploy:updating and get no message in slack.

I go to gem source and assign Slackistrano.post(...) to a var and puts that var, it is HTTPNotFound class.

Looking at the Slackbot doc it seems like it uses websockets and I don't see any websockets implementation in slackistrano/slackistrano.rb. I assume this was an API change that happened after you wrote the slackbot integration in Slackistrano.

If my assumption is correct would you accept a PR removing the slackbot integration or documenting it as broken? I would be happy to do the legwork on that. Otherwise, if my assumption is incorrect, please advise.

phallstrom commented 8 years ago

I haven't used this option in awhile, nor will have time to investigate in for the next several days. Happy to have you look into it and/or post more information here.

phallstrom commented 8 years ago

@seankibler Still haven't gotten around to this. If you can provide more info or a PR that would be great. Or just links to the docs. I no longer use slackistrano daily so it doesn't get the attention it deserves I'm afraid.

seankibler commented 8 years ago

I plan to at least investigate more and I would really like to put some dev in and make a PR. I do have a 5 month old at home though so we'll see how that goes. Thanks for at least keeping tabs on this.

phallstrom commented 8 years ago

@seankibler Congrats!

seankibler commented 8 years ago

Why thank you, love being a dad, especially a work from home dad. Since my asshole neighbors and precious daughter have me up at the wee bits of the morning...

RTM API Announcement RTM API Doc

Of course the integration is far more complex now. I suspect some people would still find it valuable given RTM bot users are free and webhooks are not. I'm interested to hear your thoughts since I'm willing to take a shot at implementation, do you think it would be used?

I'm thinking only accept the minimal inbound events; the hello message type so we know the client is connected successfully, error events, and maybe handling message confirmations.

Their RTM API doc recommends clients regularly ping the connection to differentiate to the end user between the client being disconnected and inactivity. At first I thought this wouldn't apply to this use case but after thinking it over I realized complex deployments can take at least a couple minutes if not more, so we'd want to support that.

Lastly, I'd want to be a good little API user and have a guard against messages that violate the RTM API message maximum of 16kb. The advanced formatted messages would also be unavailable to RTM implementations as I understand it.

phallstrom commented 8 years ago

Asshole neighbors? Install a loud speaker on that side of the house hooked up to your baby monitor 😈

So, I just did a test using slackbot and it's working for me. My config:

set :slack_via_slackbot, true
set :slack_team, "myteam"
set :slack_token, "xxxxxx"
set :slack_channel, '#slackistrano'

I setup the Slack configuration here: https://slack.com/apps/A0F81R8ET-slackbot

Can you let me know if that page doesn't work for you? Maybe it's a grandfathered thing, but it is working for me right now.

seankibler commented 8 years ago

That page exists for me. I added that app integration to our team and configured it and It worked. I was trying with the wrong integration app using the "Bots" and not "Slackbot". My apologies, I didn't realize that existed, should have looked harder.

seankibler commented 8 years ago

Closing. Thanks!

Oh thanks for the baby monitor tip lol, although I'm taking the high road with those people. They are the "nothing to lose" type of people. Neighbor wars with people like them are always in vain. We planned on moving anyway, looking for something more rural. I'll miss good Internet but its worth it for my daughter to grow up in a safer place without Meth people drinking on their roof and people burning tires.

phallstrom commented 8 years ago

I think Bots is pretty new, an agree it's kind of confusing :/

Good luck with the rural/kiddo/life!