> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Corona 向け Lua クイックスタート

> Windows または Mac 上で Corona プロジェクトをセットアップし、PlayFab Corona SDK クライアント ライブラリを使用して Lua で最初の PlayFab API 呼び出しを行います。

このクイックスタートでは、Corona エンジンで最初の PlayFab API 呼び出しを行う方法を説明します。

PlayFab API を呼び出す前に、[PlayFab 開発者アカウント](https://developer.playfab.com) が必要です。

## Corona プロジェクトのセットアップ

OS: このクイックスタートは Windows 向けに書かれています。ただし、Mac でも問題なく動作します。

1. Corona をダウンロードしてインストールします: [https://coronalabs.com/](https://coronalabs.com/)。

2. Corona を実行し、新しいプロジェクトを作成します。以下のリンクには、初回の手順を実施していない場合に役立つ情報が記載されています: [https://docs.coronalabs.com/guide/start/installWin/index.html](https://docs.coronalabs.com/guide/start/installWin/index.html)

3. インストール、ログイン、新しいプロジェクトの作成が完了すると、以下の例のようないくつかのウィンドウが表示されます。

   <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/lua/new-project.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=bdbfa4a84974159ffd7b4b0641f540cb" alt="PlayFab SDK をインストール" width="1447" height="926" data-path="images/playfab/sdks/lua/new-project.png" />

4. Corona Marketplace で PlayFab Client プラグインを有効化します:

   [https://marketplace.coronalabs.com/plugin/playfab-client](https://marketplace.coronalabs.com/plugin/playfab-client)

5. これで PlayFab のインストールは完了です。

## 最初の API 呼び出しをセットアップする

このガイドでは、最初の PlayFab API 呼び出しを行うために必要な最小限の手順を説明します。確認は Corona エンジンの出力ログで行えます。

お好みのテキスト エディターで、`build.settings` に次の行を*追加*します。

```lua theme={null}
settings =
{
    -- ADD THESE THREE LINES at the top, leave everything else as-is
    plugins = {
        ["plugin.playfab.client"] = { publisherId = "com.playfab" }
    },

-- Other existing lines...
}
```

<Note>
  この例の loginRequest オブジェクトの正しい形式を確認するには、[LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid) の API リファレンスを参照してください。
</Note>

お好みのテキスト エディターで、**main.lua** ファイルの内容を以下に示す内容に*置き換え*ます。

```lua theme={null}
local pfClient = require("plugin.playfab.client")
local PlayFabClientApi = pfClient.PlayFabClientApi
PlayFabClientApi.settings.titleId = "144"

local loginRequest = {
    -- See the API reference for LoginWithCustomID.
    CustomId = "GettingStartedGuide",
    CreateAccount = true
}
PlayFabClientApi.LoginWithCustomID(loginRequest,
    function(result) print("Congratulations, you made your first successful API call!") end,
    function(error) print("Something went wrong with your first API call.\nHere's some debug information:\n" .. error.errorMessage) end
)
```

## 完了して実行する

Corona は保存すると同時にプロジェクトのソースを自動的に実行します。そのため、これら 2 つのファイルを更新して保存するとすぐに、次のように表示されます。

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/lua/finish-and-execute.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=59fd602abd813dbde3966cc4373877bf" alt="Corona プラグインをダウンロード - 完了して実行" width="1182" height="974" data-path="images/playfab/sdks/lua/finish-and-execute.png" />

この時点で、他の API 呼び出しを開始し、ゲームを構築できます。利用可能なすべてのクライアント API 呼び出しの一覧については、[PlayFab API リファレンス](/services/playfab/api-references) のドキュメントを参照してください。

Happy coding!

## コードの詳細解説

このオプションの最終セクションでは、上記のサンプルの各部分を 1 行ずつ説明します。

* build.settings
  * `plugins = {`
    * これは Corona のプラグイン システムを呼び出し、Corona Marketplace プラグインをプロジェクトにダウンロードしてインストールするよう指示します。
  * `["plugin.playfab.client"] = { publisherId = "com.playfab" }`
    * これは、PlayFab Client プラグインを具体的にダウンロードするよう指示します。
* main.lua
  * require() 行:
    * PlayFab API 呼び出しに必要な最小限のインポートです。
  * `PlayFabClientApi.settings.titleId = "xxxx"`
    * すべての PlayFab 開発者は、Game Manager でタイトルを作成します。ゲームを公開する際、その titleId をゲームにコーディングする必要があります。これにより、クライアントは PlayFab 内の正しいデータへのアクセス方法を知ることができます。ほとんどのユーザーにとって、これは PlayFab を動作させるために必要な手順と考えてください。
  * `local loginRequest = { CustomId = "GettingStartedGuide", CreateAccount = true }`
    * ほとんどの PlayFab API メソッドは入力パラメーターを必要とし、それらの入力パラメーターはリクエスト オブジェクトにまとめられます。
    * すべての API メソッドには、オプションと必須のパラメーターが混在した一意のリクエスト オブジェクトが必要です。
      * `LoginWithCustomIDRequest` には、プレイヤーを一意に識別する必須パラメーター `CustomId` と、この呼び出しで新しいアカウントの作成を許可する `CreateAccount` があります。
  * `PlayFabClientApi.LoginWithCustomID(loginRequest, {OnLoginSuccess-function}, {OnLoginError-function})`
    * これは `LoginWithCustomID` への非同期リクエストを開始し、成功した場合は最初の (`OnLoginSuccess`) コールバックを、失敗した場合は 2 番目の (`OnLoginError`) 関数を呼び出します。
  * ログインについては、ほとんどの開発者はより適切なログイン メソッドを使用することを望むでしょう。
    * すべてのログイン メソッドと入力パラメーターの一覧については、[PlayFab ログイン ドキュメント](xref:titleid.playfabapi.com.client.authentication) を参照してください。一般的な選択肢は次のとおりです。
      * [LoginWithAndroidDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid)
      * [LoginWithIOSDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithiosdeviceid)
      * [LoginWithEmailAddress](xref:titleid.playfabapi.com.client.authentication.loginwithemailaddress)
    * `OnLoginSuccess` は、単一のパラメーター (result) を受け取る任意の関数です。
      * result オブジェクトには、呼び出された API に応じた要求された情報が含まれます。
      * `LoginResult` にはプレイヤーに関する基本情報が含まれますが、ほとんどのユーザーにとって、ログインは他の API を呼び出す前の必須ステップにすぎません。
    * `OnLoginError` は、単一のパラメーター (error) を受け取る任意の関数です。
      * API 呼び出しはさまざまな理由で失敗する可能性があるため、常に失敗を処理するようにしてください。
      * API 呼び出しが失敗する理由 (可能性の高い順):
        * `PlayFabSettings.TitleId` が設定されていない。`titleId` をタイトルに設定するのを忘れた場合、何も動作しません。
        * リクエスト パラメーター。特定の API 呼び出しに対して正しい情報や必要な情報を提供していない場合、失敗します。詳細については、`error.errorMessage`、`error.errorDetails`、または `error.GenerateErrorReport()` を参照してください。
        * デバイスの接続の問題。携帯電話は接続を頻繁に失ったり回復したりします。そのため、いつでも API 呼び出しがランダムに失敗し、その後すぐに動作することがあります。トンネルに入ると、完全に切断される可能性があります。
        * PlayFab サーバーの問題。すべてのソフトウェアと同様に、問題が発生する可能性があります。更新については [リリース ノート](/services/playfab/release-notes) を参照してください。
        * インターネットは 100% 信頼できるわけではありません。メッセージが破損したり、PlayFab サーバーに到達しなかったりすることがあります。
      * 問題のデバッグに苦労しており、エラー情報内の情報だけでは不十分な場合は、[フォーラム](https://community.playfab.com/index.html) にアクセスしてください。
