Service Account認証 (JWT)を利用した画像データの取得に関して

sugiyama

2023.02.27既読 821

lambda上のnode.jsにてbotを操作しております。

API2.0 への移行に伴い、ユーザーがbotに対して送信した画像データの取得が出来ず困っております。

(ユーザーとbotの1対1のトークルーム)

現状の処理は以下の通りです。

--------------------------------------------------------------------------------------------------

const headers = {
           Authorization: 'Bearer ' + {accessToken}
       };
       let options = {
           url: `https://www.worksapis.com/v1.0/bots/{botId}/attachments/{fileId}`,
           method: 'GET',
           headers: headers,
       };
       return request(options, function (body, response, error) {
           return body;
       });
--------------------------------------------------------------------------------------------------
エラー内容としては以下の通り、認証エラーとなっております(statusCode:401)
{ "code": "UNAUTHORIZED", "description": "Authentication failed." }
直前の処理で画像を送信したユーザーへ送信した画像の確認のための処理があり、
同じアクセストークンを使用して、トークルームへ画像データを送る処理は出来ております。
(メッセージ送信APIを使用)
ドキュメント内の「Service Account認証 (JWT)で使用できないAPI」に
コンテンツダウンロードは含まれていないかと思いますが、
Service Account認証 (JWT)では画像取得が出来ないなどの仕様上の制限がありますでしょうか?
または別の原因があるようでしたら、ご指摘いただけますと幸いです。
宜しくお願いいたします。

コメント4

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

    n.s_9878e7

    私の過去のケースでは、ヘッダーにリダイレクトしないように設定したら解決しました。
    そうするとレスポンスのLocationヘッダーにダウンロードURLが格納されているので、そのURLにアクセスすると画像データが取得できました。

    2023.02.27

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

    sugiyama 投稿者

    @n.s_9878e7
    回答いただき、ありがとうございます。
    続けての質問で申し訳ないのですが、リダイレクトの有無はrequestのプロパティで設定が可能なのでしょうか?

    現在node.jsのrequestモジュールにてGETを行っており、リダイレクトの設定について調べたのですが
    設定方法が分からず、ご存じでしたらご教示いただけますと幸いです。
    または、参考サイトなどでも共有いただけますと幸いです。

    お手数をおかけしますが、ご確認のほどよろしくお願いいたします。

    2023.02.27

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

    n.s_9878e7

    @sugiyama
    当方Axiosを使ってますのでrequestはわからないのですが、
    公式ドキュメントを見るにfollowRedirectってオプションがあるらしいのでこれをfalseにしてみたらどうでしょうか。


    followRedirect - follow HTTP 3xx responses as redirects (default: true). This property can also be implemented as function which gets response object as a single argument and should return true if redirects should continue or false otherwise.
    https://www.npmjs.com/package/request#requestoptions-callback

    2023.02.27

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

    sugiyama 投稿者

    @n.s_9878e7
    度々の拙い質問に回答いただき、ありがとうございます。
    当方もちょうど同じような内容を発見することができ、リダイレクトせずにダウンロードURLを取得することが出来ました。

    statusCode:302 でエラーとなってしまうため、もう少し修正は必要そうですが、
    質問させていただきました内容については、解決できました。

    ドキュメント等で修正できずに大変困っておりましたので、非常に感謝しております。
    ありがとうございました。

    2023.02.27

    0
前の投稿 監査データのダウンロードのエンコードについて(API2.0)
次の投稿User Account認証(OAuth)で使ったアカウント情報の取得
リスト

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