さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

【Unity】Googleスプレッドシートの値を取得する・2

やること

 非公開設定のスプレッドシートからセルの内容を読み込む

 環境:Unity2019.2.17、UniTask、Utf8Json

参考:前の記事

toriden.hatenablog.com

手順

1. クライアントID、クライアントシークレット発行

 GoogleCloudPlatformでクライアントIDとクライアントシークレットを作る

2.コード

    async void Start()
    {
        // リフレッシュトークンがない場合は認証してリフレッシュトークンを取得し、保存しておく
        var client = "クライアントId";
        var secret = "クライアントシークレット";
        var scope = "https://www.googleapis.com/auth/spreadsheets.readonly";
        var refreshToken = await GoogleApi.RequestRefreshToken(scope, client, secret);

        // リフレッシュトークンからアクセストークンを取得
        var accessToken = await GoogleApi.RequestAccessToken(refreshToken.refresh_token, client, secret);

        // スプレッドシート取得
        var sheetId = "シートId";
        var sheet = await GoogleApis.SpreadSheet.LoadByAccessTokenAsync(accessToken.access_token, sheetId, "シート1");
        Debug.Log(sheet.JsonString);
    }

 リフレッシュトークンを保存する際には暗号化をかけておきましょう。

 Windows環境のみ対応。スマホアプリの場合、認証処理はリダイレクト処理をURIスキーマ経由にすることでうまくいく(はず)。Macは知らない

ひっかかりどころ

 認証時に警告が出たりします。

www.eripyon.com

リポジトリ

github.com

参考

github.com