コンテンツアップロードの際、401エラーが返ってくる
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
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。