callbackのleftイベントで取得できるmembers配列中の値をuserIdに変換するには?

kassy11

2022.02.24既読 1635

現在API2.0を用いてLINEWORKSボットを作成しており、ボットの参加しているグループにおいてメンバーが退出した際の動作を実装しています。

Left Eventで渡ってくるJSONを見てみると以下のようになっており、members配列にはLINE WORKSでのトークIDが渡ってきているようです。

```

{
  "type":"left",
  "source":{
     "channelId":"12345678"
  },
  "issuedTime":"2022-02-24T03:38:04.331Z",
  "members":[
     "someone_test1@example"
  ]
}
```
このようなトークIDをユーザIDに変換し(ex. someone_test1@example から userf7da-f82c-4284-13e7-030f3b4c756x に変換する)、ユーザ取得APIを呼び出したいと考えています。
変換する方法などはありますでしょうか?

コメント3

  • 업데이트 된 답글입니다.

    Nick

    ユーザー取得APIを呼び出すだけであれば、そのまま someone_test1@example を使うという方法では解決できませんでしょうか?

    2022.02.28

    1
  • 업데이트 된 답글입니다.

    kassy11 投稿者

    Message Eventで受信したuserIdをDBに保存し、ユーザを識別しようとしているため、なにか変換できる方法はないのかなと思いました。

    ```

    {
     "type": "message",
     "source": {
       "userId": "c72af563-0f21-4736-11e4-045237113344",
       "channelId": "12345"
     },
     "issuedTime": "2022-01-04T05:16:05.716Z",
     "content": {
       "type": "text",
       "text": "hello"
     }
    }
    ```

    2022.02.28

    0
  • 업데이트 된 답글입니다.

    Nick

    私が思いつく方法としては下記の方法くらいです。
    ①ユーザーリスト取得で事前にユーザー一覧を取得しておいてDBに保存しておいて変換。(追加のたびにマスタの更新は必要)
    ②Message Event で取得した  「"userId": "c72af563-0f21-4736-11e4-045237113344"」 でユーザー取得APIを呼び出しその戻り値の email を取得し、その値をDBに保存

    2022.02.28

    1
前の投稿Webhook連携について
次の投稿ユーザーの取得 - email の内容について
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。