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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Slack

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

Q&A

解決済

1回答

2372閲覧

Slackの投稿からユーザー名を取り出せない

4242

総合スコア8

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Slack

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

0グッド

0クリップ

投稿2020/04/22 01:17

前提・実現したいこと

Slackの投稿をSpreadsheetに抽出したい。

発生している問題・エラーメッセージ

ユーザー名の取り出し方がわからない。

該当のソースコード

GAS

1function doPost(e) { 2 3 var json = JSON.parse(e.postData.getDataAsString()); 4 5 if (json.type === 'url_verification') { 6 return ContentService.createTextOutput(json.challenge); 7 } 8 9 var channel = json.event.channel; 10 var text = json.event.text; 11 var userName = e.parameter.username;

以下、書き込むところはうまく動いていると思います、、、

試したこと

postDataの中にはユーザーIDしかなくて、ユーザー名は含まれていないと聞いたので、
e.parameterから取ろうと思ったのですが、username、user_name、userNameなど試しましたが取れません。。。
そもそもなにか足りないのでしょうか。
(この部分、どこを見たら書き方がわかるんでしょうか。。。)

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

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

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

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

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

guest

回答1

0

ベストアンサー

SlackのAPIで取得できる「user_name」とは

からすると、

ユーザーID(ユーザーごとにユニークで振られる英数字)は変わらないので,それを使ってメンバー一覧APIなどから取得するのが一番整合性が取れる方法だろう.

上のSlackアプリ内のスクショで黒塗りしてある場所が,自分のユーザーIDとなる.チーム全員の情報が欲しい場合は,メンバー一覧API( users.info )を叩けば取得できる.

とのことです。

投稿2020/04/22 01:47

mike2mike4

総合スコア891

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

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

4242

2020/04/22 02:29

ありがとうございます。 >user_name は,Slackアプリ上の設定項目には無い で混乱しました。 ご教示いただいた方法だと、メンバー一覧は別に取っておいて、IDで照合して別に登録するということですね、 Slackに投稿したときに表示される名前の部分を、投稿の情報から抜き出すことは不可能なんでしょうか。 ユーザー名ではなく氏名か表示名という言い方のほうが適切かもしれません。。。 わかりにくい言い方で申し訳ありません。
mike2mike4

2020/04/22 06:53

slackに書き込むアプリは作ってみたことがありますが、名前を取ってくるコードは書いたことがないでなんとも言えません。
papinianus

2020/04/26 15:13

> Slackに投稿したときに表示される名前の部分を、投稿の情報から抜き出すことは不可能 不可能です。 var json の json を Logger.logすれば分かるはずです。
4242

2020/04/27 01:53

そうなんですね。 doPost(e)の中でLogger.logすることができなくて中身が見えず困っておりました。 IDリストから紐付けして出力するようにいたします。 ありがとうございました。
papinianus

2020/04/27 02:32 編集

doPost で実行された Log は stackdriver logging から見えないですかね。 見えないとしてもシートに書くとかメールを送るとかファイルに書くとか手はありそうです。 → 別の質問で確認しました。anonymous で実行した dopost はログに残らないようです。失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問