よくある質問

一般および管理

アプリの機能(ウィジェット、ページ、ナビゲーション)

Cloud SQL

データ

スクリプト

セキュリティと共有

スタイル設定

トラブルシューティング

一般および管理

私の組織は App Maker にアクセスできますか?

App Maker は特定のエディションの G Suite でのみ使用できます。使用中のエディションが不明である場合は、G Suite 管理者にお問い合わせください。管理者は管理コンソールの [ホーム] ページから [お支払い] に移動し、[サブスクリプション] で G Suite のエディションを確認できます。

App Maker の利用可能状況
G Suite Business
G Suite Enterprise
G Suite Education
G Suite Basic×
G Suite for Nonprofits×
個人の Google アカウント×

App Maker の設定はどこで管理できますか?

G Suite 管理者としてログインし、管理コンソールの App Maker 設定ページに移動します。

App Maker にはどのようにアクセスできますか?

https://appmaker.google.com/ に移動します。Chrome、ドライブ、Gmail、その他の G Suite サービスの UI で Apps をクリックしても、App Maker アイコンは表示されません。App Maker プロジェクトを所有しているか共有している場合は、ドライブから開くことができます。

ユーザーがアプリを開くときに権限ポップアップが表示されます。どうすればオフにできますか?

G Suite 管理者がアプリをホワイトリストに登録するようにします。各アプリは個別にホワイトリストに登録する必要があります。

App Maker ではバージョン管理は可能ですか?

必ずしも可能ではありません。テストデプロイや本番環境デプロイなどでは、複数のバージョンのアプリを同時にデプロイできます。たとえばアプリを開発したら、本番環境用に公開できるようになるまではテスト用に公開します。アプリを過去の状態(リビジョン)にロールバックすることもできます。ただし App Maker ではブランチはサポートされていません。編集できるのは最新バージョンだけです。

利用可能なリビジョンのリストを見るには、[Settings]( [Revisions] の順にクリックします。詳細については、リビジョンをご覧ください。

アプリの機能(ウィジェット、ページ、ナビゲーション)

プルダウン メニューやラジオボタン グループのデフォルト値はどのように設定できますか?

  1. キャンバスでウィジェットを選択します。
  2. プロパティ エディタで [イベント] をクリックします。
  3. [onAttach] テキスト ボックスをクリックし、[カスタム操作] をクリックします。
  4. 次のコードをコードエディタに貼り付け、「My default value」を実際の値に置き換えます。

    widget.value = "My default value";
        
  5. [完了] をクリックします。

Cloud SQL

App Maker には Cloud SQL が付属していますか?無料版の Cloud SQL はありますか?

Cloud SQL を使用するには Google Cloud サブスクリプションが必要です。App Maker で使用できる無料版の Cloud SQL はありませんが、その他の外部オプションを使用できます。

G Suite 管理者は、App Maker アプリで使用できるデフォルトの Cloud SQL インスタンスを設定できます。

カスタム Cloud SQL インスタンスを設定する前にデフォルトの Cloud SQL インスタンスを設定する必要があるのはなぜですか?

デフォルトの Cloud SQL インスタンスは便利な機能です。デフォルトのインスタンスを設定することで、App Maker デベロッパーが各自で Cloud SQL インスタンスを設定する必要がなくなります。多くの組織では、デベロッパーがアプリのプロトタイピングとテストを行う間はデフォルトのインスタンスを使用し、本番環境用のアプリとしてデプロイが可能になった時点で、カスタム インスタンスに切り替えています。

デフォルトの Cloud SQL インスタンスのサイズはどの程度にすべきですか?

多くの組織では、サイズの小さいインスタンスから開始し、App Maker を使用するユーザーとデベロッパーが増加するに従ってサイズを大きくしています。

データ

App Maker を通じて Google スプレッドシートを管理できますか?

はい。例としてはスプレッドシート サンプルアプリをご覧ください。

ユーザーがレコードを作成したときに、アプリのユーザー名や日付データを自動的に追加できますか?

はい。多くのレコードには、ユーザーに関するデータと、レコードが作成された時刻のデータが含まれています。ユーザーにこの情報の入力を指示する代わりに、情報が自動的に取得されるように、モデルの onBeforeCreate イベントのサーバー スクリプトを追加できます。

以下のスクリプトによってユーザーのメールアドレスが取得され、[ユーザー] フィールドに保存されます。また日付データが取得され、[日付] フィールドに保存されます。

record.user = Session.getActiveUser().getEmail();
    record.date = new Date();
    

スクリプト

App Maker スクリプトではどの言語が使用されますか?

サーバーとクライアントのスクリプトは JavaScript で記述できます。サーバー スクリプトは Apps Script で実行されます。ここではその他の G Suite サービスとのアプリ統合がサポートされています。

App Maker では JavaScript ES6 はサポートされていますか?

ES6 はクライアント スクリプトの場合のみサポートされており、サーバー スクリプトではサポートされていません。整合性を確保するために、常に ES5 を使用することをおすすめします。クライアント スクリプトで ES6 構文を使用すると、アプリの作成中に警告が表示されますが、アプリを公開する時点でスクリプトが実行されます。

スクリプトに制限はありますか?

Apps Script サービスに対する呼び出しは、1 日の割り当てと実行時間の制限に応じて制限されます。これは G Suite のエディションによって異なります。割り当てや時間制限を超えると、アプリで例外がスローされ、エラー メッセージが表示されます。詳細については、Google サービスの割り当てをご覧ください。

検索バーにスクリプトまたはファンクション名を入力します。検索結果には、一致したスクリプトとイベントに対するクリック可能なリンクが示されます。

サーバーのスクリプト操作が失敗した場合、エラーをどのように報告できますか?

クライアント スクリプトから(google.script.run を使用して)サーバー関数を実行する場合は、withSuccessHandlerwithFailureHandler を使用してサーバー側のレスポンスを処理します。

たとえば、ユーザーが [給与を見る] ボタンをクリックして給与を計算できるアプリを作成するとします。ここで、ユーザーとユーザーの上司だけがユーザーの給与情報を見ることができるようにします。その場合は、アプリの現在のユーザーが給与情報を取得する権限を持っているかをチェックしながら、ユーザーの給与情報を取得するサーバー スクリプトを記述します。

function calculateUserSalary(user) {
      var currentUser = Session.getActiveUser().getEmail();
      if (currentUser !== user && !isManager_(currentUser, user)) {
        throw new app.ManagedError(currentUser +
            " does not have access to salary for " + user);
      }

      // Gets the salary of the user...
      return getSalary_(user);
    }
    

サーバー スクリプトが正常に実行されると、アプリの UI で、onClick ボタン操作によって給与情報が返されるようになります。サーバー スクリプトによってエラーがスローされると、.withFailureHandler 関数が実行されます。この例では、サーバー スクリプトによってエラーが返されると、ユーザーが給与情報を取得する権限を持っていないことを示すアラートが表示されます。

google.script.run.withSuccessHandler(function(res){
      console.log("Salary is " + res);
    }).withFailureHandler(function(error) {
      alert("Error: " + error.message);
    }).calculateUserSalary(app.user.username);
    

クライアント スクリプトで成功 / 失敗のコールバック関数を使用することで、クライアントのレスポンスを処理し、その後スクリプトを実行できます。たとえばデータソース内にレコードを作成するスクリプトがある場合は、操作後に実行される成功 / 失敗コールバック関数をインクルードできます。

widget.datasource.createItem({
      success: function (record) {
        alert('Record with ID ' + record.id + ' was created in the database.');  // executes if record was created
      },
      failure: function (error) {
        console.info("No new record for you!"); // executes if record wasn't created
      }
    });
    

トリガーするためのユーザー イベントがなくてもスクリプトが実行されるようにすることはできますか?

はい。Apps Script を使用して、サーバー スクリプトのトリガーを設定できます。詳細については、インストール可能なトリガーをご覧ください。サンプルはサンプル: トリガーで確認できます。

セキュリティと共有

組織外部のユーザーとアプリを共有することはできますか?

いいえ。アプリを使用できるのは G Suite 組織内のユーザーだけです。アプリによっては、Google フォームを使用してユーザー入力を Google スプレッドシートに収集し、スプレッドシートからデータをインポートすることで、この制限を回避できます。

アプリを使用する Google グループ権限をどのように付与できますか?

デプロイ設定の [アプリケーション アクセス] にグループのメールアドレスを入力します。

グループを追加するための要件:

  • 一般公開の(@googlegroups.com アドレスを持つ)Google グループは追加できません。
  • Google アカウントに、グループのメンバーシップ リストを表示する権限が必要です。

スタイル設定

マテリアル デザイン アイコン(ボタンのスタイル設定用)の詳細はどこで確認できますか?

https://material.io/icons/ にアクセスしてください。

トラブルシューティング

オプションがないため、アプリに Cloud SQL データモデルを追加できません。どうすればよいですか?

Cloud SQL モデルのオプションを使用できない場合は、G Suite 管理者が、アプリで使用できるデフォルトの Cloud SQL データベースをセットアップする必要があります。アプリのニーズに応じて、デフォルトのデータベースの代わりにカスタム Cloud SQL データベースを使用できます。

セットアップしたカスタム Cloud SQL データベースに切り替えることができません。なぜでしょうか?

カスタム Cloud SQL データベースに切り替えるには、G Suite 管理者がデフォルトの Cloud SQL データベースをセットアップしておく必要があります。

プレビューした時点ではアプリにデータがあったのですが、デプロイしたバージョンにはデータがありません。どこにあるのでしょうか?

App Maker のデプロイでは同じ Cloud SQL インスタンスを使用できますが、インスタンスのデータベースが異なります。プレビュー モードのデータは他のデプロイでは使用できません。この状況にはいくつかの方法で対処できます。