TypingAPIはローマ字入力タイピングゲーム向けの「ひらがなからローマ字のへ変換」、「キー入力時の正解判定とローマ字の更新」を行うAPIです。
単語や入力したキーをパラメーターにいれると、JSON形式で情報を取得できます。
複数入力にも対応しているので、例えば「しゃ」は「sya」、「sixya」、「sha」などで入力できます。(もちろん他でも可)
必ずこちらのルールをご確認の上お使いください。
なお、本サービスは現在ベータ版です。APIを快適に利用できない場合がございますのでご了承ください。
TypingAPIは個人利用、非商用利用に限り、無料で使用することができます。
TypingAPIを使用したサービス、アプリ、ゲームを公開する際は下記のクレジット表記をしてください。
TypingAPIを使用しています
無料版のTypingAPIを商用利用することはご遠慮ください。詳細は商用利用とはをご確認ください。
商用利用をご希望の個人様、企業様は別途有料の契約が必要です。詳細は有料契約についてを御覧ください。
不必要にサーバーに負荷をかける行為はおやめください。悪質な行為があった場合はあなたに呪いをかけるかもしれません。
ここのルールは変更される場合があります。そう、世界は常に変化しているのです。
リクエスト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 |
単語をセットする時
https://typingapi.com/api/v1/?hiragana=りんご
rを打った時
https://typingapi.com/api/v1/?hiragana=りんご¤t_key=r
rを打った後にiを打った時
https://typingapi.com/api/v1/?hiragana=りんご¤t_key=i&key_history=r
TypingAPIを営利目的に使うことです。
Webサイトの広告も商用利用に含まれます。
TypingAPIを使ったサイトのドメイン内に一つでも広告があれば、商用利用となります。
商用利用をご希望の個人様、企業様は別途有料の契約をする必要があります。
有料の契約をすることでTypingAPIを商用利用することができます。
高速なクラウドサーバーで実行したり、オフラインのAPIを提供することも可能です。
有料契約の詳細はお手数ですが、下記の連絡先までご連絡ください。
メール info@inorkgame.com までご連絡ください。
メールを送信しても返信が来ない場合は恐れ入りますが、X(旧Twitter)の(@inork_game)までご連絡ください。
ご不明な点などがございましたら、お気軽にお問い合わせください。
こんにちは!TypingAPIの開発者のINORK Gameです。普段はゲームを開発してSteamなどでリリースしています。
少し知名度があるものだと『うんこタイピング』、『トゥクトゥクレース』というゲームを作りました。
『うんこタイピング』も『トゥクトゥクレース』も知らないですか?なら作戦成功です。今あなたが知ってくれましたから。
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;
}