ほぼ入力できないキーボードが無駄すぎた📱

© CC BY 4+ visibility1862
© CC BY 4+
visibility1862

フリック入力も、ガラケー入力もできないようにしておきました。
文字削除、スペース入力、改行も当然できません。
思う存分イライラしてください。

動画
開発素材
システム構成

何の役にも立たないプロトタイプ

アドベントカレンダーへの参加作品です。
楽しいだけで意味などない実装カモン!という素敵なコンセプト。



参考にした動画

動画①
LINEbotのリッチメニュー切替をGoogleスプレッドシートから実装

動画②
ノーコードでLINEBotリッチメニュータブ切り替えを実現!

LINEDCさま いつもいつもお世話になっております。
みなさんチャンネル登録絶対してください。

やりたかったことはリッチメニューのマス増殖

LINE Official Account Managerからリッチメニューを作成すると
6マスしか作れないので、さらにマス増殖させてみようとGASでトライ。

結果どんどんと拡張成功。
限界は19マスまでという無駄な知識も手に入った。

https://twitter.com/okinakamasayos1/status/1521869605471666176

ストーリー

リッチメニューを最大限リッチ(19マス)にできたので、
最もリッチメニューにする必要のないものを考察。
ちょうど同じ位置に出現するスマホキーボードを実装

世界一リッチじゃないリッチメニューがここに誕生しました。

ボタンの位置をひとつずつ計算して、リッチメニューを構成。
めんどくさかったです。



その他

大好きな『無駄づくりの』藤原 麻里菜さんのオマージュです。
大好きな『ふたりの娘達』出演させました。

参考動画から書き変えたGASコード

こちらをクリック (クリックで表示)


richmenu1.gs の中身を書き変えました

	
var areas =[];

function richmenu1() {
// // SpreadsheetのURL
// const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
// // Spreadsheetのシート名(タブ名)
// const menuSheet = spreadSheet.getSheetByName("メニュー構成");


var menutext = menuSheet.getRange(3,3).getValue();

var menu1 = menuSheet.getRange(20,3).getValue();
var type1value = menuSheet.getRange(21,3).getValue();

var menu2 = menuSheet.getRange(20,5).getValue();
var type2value = menuSheet.getRange(21,5).getValue();

var menu3 = menuSheet.getRange(20,7).getValue();
var type3value = menuSheet.getRange(21,7).getValue();

var menu31 = menuSheet.getRange(20,9).getValue();
var type31value = menuSheet.getRange(21,9).getValue();

var menu32 = menuSheet.getRange(20,11).getValue();
var type32value = menuSheet.getRange(21,11).getValue();

var menu4 = menuSheet.getRange(22,3).getValue();
var type4value = menuSheet.getRange(23,3).getValue();

var menu5 = menuSheet.getRange(22,5).getValue();
var type5value = menuSheet.getRange(23,5).getValue();

var menu6 = menuSheet.getRange(22,7).getValue();
var type6value = menuSheet.getRange(23,7).getValue();

var menu61 = menuSheet.getRange(22,9).getValue();
var type61value = menuSheet.getRange(23,9).getValue();

var menu62 = menuSheet.getRange(22,11).getValue();
var type62value = menuSheet.getRange(23,11).getValue();

var menu7 = menuSheet.getRange(20,15).getValue();
var type7value = menuSheet.getRange(21,15).getValue();

var menu8 = menuSheet.getRange(20,17).getValue();
var type8value = menuSheet.getRange(21,17).getValue();

var menu9 = menuSheet.getRange(20,19).getValue();
var type9value = menuSheet.getRange(21,19).getValue();

var menu10 = menuSheet.getRange(20,21).getValue();
var type10value = menuSheet.getRange(21,21).getValue();

var menu11 = menuSheet.getRange(20,23).getValue();
var type11value = menuSheet.getRange(21,23).getValue();

var menu12 = menuSheet.getRange(22,15).getValue();
var type12value = menuSheet.getRange(23,15).getValue();

var menu13 = menuSheet.getRange(22,17).getValue();
var type13value = menuSheet.getRange(23,17).getValue();

var menu14 = menuSheet.getRange(22,19).getValue();
var type14value = menuSheet.getRange(23,19).getValue();

var menu15 = menuSheet.getRange(22,21).getValue();
var type15value = menuSheet.getRange(23,21).getValue();



const CHANNEL_ACCESS_TOKEN = menuSheet.getRange(2,3).getValue();

var keys = {};
keys.size = {};
keys.size.width = 1200;
keys.size.height = 810;
keys.selected = "true";
keys.name = menutext;
keys.chatBarText = menutext;

areas =[];

bounds = {};
bounds.x =601;
bounds.y =0;
bounds.width =600;
bounds.height =199;
action = {};
action.type = "richmenuswitch";
action.richMenuAliasId = "richmenu-alias-b";
action.data = "richmenu-changed-to-b";

areas.push({bounds,action})

richmenujson(0,0,240,352,menu1,type1value)
richmenujson(241,0,240,352,menu2,type2value)
richmenujson(481,0,240,352,menu3,type3value)
richmenujson(721,0,240,352,menu31,type31value)
richmenujson(961,0,240,352,menu32,type32value)



richmenujson(0,353,240,152,menu4,type4value)
richmenujson(241,353,240,152,menu5,type5value)
richmenujson(481,353,240,152,menu6,type6value)
richmenujson(721,353,240,152,menu61,type61value)
richmenujson(961,353,240,152,menu62,type62value)

richmenujson(0,505,240,152,menu7,type7value)
richmenujson(241,505,240,152,menu8,type8value)
richmenujson(481,505,240,152,menu9,type9value)
richmenujson(721,505,240,152,menu10,type10value)
richmenujson(961,505,240,152,menu11,type11value)

richmenujson(0,657,240,152,menu12,type12value)
richmenujson(241,657,240,152,menu13,type13value)
richmenujson(481,657,240,152,menu14,type14value)
richmenujson(721,657,240,152,menu15,type15value)



console.log(areas)


keys.areas = areas
console.log(keys)




    const options = {
        "method": "post",
        "headers":
        {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN,
        },
        "payload": JSON.stringify(keys)
    };

    // Line該当ユーザーに応答を返している
   var response = UrlFetchApp.fetch("https://api.line.me/v2/bot/richmenu", options);

var richmenu1response = JSON.parse(response.getContentText());

menuSheet.getRange(24,3).setValue(richmenu1response);

}
  


お試しください(LINEbotです)



これまでの作品も見てね💀

100回混ぜろ!納豆ブートキャンプ💪

メンバー
  • user
    沖中(おきなか) @okinakamasayos1

関連イベント
  • event ヒーローズ・リーグ 20222022-09-05 開催
  • event ProtoPediaの時間:紹介作品②(第51回〜100回まで)2021-12-01 開催
関連リンク
user
ばんの @tomoki_banno

YouTubeで紹介させていただきました!
https://youtu.be/tBow7GTHXkI

user
湯村 翼 @yumu19

面白いw


同じニオイがする作品
  • event ぶらっくぺっぱー
  • event 測定器をとことん使い倒したいと頑張ってみた結果…
  • event RTNope-d(旧版) by エクスライズ
  • event RTNope-d 3.1 (アールティー ノープ ディー)

Proto lovers ♥
user
user
user
user
user

イベントまとめ

コンテストまとめ

作品を登録しよう

モノづくりしている人に、つくった作品を見てもらえ、リアクションがもらえるかも?

close

目次


Proto lovers ♥
user
user
user
user
user