何が間違っていますか?これまでの例のMarkdownリンクは、私のSlackアプリでは機能しません。
以下の例では、Slackアプリのチャットに貼り付けました。 slack markdown syntax からこの例を取得しましたが、それでもSlackアプリではリテラルテキストとして処理されます。
[like this](http://someurl)
だから、私はSlackチャットのリンクとして「このように」ではなく、それを見ることになります。
または、おそらく上記が間違っている場合、その場合、私の質問はSlackで明示的にリンクをどのように作成するのですか?特定のテキストをクリックして特定のURL(ハイパーリンク)にクリックできるようにします。
Slackは現在、ハイパーリンクをサポートしていません。 このリンク を参照してください:
注:Slackメッセージ内の単語をハイパーリンクすることはできません。
Slackは、独自のマークダウンのフレーバーを使用します。
スラックマークダウンリンクは次のように機能します:<http://someurl|like this>
注:これはSlack APIを介してのみ実行でき、Slackクライアントを介して送信する単純なメッセージとしてではありません。
これは、Slackによるダイレクトメッセージではまだサポートされていません。SlackAPIを使用してのみこれを行うことができます。しかし、あなたは 私がここに提出した機能リクエスト に賛成することができます。
Reuben の answer は機能しますが、ここに示すように無題のファイルのアップロードのように見えます: 無題のファイルがSlackに投稿された 。ただし、わずかな変更を加えるだけで、次のような動作するハイパーリンクを備えた自然なメッセージを簡単に投稿できます。 ハイパーリンク付きの自然なSlack投稿chat.postMessage を使用して= "files.upload"の代わりにSlack apiメソッドを使用し、Markdownの代わりにSlack独自の メッセージフォーマット を採用。これは次のように行われます。
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
link_names=true
引数はこの例では使用されていませんが、@
mentionユーザーと#
referがチャネルを参照できるようにするのに役立ちます。
Slackメッセージ( Wilhem の answer で説明)の代替として、APIを介してSlack投稿を作成し、少なくとも一部のマークダウンを使用できます。これらは両方とも<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
またはcontent="..."
を[email protected]
と交換
curl -F filetype=post -F [email protected] -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload
これは files.upload を使用しています。自分で投稿を試みる最も簡単な方法は、 レガシートークン を使用することです。チャンネルのURIからチャンネルIDを取得します。
テキスト内のマークダウンリンクを、slackが期待するリンク形式に変換するためにこのコードを書きました。
// 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}>`)
スラックは、テキスト内の画像リンクをサポートしていません。
パーティーに遅刻しましたが、URL短縮サービスを使用してhttpsリンクを作成し、マークダウンリンクを使用して参照できることを最近発見しました。