Unity UnityでWebAPI使ってみた
あいさつ
どうも、はかせです。
前回UnityWebRequestを使って通信ができました。
今回はWebAPIをUnity上から叩いてみたいと思います。
WebAPIとは
簡単に言うとWeb上にあるサービスを
プログラム上で操作するために使うものです。
今回はUnityでちゃんとWebAPIを叩けるかという実験で
GoogleSpreadSheetのAPIを叩いてSpreadSheetの情報を取得してみます。
使うための前準備
・Google Cloud Consoleなるものにアクセス
・そこでプロジェクトを作成しAPIを登録
・APIを使うための認証情報を設定
今回認証情報は読み取りだけで充分だと思ったので
APIKeyを発行しています。
書き込みも行いたい場合はOAuthが必要になるかと思います。
使ってみる
まずはコードです。
public class WebTest : MonoBehaviour { public string GoogleSpreadSheetAPIURL = "https://sheets.googleapis.com/v4/spreadsheets/"; public string GoogleSpreadSheetID = "見せられないよ"; public string GoogleSpreadSheetKey = "見せられないよ"; // Start is called before the first frame update void Start() { StartCoroutine(CallGetWebRequest(GoogleSpreadSheetAPIURL + GoogleSpreadSheetID + "?key=" + GoogleSpreadSheetKey)); } private IEnumerator CallGetWebRequest(string inURL) { //ウェブリクエストを生成 var request = UnityEngine.Networking.UnityWebRequest.Get(inURL); //通信待ち yield return request.SendWebRequest(); //エラーが発生したか if (request.isHttpError || request.isNetworkError) { //エラー内容 print(request.error); } else { //結果 print(request.downloadHandler.text); } } }
やってることは単純で
・API用のURLを用意
・用意したURLに見たいSpreadSheetのIDを追加
・最後に認証情報を追加
API用のURLは直書きしてるやつがそれです。
SpreadSheetIDってのはSpreadSheetに
アクセスしたときに出てるURLの中にあります。
https://docs.google.com/spreadsheets/d/ ~ここがID~ /edit#gid=1913550332
認証情報は前準備で用意したAPIKeyを?key=に続けて入れているだけです。
それでは実行結果です。
SpreadSheetの情報が取得できました。