Rest APIでのBasic認証がかかったページへのアクセス方法
-
GAS(Google Apps Script)からRest API経由でWordPressのメディアにpdf画像をアップロードするために、以下のようなコードを記載しています。ところが、サイトURLを本番サーバーのものから、ステージングサーバーのものに切り替えると、エラーが出てしまいます。(401エラーです)
本番サーバーではエラーが出ないのですが、ステージングサーバーにはベーシック認証がかかっており、エラーが出てしまうようです。ステージングサーバーはSnapUpを使っており、ステージングサーバーでテスト環境を構築したいのですが、SnapUpに問い合わせたところBasic認証の解除はできないということでした。WordPress側で対応することにより、認証を通す方法はないでしょうか?
よろしくお願いいたします。function upload_media() {
const site_url_path = 'XXXXXXXXXXXXXXX/';//サイトURL
const user_id = 'XXX'; //WordPressのユーザーID
const app_pass = 'XXXXXXXXXXXXXXXXXX'; // アプリケーションパスワード
const fileId = 'XXXXXXXXXXXXXXXXXXXXXX'; // 画像ファイルのID
// アプリケーションパスワード用の認証文字列を生成
const base64Credentials = Utilities.base64Encode(${user_id}:${app_pass});
const imgResponse = UrlFetchApp.fetch(
${DriveApp.getFileById(fileId).getDownloadUrl()}&access_token=${ScriptApp.getOAuthToken()},
{ method: 'GET' }
);
const apiURL = ${site_url_path}wp-json/wp/v2/media;
const headers = {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment; filename="XXXXXXXXXXXXXXX.pdf"',
'accept': 'application/json',
'Authorization': Basic ${base64Credentials}
};
const options = {
method: 'POST',
headers,
payload: imgResponse.getContent(),
muteHttpExceptions: true
};
try {
// リクエストを送信
const response = UrlFetchApp.fetch(apiURL, options);
const { id: imageId, source_url: imagePath } = JSON.parse(response.getContentText());
return [Number(imageId), imagePath];
} catch (error) {
console.error('Error:', error);
return [null, null];
}
}
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- このトピックに返信するにはログインが必要です。