search
クリプト

カスタム ALISランキングサイトの作り方(4)

はるか先生's icon'
  • はるか先生
  • 2018/11/19 09:01
Content image

さて(1)から順を追ってGoogle Apps Scriptでコードを書いてきました。ここまででデータをシートに格納してコメントの多い順にならびなおすことまでできています。

これまでの記事





さて今日はいよいよWebアプリに仕立て上げましょう。Googleのサービスの優れいているところは簡単にWebアプリを作れるところです。そしてもちろん無料。


html ファイルを作成する

表示するページの作成をしていきましょう。ここからは多少htmlの知識が必要になります。今後web アプリを作る上で必須の科目なのでぜひ勉強しましょう。 Progate で html & cssを受講すればある程度基礎は身に付くと思います


Content image

エディターの画面にて ファイル → HTMLファイルを選択してください。選択するとファイル名を聞かれますので今回は AlisRankingとてください。HTMLの最低限のことが書かれたベージが生成されます。

下記のように記載しましょう。


 コード.gs

function getAlisPopularArticle(){

var sheetidx ="1D0PQSWSZQpeuxklUTg8ix_MTMIq0K5rlqD8y8QZC9-c";
var mySpread = SpreadsheetApp.openById(sheetidx);
var mySheets = mySpread.getSheetByName("シート1");
var response = UrlFetchApp.fetch("https://alis.to/api/articles/popular?limit=100&page=1").getContentText();
var results = JSON.parse(response);
var count = results["Items"].length;
Logger.log(results);

for (i=0;i<count;i++){
    str = mySheets.getRange(i+1, 1).setValue(i+1); 
    str = mySheets.getRange(i+1, 2).setValue(results["Items"][i]["article_id"]);
    str = mySheets.getRange(i+1, 3).setValue(results["Items"][i]["user_id"]);
    str = mySheets.getRange(i+1, 4).setValue(results["Items"][i]["title"]);
    str = mySheets.getRange(i+1, 7).setValue(results["Items"][i]["topic"]);
    str = mySheets.getRange(i+1, 8).setValue(results["Items"][i]["eye_catch_url"]);

var responseArticle = UrlFetchApp.fetch("https://alis.to/api/articles/" + results["Items"][i]["article_id"] + "/comments?limit=100").getContentText();
var resultsArticle = JSON.parse(responseArticle);
var commentCount =resultsArticle["Items"].length;
str = mySheets.getRange(i+1, 5).setValue(commentCount);
}

mySheets.sort(5,false);}

function doGet() {

var html = HtmlService.createTemplateFromFile("alisRanking");

return html.evaluate().setTitle("ALISコメントランキング");

}




alisRanking.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<br>
<h1><center>ALISコメントランキング</center></h1>
<P>
<center>
<table border="1">
<thead>
<tr>
<th>タイトル</th>
<th>ライター</th>
<th>コメント数</th>
</tr>
</thead>
<tbody>
<?
var sheetidx ="スプレッドシートID";
var myData = SpreadsheetApp.openById(sheetidx).getSheetByName('シート1').getDataRange().getValues();
for(var i=0;i<myData.length;i++){
output.append('<tr>');
output.append('<th>' + myData[i][3] + '</th>');
output.append('<th>' + myData[i][2] + '</th>');
output.append('<th>' + myData[i][4] + '</th>');
output.append('</tr>');
}
?>

</tbody>
</table>
</center>
</body>


htmlの基礎はどこかで勉強してきてください。今回のGASにまつわるところはこちらです。

<?
?>

で囲んだところに処理を記載します。

今回この箇所ではスプレッドシートをIDで呼び出してその中の情報を抜き出しています。

 var myData = SpreadsheetApp.openById(sheetidx).getSheetByName('シート1').getDataRange().getValues();

mydata[i][3] と記載されているところでそれぞれシートのセルを示してデーターを取り出しています。

Content image


一行に1記事の情報をまとめていますのでfor loopを使い一行ずつ読み出してWEBサイトに書き込んでいます。


Java Scriptのコード側の準備

下記の関数が必要になります。この関数から上記のhtmlファイルを呼び出す順番となりますので必ず用意してください。

function doGet() {
var html = HtmlService.createTemplateFromFile("alisRanking");
return html.evaluate().setTitle("ALISコメントランキング");


ここまで完成しました。今一度、作成したソースコードを確認してください。このサイトにアップロードしておきました。


webアプリの公開

公開 → ウェブアプリケーションとして導入を選びます

Content image

選択すると初めての時は少し変わりますが下記のような表記が登場します。

Content image

実行           自分

アクセスできるユーザーは 全員

としておきましょう。

公開/更新を押すとwebが公開されます。公開後にアクセスの許可が求められるので許諾していきましょう。

Content image

こちらでURLが表示されますので実際にアクセスしてください。今回まで作成したコードで下記のようなウェブサイトが誕生しました。

Content image


情報はしっかり記載されていますね。でもちょっとダサいです。次回はちょっとオシャレにしていきましょう。


続きはこちら



公開日:2018/11/19
獲得ALIS:40.92
Article registration Article registration
はるか先生's icon'
  • はるか先生
  • @haruka
ブロックチェーンの技術ビジネス/dAppsとProtocol周りが得意/ブロックチェーンの技術関連の寄稿

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Taka 2021/02/25
Like token Tip token
59.99 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

暗号資産ジョシ校生 蟻巣 2021/07/14
Like token Tip token
32.32 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

CryptoChick 2020/03/05
Like token Tip token
44.10 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Taka 2021/07/24
Like token Tip token
69.90 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

昆布森ちゃん 2021/01/24
Like token Tip token
21.49 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

nnppnpp(んぺー) 2021/09/08
Like token Tip token
46.60 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

ゆうき 2021/05/17
Like token Tip token
236.30 ALIS
Eye catch
クリプト

UNISWAPでALISをETHに交換してみた

Macky3216 2020/09/28
Like token Tip token
40.40 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

暗号資産ジョシ校生 蟻巣 2021/06/30
Like token Tip token
30.03 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

池田らいく 2021/04/04
Like token Tip token
18.92 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

otakucoin 2021/03/29
Like token Tip token
121.79 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

昆布森ちゃん 2021/01/19
Like token Tip token
38.31 ALIS