Google Apps Marketplaceにアプリケーションを登録する方法

Google Apps Marketplaceに興味津々です。
でも、そもそもどうやるとアプリを登録できるのかわからないので、試してみました。

とりあえず、初めてなので以下のチュートリアルの「First Marketplace App」を動かしてみます。
Writing your First Marketplace App - Google Apps Marketplace - Google Code

※$100かかると言われていますが、アプリケーションを登録するだけなら無料です。Marketplaceの一覧に表示されるようにすると、$100かかります。

Google App Engineのアカウントを作成する

アプリケーションをGoogle App Engine(GAE)で動かすので、GAEのアカウントを作ります。
https://appengine.google.com/Googleアカウントでログインすると、GAEのアカウントが作成されます。
(私は一度ここでエラーが発生しましたが、やり直したらうまくいきました。)
そして、「Create an Application」を押してアプリケーションを作ります。

携帯のメールアドレスを登録する

おもしろいことに携帯メールに認証コードを送ってもらって認証します。
「Verify Your Account by SMS」の画面で携帯のメールアドレスを登録します。

「Country and Carrier:」で国とキャリア(メールアドレスの@の後ろ)を入力。
「Username:」にメールアドレスの@の前を入力します。
「Send」を押すと、携帯に認証コードが届きます。
認証コードを入力すると、アプリケーション作成画面が表示されます。

空のアプリケーションを作成


「Application Identifier:」に適当なサブドメイン名を入力。
例えば、marketplace-helloと入力すれば、marketplace-hello.appspot.comがアプリのURLになります。
「Application Title:」に適当なアプリケーション名を入力します。
他は気にせず「Save」
空のアプリケーションが作成されました。

Google Apps MarketplaceでVendorになる

Google Apps Marketplaceにアプリケーションを登録するにはベンダー登録をする必要があります。
Getting Started (Developer Program Site)の「Become a Vendor」の章の通りにやればできますが、一応日本語で書いておきましょう。
Google Apps Marketplaceから右上の「Sign in」をクリックします。
Googleアカウントのユーザ名、パスワードを入力します。
右上の「Become a Vendor」をクリックします。
適当にVendor Profileを入力します。
「Save」をクリックします。

Google Apps Marketplaceにアプリケーションを登録する

右上の「My Vendor Profile」を表示。
「Create a new listing」をクリック。
以下のように入力します。

注意するところは3つです。
「My product may be directly installed into Google Apps domains」にチェックを入れる。
「Category」は「Product」からどれかを選ぶ。
Manifestに以下のようなXMLを入力する。

<?xml version="1.0" encoding="UTF-8" ?>
<ApplicationManifest xmlns="http://schemas.google.com/ApplicationManifest/2009">
  <Name>Hello World</Name>
  <Description>Demonstrates a simple Google Apps Marketplace application</Description>

  <!-- Administrators and users will be sent to this URL for application support -->
  <Support>
    <Link rel="support" href="http://marketplace-hello.appspot.com/support.jsp" />
  </Support>

  <!-- Show this link in Google's universal navigation for all users -->
  <Extension id="navLink" type="link">
    <Name>Hello World</Name>
    <Url>http://marketplace-hello.appspot.com/openid?hd=${DOMAIN_NAME}</Url>
    <Scope ref="calendarAPI"/>
  </Extension>

  <!-- Declare our OpenID realm so our app is white listed -->
  <Extension id="realm" type="openIdRealm">
    <Url>http://marketplace-hello.appspot.com/</Url>
  </Extension>

  <!-- Need access to the Calendar API -->
  <Scope id="calendarAPI">
    <Url>https://www.google.com/calendar/feeds/</Url>
    <Reason>This app displays the user's next upcoming Google Calendar appointment.</Reason>
  </Scope>
</ApplicationManifest>

marketplace-helloはGAEのアプリケーション登録で入力したサブドメイン名で置換してください。
他の部分も入力必須なので全部適当に入力。

helloworldアプリをビルドする

Writing your First Marketplace App - Google Apps Marketplace - Google Codeの「Integrate the App」の章にある
Self-contained ZIP Downloadからheloworldアプリをダウンロードして、適当なディレクトリに解凍します。
解凍したディレクトリ内で以下のコマンドを実行しビルドします。
Apache Ant 1.6以上とJDK6は前もってインストールして、パスを通してください)

ant -Dclient.key= -Dclient.secret= -Dapp.name=

Google Apps MarketplaceのMy Vendor Profileから取得できます。

この「View OAuth Consumer Key » 」をクリックするとサブウィンドウが表示されるので、表示された「Consumer Key」をに「Consumer Key Secret」をに入力してください。

はGAEのアプリケーションのサブドメイン名です。(marketplace-hello.appspot.comだったらmarketplace-hello)

ビルドが終わるとtarget/explodedにWebアプリができます。

GAEへデプロイ

GAEへのデプロイは「Google App Engine SDK for Java」で行います。
ダウンロード - Google App Engine - Google Codeから「Google App Engine SDK for Java」をダウンロードして、適当なディレクトリに解凍します。

appengine-java-sdk-1.3.2\binで以下のコマンドを実行し、GAEへhelloworldアプリをデプロイします。

appcfg.cmd update \target\exploded

途中でアカウント情報を要求されますので、GAEアカウントのユーザ名、パスワードを入力します。
しばらくして、コマンドが完了すると、http://<サブドメイン名>.appspot.com/ にアクセスすることができるようになります。

こんな画面が表示されます。

Google Appsに申し込む

次のステップはGoogle Appsにhelloworldアプリを追加するのですが、当然Google Appsに申し込む必要があります。
Google Appsに申し込んでいない人は申し込んでください。
Google Appsの始め方は以下の記事が参考になります。

ドメインを取る必要があるのでここだけお金がかかります。でも、お名前.comで年間380円で取れます(2010年4月3日現在)。
Google Appsは50名以下なら無料です。

Google Appsにアプリケーションを追加

My Vendor Profileから追加したアプリケーションのタイトルをクリック。

この画面が表示されるので、「Add it now」をクリック。

Google Appsに登録したドメインを入力して「Go」

「同意して続行」をクリック。

Google Calendarへのアクセスを許可します。「データへのアクセスを許可する」をクリック。

「アプリケーションを今すぐ有効にする」をクリック。

アクセスしてみる

Gmailにでも行ってみると、上のメニューの「その他」に「Hello World」アプリが追加されています。

Hello World」をクリックすると、シングルサインオンしていいかの確認画面が表示されます。
「許可」をクリックすると、シングルサインオンして、Google AppsにログインしているユーザのGoogle Calendarからイベント情報を取得して表示します。

おーちゃんと表示できました。