API2.0でのコンテンツアップロード

k.k

2022.05.10既読 3457

C#を使ってbotからPDFファイルをトークルームに送信するプログラムを作成しています。
API1.0に対応したものは作成できたので、それを元に2.0対応版を作成していますが上手くいきません。
API2.0のbotで、メッセージは送信出来ているのでbotの設定とアクセストークンは問題ないと思います。

AIP1.0では、以下の通りの方法でファイルの送信ができました。
○API1.0
・コンテンツアップロード
 ①Header Parametersに「consumerKey」と「x-works-apiid」と「authorization」を追加
​ ②「Content-Type」に「application/pdf」を指定
 ③「Content-Disposition」で「name="resourceName"」指定
・トークルームへの送信手順
 ①コンテンツアップロードAPIを使用してファイルをアップロード
 ②ResponseからresourceIDを取得
 ③取得したresourceIDを指定してトークルームへ送信
API2.0ではドキュメントに従ってAPI1.0のソースコードから以下の点を修正して
コンテンツアップロードを試していますが、ResponseでStatusCode: 400が返ります。
○API2.0
 ①Header Parametersの「consumerKey」と「x-works-apiid」を削除
​ ②「Content-Type」に「application/pdf」を指定
 ③「Content-Disposition」の「name="resourceName"」を「name="fileName"」に変更
 コンテンツアップロードでエラーになっているので、トークルームへの送信は試せていません。
上記3点以外はAPI1.0でファイルをアップロードしている記述のままです。
※URLは2.0対応のものに書き換えています。
記述内容は以下の投稿のコメント欄を参考にしています。
ドキュメントを参考に変更になった部分を修正してみたのですが
この修正では何か間違っている or 何か足りていないのでしょうか?
また、API2.0のサンプルコードなどを提供して頂きたいのですが可能でしょうか?

コメント3

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

    LINE WORKS 公式アカウント

    API 2.0では従来の方法とUpload方法が異なります。コンテンツアップロードAPIにてUpload URLを取得したのち、Upload URLにファイルを送信します。
    詳細につきましては以下のDocumentをご参考ください。
    https://developers.worksmobile.com/jp/reference/bot-attachment-create?lang=ja
    https://developers.worksmobile.com/jp/reference/file-upload?lang=ja

    2022.05.13

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

    vampire

    既に解決済みかもしれませんが、こちらのサイトに載っている「HttpWebRequestとHttpWebResponseを使った方法」のソースを参考に、
    ファイルの指定とreq.Headers.Add("Authorization", $"Bearer {token}"); でトークンの指定を追記する程度でアップロードできました。

    https://dobon.net/vb/dotnet/internet/webrequestpost.html  

    2022.05.16

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

    k.k 投稿者

    vampireさんコメントありがとうございます。
    自分の認識が間違っており、API1.0の時のようにコンテンツアップロードのURLに
    直接ファイルを送信するものだと思って、ファイルの送信をしてしまっていたのが原因でした。
    以下の手順で無事ファイル送信できました。
    ①ファイル名のみ送信でアップロード用のURLを取得
    ②ResponseのuploadUrlにファイル送信(API1.0と同様の方法でOK)
    ③fileIdを指定してアップロード

    公式の担当の方も回答ありがとうございました。

    2022.05.16

    0
前の投稿過去のトークについて
次の投稿Azure AD 側のシングルサインオンを構成について
リスト

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