質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

1回答

4401閲覧

Slack APIで特定のチャンネルIDのチャンネル名を取得する方法がわからないです

kumakuma112

総合スコア21

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2021/10/15 12:13

Slack APIで特定のチャンネルIDのチャンネル名を取得したく、conversations.listを使ってチャンネル情報を全件取得の上で、 idと一致するものを探すコードをGASで書きました。

しかし、APIの使用を見るとlimitの上限が、デフォルトで100件、多くても1000件らしく、個数制限されているため、超えた場合にマッチしなくなるので困っています。
https://api.slack.com/methods/conversations.list

js

1function getCurrentDirectoryChannel(token, channelId) 2{ 3 var token = PropertiesService.getScriptProperties().getProperty('SLACK_ACCESS_TOKEN'); 4 var channelId = 'C2DJxxxx'; 5 var userId = 'U4GHxxxxx'; 6 var currentDirectorychannel = { 7 id: '', 8 name: '' 9 }; 10 var url = "https://slack.com/api/conversations.list"; 11 var options = { 12 "method" : "get", 13 "contentType": "application/x-www-form-urlencoded", 14 "payload" : { 15 "token": token 16 17 } 18 }; 19 var response = UrlFetchApp.fetch(url, options); 20 var json = JSON.parse(response); 21 22 for(var i = 0; i < json.channels.length; i++) { 23 if(json.channels[i].id == channelId) { 24 currentDirectorychannel.id = json.channels[i].id; 25 currentDirectorychannel.name = json.channels[i].name; 26 break; 27 } 28 } 29 return currentDirectorychannel 30}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Slack APIで特定のチャンネルIDのチャンネル名を取得したく

という内容とコードから、指定されてくるチャンネルIDがほぼ確実に存在すると仮定します。
その場合は、conversations.listではなくconversations.infoを使うべきだと思います。

API document

そのIDのチャンネルが無いならその旨レスポンスには乗っかってくるので、
適切にエラーハンドリングすれば問題ないような気がします。

投稿2021/10/17 14:10

attakei

総合スコア2738

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問