0
Help us understand the problem. What are the problem?

posted at

updated at

初見だけど爆速でできた!Botからユーザにダイレクトメッセージを送る方法(Webex API編)

React、node.js、Google Cloud Platform (App Enigine)でSORTFULというチームビルディングゲームを作る際に出てきた疑問を、備忘録として記事にまとめています。

はじめに

SORTFULは参加者それぞれにダイレクトメッセージで「数字」を送るところから始まります。
soortful1.PNG

この「メールアドレス情報から、ダイレクトメッセージを送る」というのが、今回の目的です。
Webexとslackを使いたいので、以下のような感じになります。

Webex
Webex6.PNG

slack
slack8.PNG

本記事はwebex のapiについて書いていきます。

webex for Developersに登録する

まずはwebex for DevelopersにSign Upします。
※Webexアカウントをお持ちの方は、そのアカウントでログインできます。

Webex1.PNG

メールアドレスの他、Google、Microsoftアカウントでも登録できます。
無料です。クレジットカードの登録などもありません。

WebexでBotを作る

Webex2.PNG

"Start Building Apps"からはじめます。

Webex3.PNG

今回はメッセージを送りたいのでBotを選びます。

Webex4.PNG

Botの名前、ユーザーネーム、アイコン、説明をそれぞれ入力したら、

Webex5.PNG

できあがりです!
このBot access tokenが必要なるので、コピーしておきましょう。

Botからメッセージを送る

メッセージの送り方はこちらを参考にしています。

今回は、メッセージを送りたい人がwebexアカウントに登録しているメールアドレスを使って、Botからダイレクトメッセージを届けます。
webexのAPIはtoPersonEmailという引数があるので、メールアドレスさえわかれば(その人がwebexアカウントを持っていれば)ダイレクトメッセージが遅れるのがいいですね。

以下はnode.jsでaxiosを使ってhttps://webexapis.com/v1/messages にpostしてます。
(これを書く前にPostmanなどでテストしてみるとわかりやすいかと思います。)

sendWebexMessage.js
const axios = require("axios");

async function sendMessage() {
  const url = "https://webexapis.com/v1/messages";
  const data = {
    toPersonEmail: `${メールアドレス}`,
    text: `送りたいメッセージ`,
  };
  const param = {
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + トークン,
    },
  };

  try {
    const res = await axios.post(url, data, param);
    if (res.status === 200)
      console.log(`The message sent successfully`);
  } catch (error) {
    console.log(error);
  }
}

これで完成!
ちなみに、↑ではトークンをベタ書きしてますが、本当は隠した方がいいので、環境変数とかに入れてくださいね。
環境変数の隠し方はコチラにメモしてます。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?