slackapi / bolt-js

A framework to build Slack apps using JavaScript
https://tools.slack.dev/bolt-js/
MIT License
2.75k stars 393 forks source link

unfurl_links: false works with chat.postMessage but not with chat.scheduleMessage #1387

Open vladislavrazumov opened 2 years ago

vladislavrazumov commented 2 years ago

Description

Specifying unfurl_links: false seems not working for scheduleMessage method, but it works fine for postMessage. I send a couple of links, and a result message becomes a bit messy if all the links get previews so I would like to prevent automatic links unfurling. It's worth mentioning that I run scheduleMessage in a cron job, and send time varies from a couple of minutes to 12 hours but the result is always the same.

Here is a Slack doc about unfurling

What type of issue is this? (place an x in one of the [ ])

Requirements (place an x in each of the [ ])


Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

package version: 3.8.1

node version: v14.17.1

OS version(s): MacOS 11.6, linux-based OS on remote server

Steps to reproduce:

  1. Call chat.scheduleMessage method with unfurl_links: false param

Expected result:

The scheduled message will not be automatically unfurled after being sent to a user. The same way as if you specify unfurl_links: false for chat.postMessage

Actual result:

The scheduled message will be automatically unfurled after being sent to a user

Attachments:

The result message will be unfurled

      const response = await app.client.chat.scheduleMessage({
        channel: user.channel_id,
        post_at: timestamp,
        token: team.bot_token,
        blocks: [{
          type: 'section',
          text: {
            type: 'mrkdwn',
            text: `${welcomeMessage}\n${joinedSkills}`
          }
        }],
        text: welcomeMessage,
        unfurl_links: false,
        unfurl_media: false
      });

The result message will not be unfurled

      const response = await app.client.chat.postMessage({
        channel: user.channel_id,
        token: team.bot_token,
        blocks: [{
          type: 'section',
          text: {
            type: 'mrkdwn',
            text: `${welcomeMessage}\n${joinedSkills}`
          }
        }],
        text: welcomeMessage,
        unfurl_links: false,
        unfurl_media: false
      });

Interface of scheduleMessage arguments in typescript. It's the reason why I actually try to send this param

export interface ChatScheduleMessageArguments extends WebAPICallOptions, TokenOverridable {
    channel: string;
    text?: string;
    post_at: string | number;
    as_user?: boolean;
    attachments?: MessageAttachment[];
    blocks?: (KnownBlock | Block)[];
    link_names?: boolean;
    parse?: 'full' | 'none';
    reply_broadcast?: boolean;
    thread_ts?: string;
    unfurl_links?: boolean;
    unfurl_media?: boolean;
    team_id?: string;
}
srajiang commented 2 years ago

@vladislavrazumov - Thanks for providing your code here and for the helpful description of the behavior. If unfurl_links: false is not respected then it would be an issue server-side. API docs on the message say unfurl_links and unfurl_media should both be respected.

Let me try to reproduce this on my end - if I can I'll mark this as server-side and follow up with an internal team.

vladislavrazumov commented 2 years ago

@srajiang - Thanks for looking into this! Did you have a chance to reproduce the issue? I'll be happy to provide more details and try some other things if it helps

M1kep commented 2 years ago

I can also reproduce this:

import { Middleware, SlackEventMiddlewareArgs } from '@slack/bolt';
import moment from 'moment';

export const handleFurlTestMessage: Middleware<SlackEventMiddlewareArgs<'message'>> = async ({
    event,
    client,
}) => {
    const timeToSend = moment().add(10, 'seconds').format('X');

    const buildPayload = (url: string) => {
        return {
            channel: event.channel,
            blocks: [
                {
                    type: 'section',
                    text: {
                        type: 'mrkdwn',
                        text: `${url}`,
                    },
                },
            ],
            text: 'Test',
            unfurl_links: false,
            unfurl_media: false,
        };
    };

    await client.chat.postMessage({
        ...buildPayload('https://slack.com'),
    });

    await client.chat.scheduleMessage({
        ...buildPayload('https://api.slack.com'),
        post_at: timeToSend,
    });
};

CleanShot 2022-04-07 at 17 32 48

github-actions[bot] commented 2 years ago

👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

M1kep commented 2 years ago

Not stale.

github-actions[bot] commented 2 years ago

👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

richtu4n commented 2 years ago

I'm also having this issue. It would be great if Slack could provide a timeline for getting this fixed!

github-actions[bot] commented 2 years ago

👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

hello-ashleyintech commented 2 years ago

Removing the auto-triage-stale label since this looks like it still needs some follow-up. @vladislavrazumov, @M1kep, @richtu4n - are you still experiencing this issue?

M1kep commented 2 years ago

@hello-ashleyintech I confirmed this is still reproducible with the same code I posted above

hello-ashleyintech commented 2 years ago

@M1kep thanks for the confirmation! I have raised this issue internally and will circle back once I receive an update.

github-actions[bot] commented 2 years ago

👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

hello-ashleyintech commented 2 years ago

Dropping in an update here - this has been escalated internally and is on the responsible team's radar and roadmap as a fix! I will drop in any updates as they come in for this issue about the status of the fix - it may take some time since it was just added to their roadmap and they have a few other things lined up, so I'll be sure to be as communicative as possible when I hear anything and also make a note to follow up on this if I don't hear anything in a certain period of time. Thank you so much for reporting this and also for your patience! 🙌

github-actions[bot] commented 1 year ago

👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

hello-ashleyintech commented 1 year ago

👋 Bumping this up to keep the issue open since it has been placed on the responsible team's radar. I will keep an eye out for any updates as they come in for this issue about the status of the fix, but still none yet so far. I have a reminder set to follow up on this after the holidays, however, if I don't hear anything by then, so I will keep bumping this up and posting updates accordingly!

github-actions[bot] commented 1 year ago

👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

hello-ashleyintech commented 1 year ago

Removing the label - haven't heard any details yet but it is approaching the end of the quarter, so was planning to follow up mid January.

ve-varun-sharma commented 1 year ago

Memes (10)

hello-ashleyintech commented 1 year ago

Hello, everyone! 👋 Wanted to check in and drop an update - I haven't forgotten about this issue! I have surfaced this to a few teams since I first responded here, but unfortunately we're going through a time period right now where there just isn't any bandwidth for those teams to take a look at this issue.

This issue has been officially reported and tracked internally, so now it's just a matter of teams finding that availability to take on the work. I am checking in with them every few weeks to resurface this and see where this issue can fit into their roadmaps, and I will absolutely be sure to update once I hear more. Apologies for the delay on this issue and also for my lapse between updates! I was hoping to have a more clear timeline for the fix, and hopefully by my next update I will.

MattB543 commented 1 year ago

@hello-ashleyintech Just ran into this bug myself and found this thread. Would love for it to be fixed! (over 1 year anniversary since the bug was posted 🎂)

hello-ashleyintech commented 1 year ago

Just wanted to drop in with another update (thanks for bumping this up, @MattB543!) - the team that owns this functionality has this bug on their radar in their backlog as part of a rotating triage shift where they pick up various tickets in the backlog.

As of right now, it hasn't yet been picked up since the team does have limited bandwidth. I am tracking the ticket as well, so I will be sure to check in once I see someone has picked it up! Again, apologies for the delay on resolving this issue and I will try to continue to update at least once a month until this issue is resolved.

hello-ashleyintech commented 1 year ago

hi, folks! Wanted to add a monthly update - this issue has not yet been picked up in the team's triage shift. I am actively tracking it, will continue to update monthly and / or as I receive ticket updates! 🙇

hello-ashleyintech commented 1 year ago

👋 Another monthly update - the issue has not yet been picked up in the team's triage shift. We've had a few projects in the works, so bandwidth has likely been limited due to that. Later in June, once that work clears up a bit more, I'll follow up with the team again to boost this!

hello-ashleyintech commented 1 year ago

Back again with another monthly update - this ticket has not been picked up yet by the team; their bandwidth is still spread across some other upcoming initiatives. Will follow up again next month, hoping to follow up with the team again by then!

hello-ashleyintech commented 1 year ago

Hello! 👋 Just an update that I haven't yet heard back from the team about their bandwidth / ability to prioritize this issue, so I will make sure to re-follow up in the next week (reached out last week). In the meantime, if you're also experiencing this issue, please react to the original issue message with a 👍 emoji - it helps us gauge impact of this issue and will potentially help prioritize it faster.

In the event that the team does not have bandwidth to solve this issue soon, I'll take a look at alternative courses of action we have to solve this such as finding someone else to tackle this or coming up with a workaround. Apologies for the delay in this and thank you so so much for your patience! 🙇

nairi-harutyunyan-deel commented 9 months ago

Any updates regarding this issue?

itskoBits commented 8 months ago

Any updates on this issue? It has been almost 2 years since it was reported for the first time.

hello-ashleyintech commented 6 months ago

Hello 👋 @nairi-harutyunyan-deel @itskoBits and others following along! Apologies for the delay - still no updates, we've had a bit of shifting around of priorities, so this issue has fallen by the wayside in the appropriate team's triage backlog due to other projects. I do believe this fix would require a DB migration, which is why it hasn't been pursued as quickly.

To raise it as a higher priority and emphasize the impact of this bug on your apps, I would recommend emailing feedback@slack.com to raise this to the team. Feel free to reference this triage issue - the more feedback they get about this, the higher the priority this can be! Please let me know if there are any further questions, and I am so sorry for the delay of this bug fix!

ve-varun-sharma commented 4 months ago

giphy-downsized-large

ericmutta commented 3 months ago

@hello-ashleyintech I just run into this issue myself...it's been TWO years since it was reported. Given that postMessage and scheduleMessage pretty much do the same thing (just at different times), why does the bug even exist at all? This is so frustrating!

filmaj commented 3 months ago

@ericmutta please e-mail feedback@slack.com and reference this issue, letting them know you would like to see this fixed. We (the team maintaining the Bolt SDKs) have done all we can to advocate to get this fixed; we do not decide on priorities, however. Apologies.