Slackで特定のメッセージを取得するby C#
はじめに
Slack APIで自動でメッセージを投稿して、
そのメッセージを別のチャンネルにメッセージを引用したので
その覚書
やりたいこと
chat.postMessage APIを利用して投稿した値のリクエストに対するレスポンスからtsを取得。
その後、chat.getPermalink APIのmessage_tsとして設定することにより
レスポンスとしてメッセージURLを取得できる。
その値をchat.postMe APIで投稿する。
今回はchat.getPermalink APIで設定する部分を紹介する。
公式ドキュメントは以下。
必要なあるいは設定できる引数やレスポンスの形式が記載されているので
APIを使う前に目を通した方が良い。
・chat.postMessage
https://api.slack.com/methods/chat.postMessage
・chat.getPermalink
https://api.slack.com/methods/chat.getPermalink
ソース
public class Responce
{
public string permalink{get; set; }
}
public string Main()
{
var parameters = new NameValueCollection();
//クエリ作成
parameters.ADD("token",["トークン"]);
parameters.ADD("channel",["チャンネルID"]);
parameters.ADD("message_ts",["取得したいメッセージのts"]);
using(var client = new WebClient())
{
//リクエストを送信し、レスポンスを取得
byte[] responceByte = client.Upload.Values("https://slack.com/api/chat.getPermalink",parameters)
string responceStr = Encoding.UTF8.GetDtring(responceByte);
Responce responce = JsonConvert.DeserializeObject<Responce>(responceStr);
//取得したメッセージのURLを返す
return (responce.permalink);
}
public class Responce
{
public string permalink{get; set; }
}
public string Main()
{
var parameters = new NameValueCollection();
//クエリ作成
parameters.ADD("token",["トークン"]);
parameters.ADD("channel",["チャンネルID"]);
parameters.ADD("message_ts",["取得したいメッセージのts"]);
using(var client = new WebClient())
{
//リクエストを送信し、レスポンスを取得
byte[] responceByte = client.Upload.Values("https://slack.com/api/chat.getPermalink",parameters)
string responceStr = Encoding.UTF8.GetDtring(responceByte);
Responce responce = JsonConvert.DeserializeObject<Responce>(responceStr);
//取得したメッセージのURLを返す
return (responce.permalink);
}
Content Type: application/x-www-form-urlencodedの形式で
トークン、チャンネルID、tsを引数としてリクエストを送信してやれば良い。
Author And Source
この問題について(Slackで特定のメッセージを取得するby C#), 我々は、より多くの情報をここで見つけました https://qiita.com/kakumeikatakesi/items/47ea2f129af583bc5099著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .