Angularで時間まで指定できるdatetime-pickerを導入する

こんにちは、窪田です。

JavaScriptの有名なフレームワークであるAngularですが、弊社でもAngularを使用しています。
今回は、Angularで時間まで選択することができるデートピッカーを実装したので、実装方法を紹介したいと思います。

目次

  1. 導入の経緯と使用したデートピッカー
  2. 実装方法
  3. 日付フォーマットを変更する方法
  4. まとめ

導入の経緯と使用したデートピッカー

現状使用しているデートピッカーだと、年と月日が選択できるだけで、時間を選ぶことができませんでした。

サービスの改修によって、年と月日だけでなく時間まで選択してもらう必要がでてきたので、他のデートピッカーの導入を検討しました。

使用したデートピッカーは、「Angular Material datetime-picker」というパッケージです。

厳密に言うと、Angular MaterialというAngular公式のコンポーネント集の1つです。

https://material.angular.io/


実装方法

まずはAngular Material datetime-pickerをインストールします。

$ npm install @angular-material-components/datetime-picker

インストールコマンドを実行した際に、「npm WARN ~ You must install peer dependencies yourself.」という警告が出るかもしれません。

ライブラリの依存関係を修正する必要があることを示す警告文です。必要に応じてパッケージのインストールを行い、バージョン情報を合わせてください。

次にapp.modulesにimport文を追加します。

import { 
  NgxMatDatetimePickerModule,
  NgxMatNativeDateModule,
  NgxMatDateFormats,
} from '@angular-material-components/datetime-picker';
import { MatInputModule }          from '@angular/material/input';
import { MatFormFieldModule }      from "@angular/material/form-field";
import { MatDatepickerModule }     from '@angular/material/datepicker';
import { ReactiveFormsModule }     from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@angular/materialや@angular/formsなど、インストールされていない場合はインストールが必要です。

@NgModule内にも追加します。

@NgModule({
  imports: [
    NgxMatDatetimePickerModule,
    NgxMatNativeDateModule,
    MatInputModule,
    MatFormFieldModule,
    MatDatepickerModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
  ],
})

実際にデートピッカーを表示させたい場所のHTML内にコードを追加します。

<mat-form-field>
  <input matInput [ngxMatDatetimePicker]="picker" placeholder="" [formControl]="formControl" disabled >
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <ngx-mat-datetime-picker #picker [showSpinners]="true" [showSeconds]="true" [stepHour]="1" [stepMinute]="1" [stepSecond]="1" [touchUi]="false" [enableMeridian]="false" disabled="false"></ngx-mat-datetime-picker>
</mat-form-field>

すると...

このような感じで表示できました。


日付フォーマットを変更する方法

表示はできましたが、この状態だと日付のフォーマットに違和感があるので、YYYY-MM-DD hh:mm:ssの形式に変更します。

フォーマット変更のために、必要なパッケージをインストールします。

$ npm install @angular-material-components/moment-adapter
$ npm install moment

app.modulesにimport文を追加し、定数を定義します。

import { 
  NgxMatDatetimePickerModule,
  NgxMatNativeDateModule,
  NgxMatDateFormats,
  NGX_MAT_DATE_FORMATS
} from '@angular-material-components/datetime-picker';
import { MAT_DATE_LOCALE} from '@angular/material/core';
import { NgxMatMomentModule} from '@angular-material-components/moment-adapter';

export const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
  parse: {
    dateInput: "YYYY-MM-DD hh:mm:ss"
  },
  display: {
    dateInput: "YYYY-MM-DD hh:mm:ss",
    monthYearLabel: "MMMM YYYY",
    dateA11yLabel: "YYYY-MM-DD hh:mm:ss",
    monthYearA11yLabel: "MMMM YYYY"
  }
};

合わせて@NgModule内も修正します。

@NgModule({
  imports: [
    NgxMatDatetimePickerModule,
    NgxMatNativeDateModule,
    MatInputModule,
    MatFormFieldModule,
    MatDatepickerModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    NgxMatMomentModule,
  ],
  providers: [
    { provide: MAT_DATE_LOCALE, useValue: 'ja-JP' },
    { provide: NGX_MAT_DATE_FORMATS, useValue: CUSTOM_DATE_FORMATS }
  ],
})

これで、赤枠の通り、日付のフォーマットが変更できました。

ついでに日本語対応も完了です。


まとめ

今回は、Angular Material datetime-pickerの導入方法と、日付フォーマットを変更する方法をご紹介しました。

意外と時間まで指定できるデートピッカーは少ないようで、調べながら試行錯誤を繰り返していましたが、最終的には思い通りに実装することができて良かったです。

Angularで時間まで指定できるデートピッカーを実装する場合は、ぜひAngular Material datetime-pickerを使ってみてください。

燃える闘魂

10月1日にアントニオ猪木さんが亡くなりました。プロレスラーとしては、もちろんのこと、政治家や事業家として多くの功績を残されました。晩年は、亡くなる直前まで、YouTubeで発信をされていました。驚いたことは、最後の出演となった亡くなる10日前に撮影されたYouTubeでも、新しくこれからやりたいことについて語られていたことです。いつまでも前向きで、パワーのあふれる方だと改めて感じました。 そんなアントニオ猪木さんの魅力は、身体的な力だけではなく、言葉にも大きな「力」を持っています。その一つ一つは、仕事を含めて、生きていく様々な場面で、勇気をもらえるものです。そんな言葉をいくつかご紹介します。

この道を行けばどうなるものなのか

危ぶむなかれ 危ぶめば道はなし

踏み出せばその一足が道となり

その一足が道となる

迷わず行けよ

行けばわかるさ

アントニオ猪木

これは、1996年の引退の時に詠んだ大変有名な詩です。どんなことにしろ、新しいことを始めるときには、不安がつきものです。「失敗したらどうしよう」「どうしたらいいかわからない」「自分にできるのか」などなど、だれでも不安を抱えた経験があるはずです。

しかし、失敗することを恐れて何もしなければ、何も成し遂げることはできません。

新しいプロジェクトや施策を始めるときには、心配もつきものです。しかし実際に始めた時には、始める前には考えてもいなかったようなことを多く知ることになります。つまり、始めてみないとわからないということです。

「その一歩が道となる」という部分についても、様々な場面と重なります。プロジェクトや企画などを始めるときに、何か正解があるように思ってしまいますが、実は正解はなく、試行錯誤しながら、何かを成し遂げた時に、初めて良かった点や反省点を知ることができます。つまり、「行けばわかるさ」ということです。 ビジネスマンにとっても、背中を押してくれる詩だと私は思っています。

出る前に負けること考えるバカがいるかよ

出る前に負けること考えるバカがいるかよ

アントニオ猪木

これは、試合前にインタビューされた時に出た言葉です。インタビュアーは、「もし負けることになると・・・」と負けたらどうする?というようなことを聞いています。

ビジネスにおいては、「負けること」を考えることも大変重要です。むしろ、リスクマネージメントという意味では、「負けること」を考えることのほうが重要な時すらあるでしょう。

しかし、どんなことにもリスクは付きまとい、それにとらわれていては、何もできません。言い換えれば、戦うときは、勝つことに集中するということともとらえられます。ビジネスであれば、失敗してしまうかもと考えず、どうしたら成功するか、必死に追求しなければ、成功するものもしないということだととらえています。

ちなみに、インタビュアーは、ビンタされていました。

馬鹿になれ

馬鹿になれ

アントニオ猪木

ひとつ前と矛盾するような気もしますが、これは、また別の意味になります。

何かを始めるときに、あえて不安や心配に自分で目をつぶらないと、進んでいくことができないときはないでしょうか?何か始めるときに、然もすると、懸念事項をたくさん並べ、多弁であるほうが、頭がいいように見えるかもしれません。しかし、それを続けた結果、振り返ってみると結局何もしていないという状況は、よくあるものです。

実は、多くの批判を浴びながらも、馬鹿になって進んでいった人が、多くの成果を残していたりします。猪木さんは、「馬鹿になれ」と言っています。もともと馬鹿だと「馬鹿になる」ということはできません。馬鹿ではないからこそ、あえて、馬鹿になり前に進んでいくことが大切ということを言っているのではないでしょうか。

今回は、私の仕事や生活の糧としているアントニオ猪木さんの言葉を紹介しました。みなさんも、尊敬する人やあこがれの人の大切にしている言葉があるかと思います。一度振り返ってみると、さらに、それらの言葉が、自分にどのような場面で背中を押してくれていたかがわかり、より勇気をもらえます。ぜひ、周りの方と共有してみてください

リモートワーク中の飲み物事情・・

こんにちは、高橋です。

新型コロナウィルスの影響により、リモートワークが急増したかと思います。
グリニッジでもリモートワークを継続しております。


そんな中、ふと気になることが・・
リモートワーク中、みんな何を飲んでいるのだろう?


私は基本的にコーヒーは毎朝飲んでいますが、
日中、集中すると、ついつい水分を取るのを忘れてしまいます。

でも、水分を取ることって、とても大事みたいです!
デスクワークで体を動かしたり、汗をかいたりしていなくとも、
常に体から水分は失われています。
また、好きな飲み物を飲むことで、ほっとしたり、リフレッシュしたり♪
かといって好きな飲み物だけを飲み続けていては健康面も気になる・・
そこでリモートワーク中おすすめの飲み物を調べてみました。

おすすめはやっぱりノンカロリーor低カロリー

・お水
1日1.5リットル~2リットル飲むのが良いとされているお水。
軟水や硬水など、お水でも種類があるので、飲み比べるのも良いかもしれません☆
炭酸水なんかも、さわやかにリフレッシュできそうですね!

・お茶類
お茶も種類豊富ですが、定番の緑茶や麦茶に加えて、ほうじ茶、玄米茶、そば茶、ジャスミン茶など
気分でいつも飲まないお茶に挑戦するのも良いですね!
最近ではコンビニでルイボスティーなんかも手軽にゲットできるので、ハーブティーの香りを楽しむのも☆

・コーヒー
私も大好きコーヒーです!
コーヒーにはカフェインが多く含まれており、眠気覚ましや、集中したいときなどにおすすめです。
ドリップするも良し、インスタントコーヒーでぱぱっと飲むのも良し♪
ただ、カフェインの大量摂取は悪影響を及ぼす可能性もあるため、飲みすぎは注意です。

癒しを求めて・・たまにはあま~い飲み物を♪


疲れたなぁと感じた時、糖分を欲する方もいらっしゃるのではないでしょうか。
私はまさに、欲するタイプです!!
糖分は大切なエネルギー源の1つでもあるので、適度にとることは大切です。
おすすめはこちら。

・ココア
ココアはポリフェノールが豊富で、アンチエイジング効果や腸内環境を整える効果も!
甘くておいしいだけでなく、体にも良いなんて最高です。

・ミルクティー
ミルクティーは、紅茶から糖分を分解する酵素が含まれている紅茶カテキンと
牛乳に含まれるたんぱく質、カルシウムを摂取できます!
(お砂糖の入れすぎはご注意ください)

飲み物はリモートワークの大事なお供★

リモートワークでは、仕事中は集中、休憩時間は休むなど、自分でメリハリをつけることが大切です。
集中したいとき、一息つきたいとき、その時々に合わせて飲み物をチョイスすると
いつもと違った新鮮な気分でリモートワークに取り組めるかもしれません。
皆さんも気分転換に良かったらお試しください♪

Google マップの魅力

普段なにげなくつかっている地図アプリ。特に初めて訪問するところでは必ず使いますね。今回は、地図アプリの市場について話したいと思います。そして、オフラインの店舗様の問題解決にもなるご提案も含めてお伝えいたします。

■目次
1. 地図アプリはいろいろある
2.地図アプリの利用率
3.近くの〇〇という検索数が増えている
4. Googleビジネスプロフィールについて
5. Googleビジネスプロフィールの機能
6. Googleマップでより目立つためには?
7. まとめ

地図アプリはいろいろある

2022年おすすめ地図アプリランキングは以下のようです。ポイントは、使いやすさ、機能の豊富さ、無料で使えるというところです。(出典:【2022年】地図・マップアプリおすすめ無料ランキングTOP10

1位 Googleマップ

2位 Yahoo! MAP

3位 NAVITIME

4位 Yahoo!カーナビ

5位 Apple マップ

2020年の月間アクティブユーザー数ランキング(MAU)も圧倒的にGoogleマップで、2位NAVITIMEの約4倍です。(出典:ニールセン、デジタルコンテンツ視聴率のMonthly Totalレポートによる地図・旅行情報カテゴリーのメディア利用状況を発表

出典:ニールセン、デジタルコンテンツ視聴率のMonthly Totalレポートによる地図・旅行情報カテゴリーのメディア利用状況を発表

地図アプリの利用率

「使ったことがある地図アプリはどれですか?」というアンケート結果が以下の通りです。ほぼ全員がGoogleマップを使用したことがあるということですね。

出典:口コミラボ:地図アプリ利用率「Googleマップ」が99.4%で1位に!「口コミサイト・地図アプリ利用動向意識調査」実施【2022年最新】

これだけのユーザー数が多いGoogleマップに集客目的として情報を載せることができればビジネスにつながるはずです。使わないという選択肢はなさそうですね。

近くの〇〇という検索数が増えている

Googleの調べでは、2011年から「近く」、「最も近く」などの単語は数十億件の検索クリエになっているとのことです。スマートフォンの普及が要因ともいわれてますが結果、Google検索やGoogleマップ検索の数は約34倍にまで増加しています。(出典:https://www.thinkwithgoogle.com/consumer-insights/consumer-journey/i-want-to-go-micro-moments/)

下記にて、日本国内でどの程度、増えているかGoogleトレンドで調べてみました。2016年10月ごろから急激に検索数が増えてます。これは著名人のCMなどの影響だと思うのですが、その後も増加傾向ですね。2020年4月に検索数が下がっているのは、緊急事態宣言が行われた時期です。

近くので調べた結果Googleトレンド

ローカルでの検索を行うユーザーの50%が1日以内に店舗に訪れ、それらの検索の18%が1日以内に購入にいたるとのことです。(出典:https://www.thinkwithgoogle.com/consumer-insights/consumer-journey/i-want-to-go-micro-moments/)

ということは、Googleマップ上に検索で表示されれば、かなりの確率で来店してもらえると考えてもいいですね。特に飲食店をやっていれば、絶対に表示させたいところです。

Googleビジネスプロフィールについて

引用:https://www.google.com/intl/ja_jp/business/

ビジネスや店舗を持っていれば、Google検索やGoogleマップ検索上で店舗や会社情報を表示させることができます。それがGoogleビジネスプロフィールです。

Google ビジネス プロフィールでは、マップや検索などの Google サービスでローカル ビジネスをどのように表示するかを管理できます。実店舗に顧客を迎え入れてサービスを提供するビジネスや、エリア限定でサービスを提供するビジネスを営んでいる方は、ビジネス プロフィールを活用すればユーザーにビジネスをアピールすることができます。Google でのオーナー確認を済ませているビジネスは、ユーザーからの信頼度が倍増する傾向があります。

引用元:https://support.google.com/business/answer/6300665?hl=ja

以下がGoogleビジネスプロフィールで表示される情報です。左がPCで右がスマートフォンによる表示です。店舗名や企業名で検索してみました。

右側のスマホ検索は、飲食店名での検索です。実は私がよく行くカレー屋さんです。よく見ると店舗名や営業時間、Googleマップによる位置情報以外にも、メニューや店舗の写真、訪問数の多い時間帯、ユーザーの口コミなどさまざまな情報が表示されています。この情報量が多ければ、検索したユーザーにとってはありがたいですし、訪問してみたいというきっかけになりますよね。

Googleビジネスプロフィールは、なにもしなくてもある程度の情報は載せてくれます。この情報をさらに充実させるにはGoogleビジネスプロフィールをさらに活用する必要があります。

Googleビジネスプロフィールの機能

引用:ビジネスを Google 検索や Google マップなどで見つけてもらいましょう

1、投稿

セール情報やクーポンの特典に関する情報が発信できます。最近だと新型コロナウイルスへの取組などの情報を発信している店舗が多いですね。

2、情報

店舗名や営業時間、住所や電話番号などの情報を掲載できます。

3、インサイト

ユーザーがどのように検索してたどり着いたか、問い合わせの多い時間帯などの情報を知ることができます。

4、クチコミ

ユーザーがお店へクチコミを投稿できます。店舗は、Googleビジネスプロフィールより返信することができます。

5、メッセージ

Googleマップよりユーザーとチャット形式でやり取りができます。

6、写真や動画

店舗や商品の写真を掲載できます。また、最大30秒ほどの動画も載せられるとのこと。

7、商品

商品登録ができます。画像や詳細などの掲載がきで、ウェブサイトなどへの集客も可能です。

8、ウェブサイト

簡易的なウェブサイトを無料で作成できます。

以上になります。いろいろと制約もありますが、これがすべて無料でできると考えればかなりお得ですよね。

Googleマップでより目立つためには?

Googleビジネスプロフィールを使うことによって店舗情報をGoogleマップ上で掲載できることはこれでわかりました。Google検索やGoogleマップ検索の結果って他のお店(競合)もたくさん表示される場合がありますよね。より目立たせるには、この表示ランキング改善が必要になります。

実は、Googleのローカル検索結果のランキングは改善することができ、その方法も公開されています。(出典:Google のローカル検索結果のランキングを改善する方法

ローカルの検索結果のランキングが決定される仕組みは、「関連性」「距離」「知名度」になります。関連性とは、検索キーワードとローカルビジネスフィールが合致しているかということ。距離とは、検索したユーザーの位置と店舗の距離のこと。知名度とは、どれだけ知られているかということです。例えば、カレー屋といえば「ココ壱番屋」とかですよね。

そう考えると改善できるものは、関連性になります。実店舗情報を詳細にビジネスプロフォールに掲載することによって改善できそうですね。

充実したビジネス情報を掲載すると、ビジネスについてのより的確な情報が提供されるため、プロフィールと検索語句との関連性を高めることができます。

引用元:Google のローカル検索結果のランキングを改善する方法

まとめ

飲食店などの店舗運営を行う際、集客はどうしても課題になると思います。その一つの解決策としてGoogleマップは活用すべきだと思います。私も個人的にGoogleマップはよく使います。これからもつかうと思います。私自身もクチコミや写真など、訪問したことのあるお店のレビューを投稿することによって、更に使いやすくなっていくのかなと思います。

記事トップへ

【楽天・ヤフー】売れるショップの条件は「価格調査と更新の自動化」にあり!

ネットショップ運営をしていると、日々の事務処理が忙しくて、なかなか競合調査まで手が回らないことがあります。

しかし、自社だけでしか扱っていない商品であれば価格調査は不要ですが、競合他社も扱っている商品の場合、 定期的な見直しはとても重要です。

今回は、競合調査における課題を再確認しつつ、売れる状態をキープするためにどうすべきかお話しします。

こんな状態になってませんか

  • 商品登録をしてそれ以降は一度も価格を変えていない
  • 商品数が増えてきて競合の価格チェックが追いつかない
  • 最近売れ行きが悪いが、何が原因か分からない

もし、ひとつでも当てはまることがあれば、読み進めて頂くと業務改善のヒントになるかもしれません。

価格調査を手作業で行うのは大変

はじめに、なぜ価格調査を手作業で行うことが大変なのかをお話します。

日々競合の価格が変わる

オンライン上の商品の価格は、流行り・SNS等の口コミ、テレビや雑誌などの影響を受けやすく、常に変化しています。

さらに、昨今の不安定な社会情勢で原材料の枯渇・高騰によって、価格の変動が激しくなっています。

自社だけでなく市場の価格も日々変化しているため、極端なことを言えば、毎日、価格調査をする必要性があります。

商品数に比例して作業時間が増える

価格調査は、 商品数に比例して作業時間も増え、さらに競合のショップ数や調査する回数で作業負担は大幅に増加していきます。

例えば、商品数100×ショップの数10=1000回1回の作業を1分とすれば約16時間40分もかかってしまいます。

さらに、価格を更新する作業も必須のため、とても手作業で対応できるような作業量ではありません。

1日の営業時間内で定期的な価格調査と更新を行おうとすると、 ネットショップ運営の他の業務は滞ってしまいます。

営業時間外、深夜に価格を変える店舗もいる

日中は顧客対応、入出荷、在庫管理などにも時間を要するため、深夜や営業時間外などに価格を変更しているショップもあります。

そのため、自社が営業時間内でしか価格の調査や変更ができなければ、営業時間外に機会損失が発生するかもしれません。

ネットショップは、24時間365日いつでもユーザーが好きなタイミングで購入できるため、ショップの営業時間にかかわらず、適正な価格を提示しなければなりません。

すなわち、手動・人力ではなく、価格調査と価格更新を自動化することが重要になります!

らくらく最安更新を使うと自動で価格調査が行える

次に、らくらく最安更新を使って自動化できる価格調査の内容やメリットについてお話します。

JANコードでもキーワードでも調査が可能

らくらく最安更新は、JANコードでもキーワードでも調査が可能であり、 一度設定をすれば任意のタイミングで 価格の調査を自動で行うことができます。

手作業でひとつひとつ価格をチェックするという手間が一気になくなり、ヒューマンエラーもおこりません。

JANコードだけでは適切に調査できない場合には、キーワードで調査することをおすすめします。

自動なので商品が増えても作業負担はゼロ

らくらく最安更新は、 商品数が増えても作業時間は増えないので、価格調査の時間や労力もかかりません。

ネットショップ運営の他の事務処理や作業を圧迫せず、 手間・ストレスも感じることなく価格調査が可能です。

人件費よりもコスパもよく、販路拡大で複数店舗運営になってもスムーズに日々の業務が行えます。

特定のショップを調査・除外することも可能

らくらく最安更新は、 特定のショップを調査・除外することも可能です。

特定の競合ショップのみを調査したい場合や明らかに価格が安すぎたり高すぎるようなショップを除外することもできます。

調査したデータから適切な価格を判断できるようになるので、価格競争に巻き込まれるような心配もなくなります。

らくらく最安更新を使うと自動で価格更新が行える

最後に、らくらく最安更新を使うと自動化できる価格更新の内容やメリットについてお話します。

価格だけでなく送料・ポイントも含めて更新(実質最安値になる)

らくらく最安更新は、 価格だけでなく送料・ポイントも含めて更新してくれるため、実質的な最安値を提案できるようになります。

実質の最安値になれば、口コミなどのレビューが少なくとも購入してもらえる可能性も高くなります。

また、最安値で商品価格ナビに表示されるようになるとユーザーの視野に入りやすくなることもメリットです。

利益を守りながら自動化できる(下限価格が設定できる)

らくらく最安更新は、任意の価格で下限価格を設定できるため、利益を確保しながら価格の更新が可能です。

価格調査を行った際のショップが安すぎる価格を設定していたとしても、自社が利益の出ない価格に更新されるようなことはありません。

利益の出る範囲で、価格を調査し適正な価格を保ち続けることで、売上・利益の最大化を狙うことができます。

競合と同じ価格にすること、〇〇円・〇%引きにすることも可能

らくらく最安更新は、自動で競合と同じ価格に合わせることや〇〇円・〇%引きにすることも可能です。

商品によって、細やかな設定ができるので、常に売れる状態をキープすることができます。

また、前述した実質的な最安値、下限価格の設定と組み合わせることで、 価格競争に勝ち利益を出し続けるネットショップに成長できる可能性も高くなります。

まとめ: 価格調査・更新が自動化できればスムーズな店舗運営で利益も最大化!

今回は、競合調査における課題を再確認しつつ、売れる状態をキープするためにどうすべきかお話ししました。

競合の価格調査と価格更新をセットで自動化する一番のメリットは、日々の業務改善で店舗運営に集中でき利益を最大化していけることです。

価格は重要ですが、人力での調査は現実的ではありません。

市場の価格競争に振り回されないためにも自動化に切り替えることはとても重要と言えます。

売れる状態をキープするために、ぜひとも価格調査と更新の自動化ができるツール「らくらく最安更新」の導入を前向きにご検討ください。

らくらく最安更新は、30日間無料トライアルがご利用いただけますので、ぜひこの機会にお試しください。

最後までお読みいただきありがとうございました。

この記事が忙しくて競合調査まで手が回らず、お悩みの方のお役に立てれば幸いです。

紹介したサービス

Gmailの受信をLINEに通知する方法

仕事とプライベートをなんとか結び付けたいバンドマン岡村です。
みなさん、スマホに来る通知を見逃していませんか?
僕は見逃します!!なので対策をしてみました!

今回はGmailをLINEに通知する方法を紹介します。
バンドに限らず、何かチームに所属していて、
複数人でGmailを管理している方におすすめしたい手法です。

複数人でGmailを管理するとどのようなことが起きるのかというと、
各メンバーのスマホにGmailのポップアップ通知が届いても、
自分以外のメンバーが先にメールを開いてしまうと自分のスマホからは通知が消えてしまいます。
そのためメールが来ていたことに気づかず、返信せず放置してしまっていた、というケースが発生するのです。しました。
とはいえメールを最初に読んだら他のメンバーに周知するなんてことを毎回行うのには手間がかかりすぎます…
そこでいろいろ調べてみたところ、以下の記事を発見しました。

https://qiita.com/Damon/items/bbe6350ef1a4a10fe397

Gmailを受信したらLINEグループに通知する方法、というものでした。
LINE通知なら他の誰かが先にメールを開いても通知が消えるといったことはないので、
メールの見逃しがなくなるのです!

それでは実際に行った手順を紹介していきたいと思います。
プログラムを触りますが、コピペだけでもいけるのでぜひ試していただきたいです。
それではどうぞ!

目次

LINE Notifyにアクセス。
LINEアカウントでログインし、「マイページ」をクリック。

「トークン名」は自由に設定。
「通知を送信するトークルームを選択してください」は通知を送信したいグループを選択。
岡村の場合はバンドメンバーの中でもGmailやSNSを管理するメンバーだけを招待した、
通知専用のグループをあらかじめ作っておきました。
話し合いを妨げるといけないので!
設定できたら「発行する」をクリック。

発行されたトークンをコピーしてメモしておく。

GoogleAppsScriptにアクセス。
「新しいプロジェクトを作成」をクリック。

プロジェクト名を自由に設定。

エディタ画面に以下のソースコードをコピペ。

var lineToken = "hogehogehogehoge"; //LINE notify token
var get_interval = 5; //〇分前~現在の新着メールを取得 #--トリガーをこれに合わせておく!!


function send_line(Me){
  var payload = {'message' :   Me};
  var options ={
        "method"  : "post",
        "payload" : payload,
        "headers" : {"Authorization" : "Bearer "+ lineToken}  
      };
    UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}


function fetchContactMail() {
  //取得間隔
  var now_time= Math.floor(new Date().getTime() / 1000) ;//現在時刻を変換
  var time_term = now_time - (60 * get_interval); //変換

  //検索条件指定
  var strTerms = '(is:unread after:'+ time_term + ')';

  //取得
  var myThreads = GmailApp.search(strTerms);
  var myMsgs = GmailApp.getMessagesForThreads(myThreads);
  var valMsgs = [];
  for(var i = 0; i < myMsgs.length;i++){
    valMsgs[i] = "\n【date】: " + myMsgs[i].slice(-1)[0].getDate() 
                  + "\n【From】: " + myMsgs[i].slice(-1)[0].getFrom()
                  + "\n【Subject】: " + myMsgs[i].slice(-1)[0].getSubject()
                  + "\n【Body】: \n" + myMsgs[i].slice(-1)[0].getPlainBody().slice(0,200); 
  //  myMsgs[i].markRead(); //メッセージを既読にする
  }

  return valMsgs;

}

function main() {
  new_Me = fetchContactMail()
  if(new_Me.length > 0){
    for(var i = new_Me.length-1; i >= 0; i--){
      send_line(new_Me[i])
    }
  }
}

ソースコードを少し修正。

  • 1行目のlineTokenに代入されているhogehogehogehogeを手順1:LineNotifyからアクセストークン取得するにてメモを取ったトークンに変更。
  • 2行目のget_intervalに代入されている5をお好みの数値に変更。(何分ごとに通知が欲しいのか?岡村は5分ごとに欲しいので5です。新しい受信がなかった場合の通知はありません!)

修正できたら「プロジェクトを保存」をクリック。

少し解説をすると、

  • mainメソッドがこれから設定するトリガーによって実行される。
  • fetchContactMailメソッドが呼び出され、未読かつ、get_intervalに代入した○分前~現在時刻の間に受信したメールの内容を取得する。
  • メールを取得できていれば(新しい受信があれば)send_lineメソッドを呼び出し、LINEのAPIを利用しLINE通知を行う。

といったプログラムになっています。

「トリガー」をクリック。
「トリガーを追加」をクリック。

以下のように設定し、保存。

  • 「実行する関数を選択」→main
  • 「デプロイ時に実行」→Head
  • 「イベントのソースを選択」→時間主導型
  • 「時間ベースのトリガーのタイプを選択」→分ベースのタイマー
  • 「時間の感覚を選択」→手順2:GoogleAppsScriptにプログラムを書くのget_intervalに代入した数値と同じ値。岡村の場合は5分おき!
  • 「エラー通知設定」→毎日通知を受け取る

このようにトリガーを設定することにより、5分おきにmainメソッドが実行されます。
Gmailの受信をLINE通知するための設定はこれで完了です。

設定は完了ですが、本当に送信されるのか、テストしていきます。

Gmailアドレスに適当なテストメールを送信。

エディタ画面で「実行する関数を選択」はmainを選択し、「実行」をクリック。

「このアプリは確認されていません」と表示された場合、
詳細>"プロジェクト名"(安全ではないページ)に移動>許可
の順でクリック。

これでLINE通知が来るようになっていればバッチリです!

今回作成した仕組みを使って、Gmail以外にもSNSのダイレクトメッセージ通知を一緒に受け取るための設定も紹介します。

Twitterの例で紹介します。
Twitterの場合もGmailと同様、
他の誰かが先にダイレクトメッセージを読んでしまうと
ポップアップ通知が消えてしまうので、
何かしら消えない通知が欲しいところ。
そこで、Twitterにログインし、以下のように設定していきます。

設定とサポート>設定とプライバシー>通知>メール通知
ダイレクトメッセージのみにチェックを入れる。

このように設定することにより、

Twitterダイレクトメッセージを受信したこと通知するメールをGmailに送信
↓
Gmailがメールを受信したことをLINEに通知

という流れができるため、SNSダイレクトメッセージの見逃がしもなくなります!
Twitter以外でもメール通知機能を持ったSNSであれば、同じように設定することでLINE通知を行うことができます。

■あとがき

以上がGmailの受信をLINEに通知する方法でした。
GoogleAppsScriptを初めて触ってみましたが、感想としてはいろいろな可能性を感じてワクワクしました。
バンドの軽作業、もっとラクしたい…!という欲がどんどん湧き上がってきました

そこで最近だと、
GoogleSpreadSheetに入力した内容を毎月自動でdiscordにリマインドしてくれる、
といったプログラムを書いてみました。
既存のbotだと細かい設定ができなくて融通が利かなかったりしたので。
まあテストで動いたっきり指定した当日に動いてくれなかったんですけどね…

めげずに頑張ります。仕事で得た技術をプライベートにも活かしたい。
岡村がいるからメンバーがラクできるバンドにします。
岡村本人は浮いた時間で"ゆるキャン△"を見ます。みんな幸せ!

また何か作ったら共有します!

オンライン英会話BizMatesを利用した感想!

こんにちは!
最近6年ぶりに会った友人と、10年前の話をしました。
過去は色あせないなと嬉しい半分、流れた歳月へのしみじみが半分の
ハイブリッド古関です。

本日は英語学習で使用していた、オンライン英会話BizMatesを使用した個人の感想をお伝えします!

Bizmateの概要

特徴・ビジネス特化型オンライン英会話
・全トレーナーがビジネス経験者
講師陣厳選されたフィリピン人の先生
プラン①と料金・毎日25分×1レッスン
 13,200 円(税込)
プラン②と料金・毎日25分×2レッスン
 19,800 円(税込)
教材についてビジネスシーンに合わせた教材を用意
(レベルは初学者から上級者用に分かれています)
予約可能時間5:00 ~ 25:00 (日本時間)

レベルにあった教材選択

Bizmatesで受講を開始する前に、無料体験レッスンでレベル診断が行われます。30段階のレベル別レッスンが用意されており、自分の状況にあった教材が用意されています。他レベルの教材を使用するには、1つのコースを終わらせる必要があります。

実際に受講し良かったこと、残念だったこと

実際の現場での英語を教えてもらえる

Bizmatesの先生方は全員ビジネス経験があります。そのため、自分と同じキャリアや業種の先生を選択する事が出来、実際の現場ではどういったコミュニケーションをとっていたかなど、実体験を教えていただくことができました。

私の場合は、先生のキャリアに IT depertment, programmer, system engineer という職歴がある方に絞って探しました。

自分にあった先生に出会うことができた

これは本当に個人の感想ですが、自分が信頼できる先生に会うことができました。その先生とは教材を指定して授業を進めるのではなく、想定されるシチュエーションで必要な英会話を教えて頂きました。

経験がある方なので、困ったときの対応や、先生の失敗談から学んだ対応方法など教えてくださり、本当にすてきな先生でした。

先生の予約が取りにくい

これは私が退会する原因になった部分なのですが、お気に入りの先生の予約が取りにくい点です。

先生方は副業として私たちに英語を教えてくださる方も多く、なかなか予約が取れませんでした。これはBizmatesに限ったことではないと思います。ですが、自分に合った先生を探す作業はなかなかに困難なため、他の英語学習を探すことにしました。

感想

Bizmatesの先生方は、たくさんアドバイスをくださる優しい先生方が多かったです!

いろんなサービスを利用して、自分に合った英会話学習を行っていきたいと思います!

iPhoneでselect要素optionに「display:none;」が効かない罠

やりたかったこと

ある選択肢の選択内容によって、一つのセレクトボックス内のoption要素を出し分けできるように実装したい件がありました。
非表示にするだけであればCSSをあてなくてもコメントアウトや削除で十分なのですが、今回は別の選択内容と連動する仕様だったため、jQueryを使用して選択内容の条件に対し動的にCSSをあて、セレクトボックスの中身が変わるよう実装しました。

デベロッパーツールでは気づけない問題

ステージングの段階で実機確認ができない環境下だったため、PCブラウザ(chrome/Edge/FireFox)のデベロッパーツールよりスマホの表示確認を行いました。この段階ではコンソールエラーもなく、セレクトボックスの中身は問題なく出し分けができていました。
しかし、実際にiPhone上で確認してみると、option要素へのCSS「display:none;」が効いておらず、すべての選択肢が表示されている状態で出し分けができていませんでした。

まず最初にjsファイル自体の読み込み問題を疑いましたが、同一ファイル内で実行している選択肢変更によるセレクトボックスの選択初期化は問題なく動作確認ができていました。
またsafariの拡張機能デベロッパーツール「Web Inspector」上でコンソールエラーもなかったので問題に気づきにくく、原因究明と解決に少々手間取りました。
これはsafari特有の現象かと思いましたが、アプリ版chromeでも同様の現象が起きていたので、どうやらiPhoneではブラウザ問わず起こる問題のようでした。

今回は、この問題に対して、試してみたことや解決した方法を備忘としてまとめたいと思います。

前提

・HTML、CSS、jQueryの使用で実装
・一つのselect要素で行う

クラスで「select-a=条件aを選択した場合に表示する選択肢(a-1, a-2)」「select-b=条件bを選択した場合に表示する選択肢(b-1, b-2)」と分けています。

試したこと (うまくいかなかった例)

● jQueryでCSS「display:none;」を付与

ブール値「selectedA=条件a」がtrueの場合、「select-a」のみ表示したいので、セレクタ「.select-a」を指定しcssメソッドで「display:inline;」とします(非表示(条件b)→表示(条件a)へ切り替わるパターンも要考慮)。
「select-b」は非表示にするので「display:none;」を付与します。
else内(条件b)では、逆の内容でCSSを付与。

こちらはPC上の確認では問題はありませんでしたが、下の画像のようにiPhone実機では適応されず「select-a」「select-b」どちらの選択肢も表示されてしまいます。

  

● jQueryメソッド「.show()」「.hide()」を使う

jQueryメソッドを使った方法です。パラメーターを指定せず「.show()」を実行すると前述の「.css("display", "inline")」と同じ挙動ではあるので、こちらも同様にiPhone実機では適応されませんでした。

● CSSでデフォルトスタイルを初期化

ブラウザ特有のスタイルが影響している可能性も考え、appearanceプロパティで標準スタイルを解除してみました。select要素、option要素それぞれにあててみましたが、期待した変化はありませんでした。

解決した方法

● CSS有効のspan側で「display:none;」を付与し、非表示にするoptionを囲む ( .wrap() )

optionにCSSが効かないのであれば、iPhone上でもきちんとCSSが効く要素を使う必要があると思い、試しにspanタグを使ってみたところ、うまくいきました。

↑ まずは非表示用クラスを準備します。クラス「selector-hide」にはCSS「display:none;」を付与して非表示となるようにします。

↑ 条件aのとき、非表示にしたい「select-b」に対し「.wrap()」を使用して、非表示用クラス「selector-hide」のspan要素を付与します。

↑ これにより、条件aのときは、非表示用クラス「selector-hide」のspan要素がセレクタ「.select-b」を囲います。


また、条件b→条件aになったときは「select-a」の再表示が必要なため、付与前にすべての「selector-hide」のspan要素を「.unwrap()」でリセットします。

「.unwrap()」は指定したセレクタの親要素を削除します。
単純に「select-a」のwrapを解除するので「$('.select-a').unwrap();」とすればいいように思いますが、「select-a」が「selector-hide」にwrapされていない場合の親要素はselect要素になるため、select要素が削除対象となってしまいます。
これを回避するために、「.contents()」で「selector-hide」の子要素を指定し、その親要素である「selector-hide」をunwrapするようにしています。
この方法であれば、「selector-hide」にwrapされていない状態のoptionについてはunwrapの対象外となり、select要素を削除することはありません。

結果

span要素「selector-hide」にCSSが効いて、中身のoptionまるごと非表示が成功しました。
条件a ↔ 条件b の切り替えも、iPhone上で正常に実装できました。
もちろんPCのブラウザ上でも問題はありません。

まとめ

デベロッパーツールでの表示確認はあくまでも疑似的再現であり、当然ですが完璧ではありません。いろんなデバイスでの表示が一つの画面で可能で、ついついその便利さに、さも正常に表示されているかのように錯覚してしまいますが、実際は気づかないところで意図しない挙動になってしまっているという落とし穴がひそんでいるものですね。
もとよりiPhoneでの表示のクセや違いなどについての知識があれば、今回の件も事前に把握できていたかもしれませんが、めまぐるしいスピードでアップデートされてゆく日々のなかでは、既存の知識や常識も突如として通用しなくなることも多々あり、知識は知識で蓄えつつ、可能であるならやはり事前に実機で検証するに越したことはないと改めて感じました。

とはいえ、デベロッパーツールが万能であることはいうまでもなく、これからもデバッグできるところはきちんと確認しつつ、過信しすぎず実機の動作確認とあわせてうまく活用していきたいです。

今年のふるさと納税は何にしますか?

あっ・・・・。
という間に2022年も年末が近づいてきましたね。
個人的には、  年末=【ふるさと納税 締切間近】 という感覚になります。
計画的ではないので、毎年年末にふるさと納税サイトを見てバタバタして購入しています。
仕事上関わることもあり少し、ふるさと納税について少し調べてみました。
ふるさと納税は、非常に伸びているマーケットだと思います。
ふるさと納税の寄付額は2020年は6800億円(前年対比140%)で、22021年度は寄附額8,300億円(前年対比120%超)寄附者は740万人で過去最多となっています。
弊社でも ふるさと納税を運営している店舗(自治体)さんとのお付き合いが 増えてきていますね。

ふるさと納税の仕組み

寄付者目線でいくと、自分が選んだ地域に寄付をすることで、実質2,000円で好きな返礼品がもらえる仕組みですね。事業者目線でいくと、まず自社の製品や産品を該当する自治体に出品し寄付が入ると、予め自治体に伝えていた金額が自治体から支払われる仕組み。

例えば、3,000円の商品を販売している事業者がその商品をふるさと納税に出品したとすると、自治体は返礼品の調達額を30%にする決まりがあるので、掲載金額は10,000円となります。

寄付が入ると、3,000円を事業者に支払い、販売手数料などの諸経費を20%にあたる2,000円以内で納め、50%の5,000円を自治体の歳入にしているようです。つまり、事業者側では、3,000円で出品し、寄付が入ると3,000円自治体から支払われるというシンプルな構造になっています。
また寄付者への送料については、自治体が負担しているようです。
したがって、出品時に関しては自治体との書類のやり取りなどが発生しますが、それ以外はにスピーディーに販売(寄付)に進むことができます。

寄付額 1位から20位(市の部)

総務省「ふるさと納税に関する現況調査等、令和3年度受入額の実績等」引用

寄付額ランキングを見ると、北海道強いですね。
TOP5に3つ入ってますね。 弊社のお付き合いある店舗様もランクインしています。
個人的に気になったのは2位の宮崎県です。都城市ではないのですが、宮崎県で食べた餃子が美味しかったので、ふるさと納税で探してみたらありました。
餃子の印象は、宇都宮や、浜松という方もいるかもしれませんが、実は、なんと、
2021年 の 餃子消費 額日本一は 宮崎市なんですね。宮崎は餃子の激戦区ですね。

焼き餃子協会データ 引用


旅行で宮崎に行ったときにお勧めされた高鍋町にある馬渡の餃子 は食べた時衝撃をうけました。
外はカリッ 中はモッチモチとして、美味しいです。こちらお勧めです。
餃子とビア~ 🍺 最強説あります。無限に食べられます。
ふるさと納税もあります! 是非 機会があれば食べてみてください~。

店舗さんも、自社の商品を伸ばしていくためにふるさと納税を活用してみるのも1つだと思います。

いろいろなふるさと納税サイトありますが、個人的には購入は、楽天ふるさと納税を多く使ってます!
買い回りや、イベントでポイントもゲット!できるのでお勧めですね。
いろいろな地域のいろいろな商品、イベント等、発見できる、そんな目線でもふるさと納税を利用してみるのも良いと思います!

健康優良企業(銀認定)に認定されました

グリニッジ株式会社は、この度、健康保険組合連合会東京連合会より、令和4年10月5日付で
健康優良企業(銀認定)に認定されました。
こちらの認定は健康保険組合と協力して健康企業宣言を行い、健康経営健康づくりの取組みを積極的に行っていることの証となります。 

銀の認定証

健康企業宣言とは

健康企業宣言とは、企業全体で健康づくりに取組むことを宣言し、その取組みのサポートを関東ITソフトウェア健康保険組合と健康保険組合連合会東京連合会が共同で行うものです。 取組みによって一定の成果を上げた場合は「健康優良企業 」として認定されます。

今回グリニッジでの取り組みが評価され「健康優良企業 」として認定されました。

またこちらの「銀の認定」は、経済産業省等において推進する「健康経営優良法人認定制度 」【中小企業部門】において、受けることが申請要件ともなっています。

令和3年11月1日より健康企業宣言後、自社の健康課題の解決に向け、目標・計画を立て、取り組みを継続的に実践してきたものが少しずつ形になってきました。次は、健康経営優良法人認定もチャレンジしていきたいと思います。

更によりよく社員の働きやすく、社会に貢献できる生産性の高い企業を目指して頑張っていきたいと思います。