画像をGyazoにアップロード
ちゃんと動くかは試してないnishio.icon
回答を見て「あー、fetchがあるから非同期になっちゃうのかー」と気づいた
Q: 画像のURLを与えられた時に、その画像をダウンロードしてGyazoにアップロードして、そのURLを取得するJavaScriptの関数を作れますか?
(GPT4)もちろん、以下にそのような機能を持つJavaScript関数を示します。ただし、Gyazoに画像をアップロードするには、Gyazo APIを使用する必要があります。そのため、まずGyazo APIキーを取得してください。
code:upload.js
// Gyazo APIキーの設定
const GYAZO_ACCESS_TOKEN = "your_gyazo_api_access_token_here";
async function downloadAndUploadToGyazo(imageUrl) {
try {
ここがCSPに阻まれてうごかないtakker.icon code:upload.js
// 画像をバイナリデータとしてダウンロード
const response = await fetch(imageUrl);
const blob = await response.blob();
const formData = new FormData();
ほかは動くと思う
なるほどーnishio.icon
AskChatGPTを作った時にfetchで書いてるものをGM〜に書き換えさせるのはあっさりできてたからこれもできそう code:upload.js
// Gyazoにアップロードするためのデータを用意
formData.append("image", blob);
formData.append("access_token", GYAZO_ACCESS_TOKEN);
// Gyazo APIに画像をアップロード
method: "POST",
body: formData
});
// アップロードした画像のURLを取得
const gyazoData = await gyazoResponse.json();
const gyazoUrl = gyazoData.url;
return gyazoUrl;
} catch (error) {
console.error("Error downloading and uploading image:", error);
return null;
}
}
// 使用例
downloadAndUploadToGyazo(imageUrl)
.then(gyazoUrl => {
console.log("Uploaded image URL:", gyazoUrl);
})
.catch(error => {
console.error("Error:", error);
});
このコードは、指定された画像のURLから画像をダウンロードし、Gyazoにアップロードして新しいURLを取得する関数 downloadAndUploadToGyazo を提供しています。使用する前に、GYAZO_ACCESS_TOKEN を取得したGyazo APIキーに置き換えてください。