ᴂ
投稿
コメント
残念。 ”トークルーム一覧”を得るAPIは、”提供されていない”ではなくて、、、 「”隠しAPI”として提供されているものの、”公開されていない”」のですよね。。。 LineWorksのPC版web画面で、トークルームの並べ替えボタン(↑↓)を押した時のネットワークへのリクエストを観ると、下記の3つのHTTPリクエストで、”トークルーム一覧”の情報を得ることができているようです。 「 GET https://cc.worksmobile.com/cc?a=lnb................ ←oauth0風な、認証成功時のcallback-urlへのリダイレクト要求? POST https://talk.worksmobile.com/p/oneapp/client/api/setUserOptions ←channelの表示順をuser optionとして登録? POST https://talk.worksmobile.com/p/oneapp/client/chat/getUserChannelListByType ←サーバ側かcookieに登録されたオプションに従って、channelの一覧を取得。 このリクエストのJSON形式レスポンスの中の、result.official.channelList[0].channelExtras.channelIdとresult.official.channelList[0].titleの部分が、所望の情報です。 」 ”非公開”なAPIを未公開なままで使うと、「予告なく 仕様変更されて、いつの間にか 動かなくなる」というトラブルの元なので、現状で使うのはダメだとは思います。 では、上述の隠しAPIを 公式に公開していただいて、 「予告なく 仕様変更されて、いつの間にか 動かなくなることを避けるべく、仕様変更予告していただくような約束をしていただく」ような 要望先は、どこかに無いものでしょうか? あるいは、「GET https://www.worksapis.com/v1.0/bots/${botId}/channels」というAPIの追加要望ができれば、もっと良いですね。
Bot 2022.10.22
その他 2022.10.22
最近LineWorks APIを使い始めたばかりですが、 「途方もなく面倒で、実質的に不可能なことが在る」と判り始めました。 短く言えば、本件に対する 答えも「不可能」という事に成ると思います。 ------------------------------------------------------- まず、Node.js v17以降や目下最新版のnode.js v18系を使うなら、LineWorks API2.0を使う為のaccess-token取得すら、不可能でしょう。 次に、2024年頃には使えなくなるNode.js v16系で、LineWorks API2.0を使うなら、 LineWorksのBotの登録時にcallback URLも設定しておけば、 LINE WORKS のトークでやり取りしている諸々のmessageやファイルが、 下図に示すような、”メッセージ(Callback) 受信”に従ったJSON形式電文で、callback-urlに届くようです。 そのcallback-urlに届くいたJSON形式電文の”メンバーからのメッセージ”の中からfileIdを抽出したら、 lineWorksのコンテンツダウンロードAPIにfileIdを指定して、ファイルをダウンロードすればよいでしょう。 「GET/bots/{botId}/attachments/{fileId}」 さらに、そのファイルをアップロードしたのが”誰か”も記録したければ、userIdを抽出して、ユーザーの取得API「GET/users/{userId}」で、userIdのuserName.firstNameやlastNameを観ればよいでしょう。 でも、そのlineWorksのコンテンツダウンロードAPIを発行する処理は、 callback-urlをエンドポイントとするhttpサーバ内で実行する必要が生じるので、 ダウンロードできるファイルの大きさは、callback-urlをエンドポイントとするhttpサーバのプロセスメモリの割り当て量を下回る小さなファイルに限られるでしょう。 まずは、「Node.js v16の使用がセキュリティ脆弱性対策上 避けるベキ 2024年以降も、安定して動作しそうな処理方式が無い」という制限をどのように回避するか考えないとダメだし、他にも実装し始めると、他にも 色々 制約が出てきそうで、途方もないですよね。 ※参考URL: ・”メッセージ(Callback) 受信” https://developers.worksmobile.com/jp/reference/bot-callback?lang=ja ・ファイルをダウンロード https://developers.worksmobile.com/jp/reference/bot-attachment-get?lang=ja ・「Node.js」v16のサポート終了日(EoL)が前倒しに (「OpenSSL」v1.1.1のサポート終了に合わせて7カ月繰り上げ) https://nodejs.org/en/blog/announcements/nodejs16-eol/ ・Node.jsのバージョンがv17以降の場合、暗号関連機能使用箇所で、'ERR_OSSL_EVP_UNSUPPORTED'エラーが出る; ※下記の記事ではvue.jsでの報告ですが、私はLineWorks API2.0を使う為のaccess-token取得する処理で、同様な現象に遭遇しました。 https://qiita.com/kamada_math/items/4df6f153bb2d0159a4ff