Slack Markdown für Links wird nicht aufgelöst

159

Was mache ich falsch? Keiner der Beispiel-Markdown-Links funktioniert bisher in meiner Slack-App.

Ich habe das folgende Beispiel in einem Chat in meiner Slack-App eingefügt. Ich habe dieses Beispiel aus der Slack-Markdown-Syntax erhalten und es wird immer noch als wörtlicher Text in der Slack-App behandelt:

[like this](http://someurl)

Am Ende sehe ich das statt nur "so" als Link im Slack-Chat.

Oder vielleicht ist das Obige falsch. In diesem Fall wäre meine Frage, wie Sie explizit Links in Slack erstellen. Ich möchte, dass ein von mir angegebener Text auf eine bestimmte URL (Hyperlink) anklickbar ist.

PositiveGuy
quelle
1
Scheint ein ungelöster Fehler zu sein (funktioniert auch bei mir nicht) github.com/slackhq/hubot-slack/issues/114
Petr Gazarov
Sie implementieren diese Funktionalität nicht nur nicht, sie enthalten auch kein dunkles Thema! Dies ist empörend für solch ein beliebtes Werkzeug. Andererseits werden populäre Werkzeuge auf diese Weise plötzlich unbeliebt ...
pkaramol

Antworten:

195

Slack unterstützt derzeit keine Hyperlinks. siehe diesen Link, der sagt:

Hinweis : Es ist nicht möglich, Wörter in einer Slack-Nachricht zu verlinken.


AKTUALISIEREN:

Slack hat diese Funktionalität endlich zu seiner Chat-Oberfläche ( Quelle ) hinzugefügt :

  • Wählen Sie Text aus und klicken Sie auf das Link-Symbol in der Formatierungssymbolleiste
  • Wählen Sie Text aus und drücken Sie Cmd+ Shift+ Uauf dem Mac oder Ctrl+ Shift+ Uunter Windows / Linux.

Kopieren Sie den Link, den Sie freigeben möchten, und fügen Sie ihn in das leere Feld unter Link ein . Klicken Sie dann auf Speichern .

pillravi
quelle
14
Die Frage ist , und zwar um die slack-apidie tun Unterstützung Text verlinkt.
spencer.sm
5
Das ist unglücklich. Hyperlink gibt es seit mehr als 20 Jahren. Es ist schwer anzunehmen, dass dies ein Sicherheitsproblem ist. Das Einfügen von superlangen Links ist wirklich ärgerlich. Zumindest sollte Slack einen automatischen URL-Verkürzungsdienst hinzufügen (was natürlich optional wäre).
Superarts.org
1
Es scheint, dass dies jetzt möglich ist. Aber ich kann es nicht zum Laufen bringen. Egal was ich mache Slack empfängt nur Arrayals Nachricht im Kanal. Siehe die Beispiele hier: api.slack.com/messaging/composing/formatting#linking-urls
TJ Zimmerman
153

Slack verwendet seine eigene Markdown-Variante:
Slack Markdown-Links funktionieren folgendermaßen:<http://someurl|like this>

Hinweis: Sie können dies nur über die Slack-API tun und NICHT nur als einfache Nachricht, die Sie über den Slack-Client senden.

Beispiel für den Message Builder Weitere Informationen in den Dokumenten
Geben Sie hier die Bildbeschreibung ein

Wilhelm Klopp
quelle
63
Gibt es eine Möglichkeit, dies über den Slack-Client zu tun?
Chris Miller
5
Das glaube ich nicht. Slack möchte die Eingabe explizit nicht überkomplizieren. Mehr am Ende dieses Hilfeartikels
Wilhelm Klopp
260
Eine Möglichkeit, eine Überkomplikation zu vermeiden, wäre gewesen, sich an ein beliebtes und etabliertes Format zu halten ... wie Markdown. ;-)
joeytwiddle
72
+ joeytwiddle Das würde bedeuten, dass Slack absichtlich etwas tut, das benutzerfreundlich und intuitiv ist. Ich bin mir ziemlich sicher, dass dies gegen die Unternehmensrichtlinien verstößt.
Peter R
6
Bitte stimmen Sie dieser Feature-Anfrage hier zu: slack.canny.io/feature-requests/p/…
Jules Sam. Randolph
33

Dies wird von Slack für Direktnachrichten noch nicht unterstützt. Sie können dies nur mit der Slack-API tun. Sie können die hier eingereichte Feature-Anfrage jedoch positiv bewerten .

Jules Sam. Randolph
quelle
3
Sorry, defekter Link :(
Ocramot
Sie scheinen ihren schlauen Kanal deaktiviert zu haben, um Feature-Anfragen zu sammeln. Hoffe das ist nur vorübergehend.
Jules Sam. Randolph
Die Verbindung ist nicht unterbrochen. Sie haben das Board absichtlich deaktiviert. Grr.
Rhharrison
18

Ab heute, 2020.02.14, kann ich in einer der Slack-Instanzen, in denen ich Mitglied bin, Hyperlinks erstellen / einfügen! 🎉

Hyperlink-Screenshot

Beispiel Einfügen eines Hyperlinks aus dem Kopieren von Team-Meeting-Informationen in Slack:

Beispiel für einen Hyperlink einfügen


Slack hat ihre Dokumentation aktualisiert . Immer noch keine Markdown-Methode, 😢, dh [blah](https://stackoverflow.com)funktioniert nicht.


Ordentliche Funktion, wählen Sie Text und STRG + V aus, wenn sich eine URL in der Zwischenablage befindet und ein Hyperlink erstellt wird 🥳

Text auswählen & Strg + V Video]


Durch Reverse Engineering konnte ich Text über C # in die Windows-Zwischenablage einfügen und in Slack einfügen:

var textToDisplay = "Test";
var url = "https://stackoverflow.com";
var arbitraryText = "Mike D.";
var dataObject = new DataObject();
//to my surprise, the Fragment comments ARE required
dataObject.SetData(DataFormats.Html, @$"<html><body>
    <!--StartFragment-->
    <a href=""{url}"">{textToDisplay}</a>
    <!--EndFragment-->
    </body></html>");
//have to set the Text format too otherwise it won't work
dataObject.SetData(DataFormats.Text, arbitraryText);
Clipboard.SetDataObject(dataObject);
Spottedmahn
quelle
4
Upvoted, weil dies im Wesentlichen die Antwort ist. Ich liebe das Paste-to-Linkify, ich liebe den Hotkey ... leider habe ich ihr WYSIWYG deaktiviert, damit es nicht mehr mit anderen Dingen herumspielt, die ich zu schreiben versuche, und es scheint keine Alternative für diejenigen von uns zu geben, die glücklich sind Verwenden der Markdown-Formatierung (-ish) im Klartext.
Tyler James Young
@ Tyler . Ich bin froh, dass ich nicht der einzige bin, der das auch tut!
frakman1
1
Ich habe es geschafft, es ohne die Fragmentkommentare zum
Laufen zu bringen
5

Die Antwort von Reuben wird funktionieren, aber es wird wie ein Upload von Dateien ohne Titel aussehen, wie hier zu sehen: Datei ohne Titel, die in Slack gepostet wurde . Mit einer geringfügigen Änderung können Sie jedoch problemlos eine natürlich aussehende Nachricht mit einem funktionierenden Hyperlink veröffentlichen, wie Sie hier sehen: Natürlich aussehender Slack-Beitrag mit Hyperlink, indem Sie die API-Methode chat.postMessage Slack anstelle von "files.upload" verwenden und Slack's übernehmen eigene Nachrichtenformatierung anstelle von Markdown. Das würde so gemacht werden:

curl -F text="*<https://someurl|like this>*" -F as_user=true -F link_names=true -F channel=C1.....7L -F token=xoxp-... https://slack.com/api/chat.postMessage

Das link_names=trueArgument wird in diesem Beispiel nicht verwendet, ist jedoch hilfreich, um @Benutzer erwähnen und #auf Kanäle verweisen zu können.

Michael Roberts
quelle
5

Fügen Sie die URL direkt in den markdownText ein und sie wird vom Server automatisch in einen Link umgewandelt.

schreibe so. (Es funktioniert nur mit der Slack-API. Slack-Bots / Slack-Apps)

<http://www.example.com|This message *is* a link>

Referenz: https://api.slack.com/messaging/composing/formatting#linking-urls

Prakhil TP
quelle
2
Es ist etwas irreführend, diesen Beitrag mit "So verlinken Sie gelegentlich auf URLs in Konversationen" zu beginnen und schließlich anzugeben, dass dies nur funktioniert, wenn Sie eine Nachricht über die API veröffentlichen (so nehme ich als Mensch nicht zufällig an Konversationen teil).
Tyler James Young
4

Als Alternative Nachrichten zu Slack (verdeckt in Wilhem ‚s Antwort ), können Sie Slack Beiträge über die API und die Verwendung zumindest einige Markdown erstellen. Diese beiden schaffen <h2><a href="https://someurl">like this</a></h2>:

curl -F filetype=post -F content="# [like this](https://someurl)" -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload

oder tauschen content="..."für[email protected]

curl -F filetype=post -F [email protected] -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload

Dies verwendet files.upload . Ich denke, der einfachste Weg, um zu versuchen, wie Sie selbst zu posten, ist mit einem Legacy-Token . Rufen Sie die Kanal-ID aus der URI des Kanals ab.

Ruben
quelle
0

Ich habe diesen Code geschrieben, um Markdown-Links innerhalb eines Textkörpers in das Link-Format zu konvertieren, das Slack erwartet:

      // Pretty hacky, convert [sup](http://foo.com) to <http://foo.com|sup>
      const reformatLinks = /\[(.*?)\]\((.*?)\)/g
      const slackBody = body.replace(reformatLinks, (_m, text, url) => `<${url}|${text}>`)

Soweit ich weiß, unterstützt Slack keine Bildlinks im Text.

Rattenbart
quelle
-2

Super spät zur Party, aber ich habe kürzlich festgestellt, dass Sie einen URL-Shortener verwenden können, um einen https-Link zu erstellen, auf den Sie dann mithilfe von Markdown-Links verweisen können.

NoobishSRE
quelle