2023年5月30日火曜日

突然エラーになってログインできなくなったアカウントは「停止されたGoogle Workspaceアカウント」と関連はあるのか

5月か6月ぐらいのこの時期ぐらいに、アカウントに突然ログインできなくなったという話が時々でてきます。その場合、無料版 Gmail( @gmail.com )ではなく大学等学校から貸与されたアカウントの場合もあるかもしれません。

大学では、データ移行のために卒業後(離職後)一定期間(30日だったり 90日だったり)の猶予期間が設けられている場合もあります。そうした場合には、即時使えなくなるのではなく、少したってから使えなくなります。

さてここでは、組織的に管理運用される Google Workspaceのアカウントが管理者によって「停止」された場合、利用者側からみてどのような挙動になるのか検証した結果を備忘録として残します。この検証は 2023年5月30日のものであり、将来的なアップデートなどによって変更されることがある点はご注意ください。

以下検証した結果、「突然ログインエラーになり、パスワードを入力してもエラーになる」ちう現象がこのケースでは起こるということになります。

特に学校から貸与されたアカウントで長らく Googleフォトなどデータを蓄積していた場合(そういう認識なく)、そのデータに突然アクセスできなくなるので注意が必要です。卒業を控えている場合には、自分がどのアカウントでデータにアクセスしているのか、保存しているのかを改めてチェックするとよいかと思います。


停止されたアカウントへメールした場合


無料版 Gmailから、停止されたアカウントへメールした場合、すぐに配送できなかったというエラーが返信されました。理由は、アドレスが存在しないかアクセスできないかのいずれかだということです。


停止されたアカウントで Googleへログインした場合


メールアドレスとパスワードでログインした後に、下記のように「アカウントが無効になっています」とともに、いつ利用できなくなったのか(停止されたのか)の情報も出てきます。

なおアカウントが完全に削除されてしまうと、下記のようにログインするためのメールアドレスを入力したあとに、アカウントが見つからないというエラーになります。


次にスマートフォン上ではどのようになるかを検証してみます。

iPhoneの場合


標準メールアプリ


設定 > メール > アカウント > [Google アカウント] をみると、「アカウントにアクセスできませんでした。」というエラーともに、「パスワードを再入力」画面がでます。そしてパスワードをいれてもエラーのままです(アカウントが停止されているから)。


また、停止されている状態で、設定 > メール > アカウント > アカウントを追加 よりアカウントを追加しようとすると、メールアドレスとパスワードを入力後に下記のように「アカウントが無効になっています」とともに、いつ利用できなくなったのか(停止されたのか)の情報も出てきます。



Gmailアプリの場合


Gmailアプリに追加した、 Google Workspaceアカウントが停止された場合、Gmailアプリを同期(読み込み直す、起動しなおす)するとGoogle Workspaceアカウントの設定そのものが消えます

下記のように追加されていても、アカウントが停止されるとGmailアプリから設定そのものが消えるということです。


また再度 Gmailアプリから追加しようとしても、パスワードが正しくないとエラーになります。


Android 13(Google Pixel)の場合

アカウントが停止されると、設定 > パスワードとアカウント > [Google アカウント] > アカウントの同期 において「現在同期で問題が発生しています。しばらくお持ちください。」とでます。


またその状態で、Gmailアプリからメールを送信すると、送信したメールは「送信済み」に入らず、「送信トレイ」に「キューに追加しました」として残ります。同期できないので、アカウント停止された場合には、送信されずにそのままの状態になるということです。


なおデバイスからアカウントを削除して追加し直そうとすると、メールアドレスとパスワードを入力した後に、「アカウントが無効になっています」とともに、いつ利用できなくなったのか(停止されたのか)が表示されます。


以上のように、会社、学校等が保有する独自ドメインで Google Workspaceを契約された場合、そのアカウントが組織側で停止されると、上記の振る舞いになるということになります。

2023年5月30日 @kimipooh

2023年5月28日日曜日

【備忘録】Android における Gmailアプリのキャッシュ削除、ストレージ削除方法

割と Gmailヘルプコミュニティで回答することがあるので、まとめておきます。

Pixel7a (Android 13) でテストしました。

設定(アプリ) > アプリ > すべて表示 > Gmail > ストレージとキャッシュ

を開くと右図のような画面になります。これはどのアプリも共通です。

Gmailで表示がおかしいなと思ったら、キャッシュを削除。データがおかしい場合には同期がうまくいっていない可能性もあるので、「ストレージを消去」してみてください。

ただしストレージを消去すると、再度ログインする必要があるかもしれません。

再度ログインしようとしてパスワードを忘れていたなどの事態が起こったことを想定して、電話番号等復旧オプションを確認しておくと良いともいます。

参考:Google アカウントを強化する:https://support.google.com/accounts/answer/46526?hl=ja






2023年5月11日木曜日

Google Bard の試用(Google I/O 2023の日本語対応発表をみて)

 Google I/O 2023 において Google Bard 日本語対応(日本語と韓国語)したという発表があったので早速使ってみました。

無料版 Gmailを持っているなら、Bardへのアクセスすると試用に関して同意画面が出てきて同意すると使える画面が出てきます。Google Workspaceの場合には、管理者による Early Access Apps サービスを有効化する必要があります。

まだ試用版ということで、間違った情報が結構でてきている感じはします。そこは、「他の回答案を表示」をクリックして、そちらをチェックする。Good、Badボタンを押して評価することでより良くしていくというのも大事かなと思います。

またGoogleドキュメントや Gmailへのエクスポート機能もありますね。こちらはコピー&ペーストでも代用できそうな感じはします。いずれにせよ、これで ChatGPTなど競争が激化していって、5年、10年後にはどうなっているのかワクワクしますね!

2023年5月11日 @kimipooh

2023年5月4日木曜日

パスキーを使って Googleアカウントにログイン

 2023年5月4日現在、パスワードを使わずに指紋認証、顔認証、画面ロック等を使ってログインするパスキーが実装されたようです。現時点では Google Workspaceは非対応。2段階認証の確認もこのパスキーをつかうことで、2段階認証を有効にしながら確認不要にできるようです。注意点は共用端末では使わない、とのことです。

パソコンの場合には、パスキーは端末に保存されます。その端末のロックを解除できる誰もがログインできてしまうため、共用端末では設定しないでということでしょう。

情報源


MacとiPhoneでパスキーの作成


Android OSは古すぎるOSなら分かりませんが、下記の様に自動的にパスキーとして Googleアカウントに登録されるようです。それ以外の端末は手動でパスキーを作成する必要があるのだと思います。

下記にアクセスして、指示に従います。

初めての場合には、パスキー作成の画面が出てきて、認証として他の端末でQRコードスキャン(Android OS系が必要?)するか、別の方法を試して認証して作成します。
別の方法を選択せずに、手持ちの Android 端末のカメラで QRコードをスキャンして認証しました。ここ別の方法としてなにが試せるかまでは分かりません(最初に1度しか出てこないので確認できず)。

うまく作成できれば、下記のパスキーの「手動で作成したパスキー」に追加されます。


手動登録したのは、 Macの ChromeiPhoneのChromeです。 iPhoneのほうは Macと判断されているみたいですね。

実際に使ってみる


ログインしていない、Cookie をすべて無効にした プライベートウィンドウ(Chrome)場合、QRコードをスキャンせよ(すでにパスキーを保存した端末のカメラでスキャンしてURLにアクセスした後「許可」ボタンを押す)という画面がでてきます。




Macのほうは iPhone のカメラでスキャンして許可したことで、ログインできました。

プライベートウィンドウだとそうなりますが、通常だと端末に保存したパスキーをつかうかどうか聞いてきます。Macの場合には下記のように Touch IDを使ってログインできました。


iPhoneでは、iPhoneで認証できる方式(手持ちの iPhone13では顔認証)でログインできました。

ということでパスワード不要でログインできるようになったのはかなり便利ですね!ただしうっかり共用端末でパスキー作成してしまうと大変なことになるのでそこは注意です!

2023年5月4日 @kimipooh

2023年4月6日木曜日

【GAS】Google Analytics 4 のデータを Googleスプレットシートに集約し、PDFでメール添付する方法(アドオンなし編)

 以前やり方について書き出していたのは、アドオン「Google Analytics™ connector by SyncWith」を活用したものでした。

この方法についてはアドオンが無料でできる範囲が限られてしまうため、今回はアドオンなしでの方法を紹介します。

今回は Google Analytics 4 限定の方法なります。

STEP 1. Googleスプレットシートの準備


Googleスプレットシートを作成し、「Configuration」シートを作成。
そのシートに下記の情報を入力します。


1行目:タイトル等、なんでもよい
2行目:
 A2:Report Name(名称は何でも良い)
 B2, C2, D4 と2列目から各列に生成するシート名を入力
3行目:
 A3:Property ID(名称は何でも良い)
 B3, C3, D3 と2列目から各列に Google Analytics 4 のプロパティIDを入れる
4行目:
 A4:Start Date
 B4, C4, D4 と2列目から各列に取得したい範囲(開始日)を入力(日付形式 2022/04/01 や 2022-04-01等)
5行目:
 A5:End Date
 B5, C5, D5 と2列目から各列に取得したい範囲(終了日)を入力(日付形式 2023/03/31 や 2023-03-31等)

STEP 2. Google Apps Script の挿入と初期設定


Googleスプレットシートの拡張機能 > Apps Script を選択して Google Apps Script エディタを起動します。


Google Apps Scriptエディタが開いたら、すでに入力されているサンプルコードを削除して、下記のURLにあるコードをコピーして、ペーストしてください。

- get_GA4_with-GAS.gs (GitHubに置いています)


すると下図のようにコードが入っているはずです。


一旦これでコードを保存してください。
名前は好きなもので構いません。ここでは get_GA4という名前にしたとして話を進めます。


コードはそのままでも動作しますが、いくつか設定を変更することで取得データの変更が可能です。

STEP 1で作成した「Configuration」シートの名前を変更した

下記の赤文字部分も変更してください。

const Configu_sheet = 'Configuration';

Dimension の変更や追加をしたい

下記の Dimensions 配列に追加してください。
標準では国別のアクセスログ集計になります。
const Dimensions = [
  {name: 'country'},
//  {name:'eventName'},
];

Metirics を追加したい

下記の Metrics 配列に追加してください。
標準は、アクティブユーザー(訪問者数)と表示回数(アクセスログ)になります。
const Metrics = [
  {name: 'activeUsers'},
  {name: 'screenPageViews'},
//  {name:'eventCount'},
];
Dimensions に対してフィルタを使いたい

下記の Dimensions_filters を有効にして条件をいれてください。
現在は /* と */ でくくることで無効化しています。これを外すと、 Dimensions で eventName を取得したときに page_view に 限定にできます。
/*
const Dimension_filters = {
filter: {
fieldName: 'eventName',
stringFilter: {
value: 'page_view'
}
}
}
*/

STEP 3. Google Apps Script のサービス追加と実行

左サイドメニューの「サービス」の「+」をクリックしてください。


そして、Google Analytics Data API を選択して追加してください。



次に下図の「実行ログ」の左側にある関数が「runReport」になっているのを確認して、「実行」をクリックしてください。

すると最初に実行するときに、権限に関する承認・許可画面がでてきます。

下記の表示がでてくれば「権限の確認」に進んでください。

無料版 Googleアカウントの場合、「このアプリが確認されていません」という警告がでてくるかもしれません。その場合には「詳細」より、「安全でないページ」への移動をしてください。スクリプトの安全性が不明だということで出ます。


あとは実行するアカウントを選択し、


アカウントに対してこのスクリプトの実行許可を与えてください。



そうすることでスクリプトの実行が可能です。
うまく実行されれば Configuration シートの  Report Nameで設定したシート名ができているはずです。そこにGoogle Analytics 4 のデータが入っているはずです。


STEP 4. Googleスプレットシートにまとめページ「TOTAL Summary」シートを作成

個別の Google Analytics 4 のデータはこれで取得できたので、次は一覧ページを作成します。

シートの2行目まではメモとなります。ただしメールで送付されることになるので、ログの取得期間などの情報をいれておくと便利かと思います。


上記で重要なのは、次の4つです。

Sheet Name: Google Apps Scriptで生成したシート名

Access Log: 関数「=SUM(INDIRECT(B5 & "!C:C"))」を入れる
*Sheet Name!C:C(screenPageViewsの欄)の合計値となります。

Visitors: 関数「=SUM(INDIRECT(B5 & "!B:B"))」を入れる
*Sheet Name!B:B(activeUsersの欄)の合計値となります。

Countries: 関数「=COUNTIF(INDIRECT(B5 & "!A:A"), ">=A")」をいれる
*Sheet Name!A:A(Countryの欄)が空欄でない場合
*COUNTA や COUNTIFの "<>" 条件の場合、空欄にみえてデータが入っているのかうまくいきません。そのため、C言語でよくやる文字の数値での比較「C言語における文字(文字変数char)・文字列の表現(ASCIIコード表つき)」が使えるんじゃないかーと思ってやってみたら上手く言った程度です。ここは改良の余地ありですね。

TOP 10 of Countries: 関数「=INDIRECT(B5 & "!A2:A11")」を入れる
このあたりは、A2:A21すると TOP 20なども可能です。

STEP 5. トリガー(スケジュール)の設定


手動での実行がうまくいったなら、次は定期的に実行するトリガーの設定をしてみましょう。トリガーを使って定期実行するということは、まず Google Analytics 4 で取得する開始日と終了日が自動的に変更にならないと意味がありません。毎回同じ期間を取得してもいみがないということです。

そこでいくつかの例を紹介しておきます。

1日前のみ取得
Start Date: =TODAY()-1
End Date: =TODAY()-1

前月のみ取得
Start Date: =DATE(YEAR(TODAY()),MONTH(TODAY())-1,1)
End Date: =EOMONTH(TODAY(),-1)
*EOMONTH の代わりは、=DATE(YEAR(TODAY()), MONTH(TODAY()) + 0, 0) でも構いません。

今年度のみ取得
Start Date: 年度開始日
End Date: =EOMONTH(TODAY(),-1)

Google App Script エディタの左サイドメニューにある「時計」マークを選択します。



下図のように「トリガーを追加」ボタンがあるのでクリックします。

下図のように、実行する関数を runReport にして、毎月実行するようにスケジュールを設定してから保存します。保存後、Google Apps Scriptを初めて実行したときのように、アカウント指定と権限付与の許可を求めてくるので許可を与えてください。


設定できれば下図のようにトリガーが設定されています。
指定した日時に実行された場合、下図に成功したのか失敗したのか記録されます。

STEP 6. 一括取得した Googleスプレットシートの特定シートデータをメール本文(HTML)と PDF にして添付したメール送信


基本的には下記の後半「(後半)一括取得した Googleスプレットシートの特定シートデータをメール本文(HTML)と PDF にして添付したメール送信」を参照してください。
の部分です。こちらは、実際に 「TOTAL Summary」シートで処理したい(メール本文やPDF添付)範囲を指定してください。こちらは作り込みが面倒なので手動設定にしています。



2023年2月16日木曜日

Googleスプレットシートと連携したGoogleフォームに入力されたデータを自動折返しする方法

 Googleフォームに入力したデータを、自動で Googleスプレットシートに保存する設定をしている場合、入力データが長いとセルからはみ出して表示されています。その都度、一括で折り返し設定をすればよいのですが、ここをプログラム(Google Apps Script)で自動で折り返したい場合もあるかもしれません。これを実現する方法を備忘録としてまとめておきます。

STEP 1. コーディングする


1. Googleスプレットの拡張機能 > Apps Scriptを開く。



2. 既存のコードを削除して置き換える。


参考:https://speakerdeck.com/kimipooh/practice-lets-experience-more-comfortable-google-services-with-google-apps-script?slide=10

既存のコード

function myFunction() {

}

置き換えるコード


function autoWrap() {
 var sheet = SpreadsheetApp.getActiveSheet();
 const lastRow = sheet.getLastRow();
 const lastColumn = sheet.getLastColumn();

 sheet.getRange(lastRow, 1, lastRow, lastColumn).setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP);
}

function all_autoWrap() {
 var sheet = SpreadsheetApp.getActiveSheet();
 const lastRow = sheet.getLastRow();
 const lastColumn = sheet.getLastColumn();

 sheet.getRange(1, 1, lastRow, lastColumn).setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP);
}
置き換えたらコードを保存します。

STEP 2. トリガー(いつ実行するのか)を設定する


下図のように左サイドメニューの時計マーク(トリガー)を選択し、「トリガーの追加」ボタンをクリックします。

表示されたトリガーは、次のように設定します。

実行する関数を選択:autoWrap
イベントの種類を選択:フォーム送信時
エラー通知:今すぐ通知を受け取る


ここで保存します。
このとき、下記にあるように安全性が確認されていないなどエラーがでることがあります。その場合には下記のリンク先を参考に、詳細から「安全でないページへ移動」リンクを押して許可してください。

STEP 4. 作成した Google Apps Scriptを実行してみる


STEP 3. テスト


Googleフォームから入力したデータが、Googleスプレットシートの各セルで折り返していることを確認してみてください。
ただし、下図のようにすでに入力されたデータは折返ししません。


もし、すでに入力されたデータも含めて一括で折り返ししたい場合には
先程作成した Google Apps Scriptの画面を開いて、実行する関数について「all_autoWrap」を選択した上で、「実行」ボタンをクリックしてみてください。


2023年2月16日 @kimipooh

2023年2月3日金曜日

macOS Ventura でデスクトップ等に保存したURLのショートカットファイルのデフォルトブラウザがSafariから変更できない

下記の Chromeヘルプコミュニティで質問があり、手持ち端末で再現しました。解決策が少し長くなるのでブログに備忘録的にまとめます。 本情報は 2023年2月3日時点のものであり、手持ち端末で試して結果のものです。すべての端末で使えるかどうかは分かりません。

MacでブラウザはGoogle Chromeでデフォルト設定もしてありますが、ショートカット作るとショートカットのデフォルトブラウザがsafariになってしまします。

再現した環境

  • M1 MAX MacbookPro 16inch
  • macOS Ventura 13.2

再現手順

  1. Google Chromeブラウザでウェブサイトを開く
  2. URL欄の鍵マーク部分をドラッグして、デスクトップへペーストする
    *すると下記のようなアイコンができます。
  3. 「情報を見る」から「このアプリケーションで開く」を見ると、Safariが指定されされている。
     *Safariや Chromeブラウザ設定では、デフォルトブラウザは Google Chromeにしている。更にこの設定は、変更不可となっている。

関連情報

解決手段


上記関連情報を参考に、下記の設定をすることで解決しました。

  1. 下記より、SwiftDefaultApps(zipファイル) をダウンロード
    https://github.com/Lord-Kamina/SwiftDefaultApps/releases

  2. ダウンロードした zipファイルを展開し、「SwiftDefaultApps.prefpane」を開く
  3. 現在ログイン中(端末のユーザーの話)のユーザーか、すべてのユーザーのいずれにインストールするか聞いてきます。どちらでもよいですが、私の場合には現在ログイン中のユーザーへインストールしました。

  4. システム設定の左サイドメニューの末尾に「SwiftDefaultApps」が追加されているはずです。
    こちらの「Uniform Type Identifiers」タブにアクセスし、「com.apple.web-internet-location」の項目を開いてください。こちらが Safari担っていると思います。これについて「Other」を選択して、Google Chromeなど変更したいブラウザを指定してみてください。
  5. うまく設定できれば、下図のように Safari以外が選択されていると思います。


  6. その状況で再度、デスクトップ等に保存していたURLショートカットファイルの「情報を見る」から、「このアプリケーションで開く」が変更したブラウザになっていることを確認してみてください。

2023年2月3日 @kimipooh