ツイート内容取得アプリ
ツイートのURLを入力してください。
以下はJavaScriptを使用した実装例です。evalや他のサイトに遷移させる機能は含まず、リダイレクトも行いません。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ツイート内容取得アプリ</title>
</head>
<body>
<h1>ツイート内容取得アプリ</h1>
<p>ツイートのURLを入力してください。</p>
<input type="text" id="tweetUrl" placeholder="https://twitter.com/username/status/1234567890"><br><br>
<button onclick="getTweet()">作成</button><br><br>
<p id="tweetContent"></p>
<script>
function getTweet() {
const inputUrl = document.getElementById("tweetUrl").value;
if(inputUrl == "") {
alert("URLを入力してください。");
return;
}
const url = new URL(inputUrl);
if(url.hostname != "twitter.com") {
alert("TwitterのURLを入力してください。");
return;
}
const paths = url.pathname.split("/");
if(paths.length != 4 || !paths[3].match(/^\d+$/g)) {
alert("正しいTwitterのツイートURLを入力してください。");
return;
}
const tweetId = paths[3];
const tweetUrl = `https://publish.twitter.com/oembed?url=${inputUrl}`;
fetch(tweetUrl)
.then(response => response.json())
.then(data => {
if(data.html) {
const parser = new DOMParser();
const parsedHtml = parser.parseFromString(data.html, "text/html");
const tweetContent = parsedHtml.querySelector(".Tweet-text");
if(tweetContent) {
document.getElementById("tweetContent").innerHTML = tweetContent.innerHTML;
} else {
alert("ツイートの内容を取得できませんでした。");
}
} else {
alert("ツイートの内容を取得できませんでした。");
}
})
.catch(error => alert("ツイートの内容を取得できませんでした。"));
}
</script>
</body>
</html>
```
ジョークとして、ツイートのURLを入力しないとアラートが表示されるようにしています。また、正しいTwitterのツイートURLかどうかを判定する部分では、正規表現を使っていることから「正しいTwitterの...」という表現を使用し、少しだけ冗長さを加えています。