コンテンツアップロードの際、401エラーが返ってくる

じろ

2023.08.02既読 1113

GoogleDriveからpdfファイルを送信するプログラムをGASで作成しています。

手順として、

➀アクセストークンを取得

コンテンツアップロードのURLとfileIdの取得

コンテンツアップロードを行う

トークに送信

このように進めています。

GoogleDriveにあるpdfファイルのリンクはあくまでGoogleDriveのリンクであり、pdfファイルそのもののリンクではないため、blob型でサーバーにアップロードを行い、トークに送信しようと考えたため、コンテンツアップロードを行っております。

しかし、➂を下記のコードで実行するとエラーコード401が返ってきます。何か他の情報を付け足すのでしょうか。

ちなみにメッセージの送信は行えているため、アクセストークンは正常です。

また、payloadをdataBlobではなく
{
  'Filedata': file.getBlob()

}
上記のように設定しても同じエラーが返ってきてしまいます。

よろしくお願いいたします。


var uploadUrl = 'アップロードURL' //(https://developers.worksmobile.com/jp/docs/file-upload?lang=ja#get-upload-urlで取得済み)
var file = DriveApp.getFileById('xxxxxxxxxxxxxxxxxxxxxxxx');
var blob = file.getBlob();
var boundary = '-------yyyyyyyyyyyyyyyyy';
var contentType = 'multipart/form-data; boundary=' + boundary;
var dataBlob = Utilities.newBlob('--' + boundary + '\r\n' +
'Content-Disposition: form-data; name="Filedata"; filename="' + file.getName() + '"\r\n' +
'Content-Type: ' + file.getMimeType() + '\r\n\r\n' +
blob.getBytes() + '\r\n' +
'--' + boundary + '--\r\n', contentType, 'blobby');
var accessToken = "zzzzzzzzzzzzzzzzzz"
var options = {
method: 'post',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'multipart/form-data',
'charset': 'UTF-8'
},
payload: dataBlob,
muteHttpExceptions: true
};
var response = UrlFetchApp.fetch(uploadUrl, options);

// エラーレスポンス
// Exception: Request failed for https://apis-storage.worksmobile.com returned code 401. Truncated server response: {
// "code":"UNAUTHORIZED",
// "description":"Authentication failed."
// } (use muteHttpExceptions option to examine full response)

コメント1

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

    じろ 投稿者

    解決いたしました

    2023.08.03

    0
前の投稿AzureAD側に登録するログアウトURL
次の投稿エラーメッセージ "Domain stop, DomainId(********) is stopping now." について
リスト

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