誰でもタイピングゲームを作成

ローマ字タイピングゲームを実装できるWeb API

複数入力対応「sya」、「sixya」でも可

うんこタイピングの技術が無料!

TypingAPIとは

TypingAPIはローマ字入力タイピングゲーム向けの「ひらがなからローマ字のへ変換」、「キー入力時の正解判定とローマ字の更新」を行うAPIです。

単語や入力したキーをパラメーターにいれると、JSON形式で情報を取得できます。

複数入力にも対応しているので、例えば「しゃ」は「sya」、「sixya」、「sha」などで入力できます。(もちろん他でも可)

必ずこちらのルールをご確認の上お使いください。

なお、本サービスは現在ベータ版です。APIを快適に利用できない場合がございますのでご了承ください。

TypingAPIを使う上でのルール

無料でご利用いただけます

TypingAPIは個人利用、非商用利用に限り、無料で使用することができます。

クレジット表記

TypingAPIを使用したサービス、アプリ、ゲームを公開する際は下記のクレジット表記をしてください。


TypingAPIを使用しています

商用利用の制限

無料版のTypingAPIを商用利用することはご遠慮ください。詳細は商用利用とはをご確認ください。

商用利用をご希望の個人様、企業様は別途有料の契約が必要です。詳細は有料契約についてを御覧ください。

不必要ににサーバーに負荷をかける行為の禁止

不必要にサーバーに負荷をかける行為はおやめください。悪質な行為があった場合はあなたに呪いをかけるかもしれません。

ルールは変わるかもしれません

ここのルールは変更される場合があります。そう、世界は常に変化しているのです。

Web APIの仕様

リクエストURL

https://typingapi.com/api/v1/

リクエストパラメーター 意味 サンプル
hiragana 単語のひらがな (ひらがな、アルファベット、一部記号のみ対応) りんご
current_key 現在入力したキー (アルファベットのみ対応) g
key_history キーの入力履歴 (アルファベットのみ対応) rin
レスポンスフィールド (JSON) 意味 サンプル
romaji ひらがなをローマ字に変換したもの (key_historyとcurrent_keyを入力後の状態) ringo
miss キー入力がミスの場合はtrue false
finished 単語を打ち終わった場合はtrue true
key_history キーの入力履歴 ri

APIのURLサンプル

単語をセットする時

https://typingapi.com/api/v1/?hiragana=りんご

rを打った時

https://typingapi.com/api/v1/?hiragana=りんご&current_key=r

rを打った後にiを打った時

https://typingapi.com/api/v1/?hiragana=りんご&current_key=i&key_history=r

商用利用とは

TypingAPIを営利目的に使うことです。

Webサイトの広告も商用利用に含まれます。

TypingAPIを使ったサイトのドメイン内に一つでも広告があれば、商用利用となります。

商用利用をご希望の個人様、企業様は別途有料の契約をする必要があります。

有料契約について

有料の契約をすることでTypingAPIを商用利用することができます。

高速なクラウドサーバーで実行したり、オフラインのAPIを提供することも可能です。

有料契約の詳細はお手数ですが、下記の連絡先までご連絡ください。

お問い合わせ

メール info@inorkgame.com までご連絡ください。

メールを送信しても返信が来ない場合は恐れ入りますが、X(旧Twitter)の(@inork_game)までご連絡ください。

ご不明な点などがございましたら、お気軽にお問い合わせください。

開発者の独り言

こんにちは!TypingAPIの開発者のINORK Gameです。普段はゲームを開発してSteamなどでリリースしています。

少し知名度があるものだと『うんこタイピング』、『トゥクトゥクレース』というゲームを作りました。

『うんこタイピング』も『トゥクトゥクレース』も知らないですか?なら作戦成功です。今あなたが知ってくれましたから。

Unity C#でのサンプル

TypingAPIはUnity C#からも使用することができます。以下は簡単なサンプルです。

                
        using UnityEngine;
        using UnityEngine.Networking;
        using TMPro;
        
        public class TypingApiSample : MonoBehaviour
        {
            public TMP_Text RomajiText;
            public string Hiragana = "りんご";
            public string KeyHistory = "";
           
        
            void Start()
            {
                ChangeWord();
            }
        
            private void ChangeWord()
            {
                StartCoroutine(CallTypingApi(GetTypingApiUrl(Hiragana, "", "")));
            }
        
            public void Update()
            {
                string key = Input.inputString.ToLower();
        
                if (!string.IsNullOrEmpty(key))
                {
                    StartCoroutine(CallTypingApi(GetTypingApiUrl(Hiragana, key, KeyHistory)));
                }
               
            }
        
            private string GetTypingApiUrl(string hiragana, string currentKey, string keyHistory)
           {
                return "https://typingapi.com/api/v1/?hiragana=" + hiragana + "¤t_key=" + currentKey + "&key_history=" + keyHistory;
           }
        
            IEnumerator CallTypingApi(string apiUrl)
            {
                using (UnityWebRequest webRequest = UnityWebRequest.Get(apiUrl))
                {
                    yield return webRequest.SendWebRequest();
        
                    if (webRequest.result != UnityWebRequest.Result.Success)
                    {
                        Debug.Log("Web request error: " + webRequest.error);
                    }
                    else
                    {
                        string jsonData = webRequest.downloadHandler.text;
        
                        TypingApiData data = JsonUtility.FromJson(jsonData);
        
                        RomajiText.text = data.romaji;
        
                        if (data.miss)
                        {
                            Debug.Log("ミス");
                        }
                        else
                        {
                            if (data.finished)
                            {
                                KeyHistory = "";
                                ChangeWord();
                            }
                            else
                            {
                                KeyHistory = data.key_history;
                            }
                        }
                    }
                }
            }
        }
        
        public class TypingApiData
        {
            public string romaji;
            public bool miss;
            public bool finished;
            public string key_history;
        }