Slack: Slack ID 取得 (Slack: Get Slack Id By Questetra Account User)
Slack ユーザープロファイルからID を取得します。Questetra アカウントメールアドレスをキーにユーザープロファイルが特定されます。IDを用いて、メンションが付加されたメッセージを投稿できます。
Configs
  • C1: OAuth2 設定 *
  • C2: Questetra アカウントユーザーが格納されているユーザ型データを選択してください *
  • C3: Slack ID が格納される文字列型データを選択してください(更新) *
Script (click to open)

main();
function main() {
  const oauth2 = configs.get("conf_OAuth2");
  let text = "";
  if (configs.get("Text") !== "" && configs.get("Text") !== null){
    text = configs.get("Text");
  }
  const quserNum = configs.get("conf_Quser");
  const email = engine.findDataByNumber( quserNum ).getEmail();
  const slackIdNum = configs.get("conf_SlackId");
  engine.log("email: " + email);
  const id = usersLookupByEmail(oauth2, email);
  engine.setDataByNumber( slackIdNum, id );
}
/**
  * users.lookupByEmail https://api.slack.com/methods/users.lookupByEmail
  * @param {String} oauth2 
  * @param {String} email
  */  
function usersLookupByEmail(oauth2, email) {

  let getUri = "https://slack.com/api/users.lookupByEmail";
  let request = httpClient.begin()
  if (oauth2 !== "" && oauth2 !== null){
    request = request.authSetting(oauth2);
  }
  request = request.queryParam( "email", email );
  const response = request.get( getUri );
  const status = response.getStatusCode();
  const responseTxt = response.getResponseAsString();

  let responseJson;
  try {
    responseJson = JSON.parse(responseTxt);
  } catch(e) {
    engine.log("failed to parse as json");
    engine.log(`status: ${status}`);
    engine.log(responseTxt);
    throw `Failed to users lookup By email. status: ${status}`;
  }

  if (responseJson.ok !== true ) {
    const error = `Failed to send`;
    engine.log(`status: ${status}`);
    engine.log(responseTxt);
    throw error;
  }
  engine.log('Slack Id:' + responseJson.user.id);
  return responseJson.user.id;
}

Download

2022-03-14 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/slack-get-id/
Addonファイルのインポートは Professional でのみご利用いただけます
自由改変可能な JavaScript (ECMAScript) コードです。いかなる保証もありません。

Notes

  • ビジネス・コミュニケーションツール「Slack」ユーザプロファイルから ID を取得します。
    • Slack へメッセージ投稿の際、IDをメンション指定で使用することができます。
    • メンション指定例 “<@XXXXXXXX>” (“XXXXXXXX”部分がIDです)
  • あらかじめ “Slackアプリ” を作成しておく必要があります。
    • 新規作成の場合 [設定と管理] > [アプリを管理する] > [ビルド] から “Create New App” を選択します。
    • 設定例
      • (Wizard)
        • App Name: “BPMS Notification”
        • Pick a workspace to develop your app in: (所属組織のワークスペースを選択)
      • Basic Information
        • App Credentials “Client ID”,”Client Secret” を取得
        • (Questetra “HTTP 認証設定”で使用します)
      • OAuth & Permissions
        • Bot Token Scopes: “users:read”,“users:read.email” を追加
      • Redirect URLs: “https://s.questetra.net/oauth2callback&#8221; を追加

Capture

Appendix

See also

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d