※当メディアのリンクにはアフィリエイト広告が含まれています

Unity(C#)で楽天ウェブサービスのAPIを呼び出す

Unityで楽天ウェブサービスのAPIを実行する方法を自分のための備忘録として簡単にまとめます。
Unityを使用したアプリ開発で楽天ウェブサービスを導入しようと思っている人は参考にしてみてください。

開発環境

  • Windows11
  • Unity 2021.3.7f1

使用するAPI

今回は楽天商品検索APIを例に実装します。
APIの仕様については公式のRakuten Developersを参照してください。

The list of APIs opened for developers.

コード

    private IEnumerator RakutenApiSearch()
    {
        // *********************************************
        // 楽天APIで商品を検索
        // *********************************************
        string applicationId = "XXXXXXXXXXXXXXXXXXXX";
        string keyword = "検索したいワード";
        string url = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&applicationId=" + applicationId + "&keyword=" + keyword;
        url += "&elements=itemName,itemPrice,itemUrl"; // 商品名、商品価格、URLを取得
        UnityWebRequest request = UnityWebRequest.Get(url);
        request.SetRequestHeader("Content-Type", "application/json");
        yield return request.SendWebRequest();
        switch (request.result)
        {
            case UnityWebRequest.Result.InProgress:
                Debug.Log("Wait...");
                break;

            case UnityWebRequest.Result.Success:
                // JSON文字列が返されるので、JsonUtility等を利用して解析
                Debug.Log(request.downloadHandler.text);
                break;

            case UnityWebRequest.Result.ConnectionError:
            case UnityWebRequest.Result.ProtocolError:
            case UnityWebRequest.Result.DataProcessingError:
                Debug.Log(request.error);
                break;

            default:
                throw new ArgumentOutOfRangeException();
        }
    }

ざっくり説明

UnityWebRequestを使って普通にURLを叩くだけですね。
一応Resultの判定にInProgressも含めてますが、おそらくそこを通ることはない気がします。

最後に

なんか久々にプログラムを書いた気がする(´ー`)