Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[Notifier] [Slack] [DX] Improve the DX #39560

Copy link
Copy link
Closed
@OskarStark

Description

@OskarStark
Issue body actions

Improvements for symfony/slack-notifier

The generic channel option

The problem:
Right now you can provide a channel= option, and you can pass nearly everything... 🤔

  • CHANNEL is a channel, private group, or IM channel to send message to, it can be an encoded ID, or a name.

This is the full DSN: SLACK_DSN=slack://TOKEN@default?channel=CHANNEL

I tried a lot to figure out WHAT you need to pass exactly:

  • If you want to wrote to the channel #support -> ?channel=support
  • If you want to wrote to the user @OskarStark -> ?channel=@OskarStark
  • If you want to wrote to the user @OskarStark you can also use the UserId, which can be found in your profile -> ?channel=U68xxxx 🤔 ✅
    ss

So far this looks ok, but there are some pitfalls we can avoid. One would think he can just use:

  • ?channel=#supportNO # sign allowed 😮
  • ?channel=OskarStarkNO, @ sign needed 😮
  • ?channel=@U68xxxxNO @ sign allowed 😮

My proposal:
A new user= (or handle=) and user_id= parameter.
We can now validate, that a channel must not start with #, a user must start with @ and a user_id must not start with @ (maybe it also has a dedicated length which can be taken into account).

So valid DSN would be:

  • slack://TOKEN@default?channel=support
  • slack://TOKEN@default?user=@OskarStark // slack://TOKEN@default?handle=@OskarStark
  • slack://TOKEN@default?user_id=@U68xxxx

The correct token - PR #39606

The Problem:
Because we switched back and forth from a token to a webhook_id, which can be considered a "token" too, it could be hard to find out, if you are using the correct token.

My proposal:
Let's validate the token syntax in the transport and give a clear error message.

Slack has a clear syntax for their tokens which makes us able to validate the syntax before we perform a request.

  • Bot user token strings begin with xoxb-
  • User token strings begin with xoxp-
  • Workspace access token strings begin with xoxa-2

Questions

  1. What type of token do you use?
  2. Are you using any other ids, channel-names etc. ?

cc @malteschlueter as we both had some trouble in the past

Metadata

Metadata

Assignees

No one assigned

    Labels

    DXDX = Developer eXperience (anything that improves the experience of using Symfony)DX = Developer eXperience (anything that improves the experience of using Symfony)NotifierStalled

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.