この節では、記事一覧ページから選択された記事を1件取得し、詳細ページとして表示します。
最後に、完成したポートフォリオをGoogle Apps ScriptのWebアプリとして公開します。
idを取得する記事一覧ページでは、各記事のリンクにmicroCMSの記事IDを付けています。
<https://script.google.com/macros/s/デプロイID/exec?id=記事ID>
例えば、記事IDがclinic-reception-appの場合は次のURLになります。
<https://script.google.com/macros/s/デプロイID/exec?id=clinic-reception-app>
GASでは、doGet(event)のevent.parameterからURLの値を取得できます。
function doGet(event) {
const articleId = String(
event?.parameter?.id ?? '',
).trim();
if (articleId) {
return renderDetailPage(articleId);
}
return renderIndexPage();
}
event.parameter.idには、URLの?id=以降の値が入ります。
?id=clinic-reception-app
↓
event.parameter.id
↓
clinic-reception-app
idがある場合は詳細ページを表示し、ない場合は一覧ページを表示します。
記事詳細ページは、renderDetailPage()で生成します。
function renderDetailPage(articleId) {
const template =
HtmlService.createTemplateFromFile('Detail');
template.article = getArticle(articleId);
return template
.evaluate()
.setTitle(template.article.title)
.addMetaTag(
'viewport',
'width=device-width, initial-scale=1',
);
}
この関数では、次の処理を行っています。
Detail.htmlをテンプレートとして読み込む