0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

skickaの使い方

skickaというGoogle Drive APIを便利に使うためのコマンドラインツールがあります。
使えるようになるために一苦労あったので方法をメモ。

go環境構築

skickaはgoで動くので実験用にdockerでgolangの環境を作ります。

docker pull golang
docker run -itd golang
docker attach {コンテナ名}

これでgo環境ができました。

Google Drive API用のOAuth認証情報の作成

  • GCPコンソールで適当なプロジェクト作成(既存があればそれでよし)
  • Google Drive APIを有効化
  • (なければ)OAuth同意画面を設定(スコープはGoogle Driveの./auth/docs, ./auth/driveがあれば十分だった)
  • OAuth Clientの認証情報を新規作成(種類:テレビと入力が限られたデバイス)
  • 作成したクライアントIDとシークレットはあとの手順で使います

skickaインストールと認証

go get github.com/google/skicka
skicka init
apt-get update
apt-get install vim
vim /root/.skicka.config
# skicka.configに生成されたクライアントIDとシークレットを追記し、コメントインする。
skicka -no-browser-auth df
# URLが表示されるのでブラウザにペーストし、Google Driveへのアクセスを許可する
# ブラウザに表示された認証コードをskickaのコンソールにペースト

dfの結果が以下のように表示されればOKです

Capacity    15.00 GiB
Trash           0 B       0.00%
Drive      209.70 MiB     1.37%
Gmail        2.47 GiB    16.47%
Photos     598.67 MiB     3.90%
Free space  11.74 GiB    78.27%

Github actionでGoogle driveにファイルをアップロードする

Github actionsでGoogle driveにファイルをアップロードするにはInteract with Google Driveというactionを使用します。

認証情報として skicka-tokencache-json に 上記の認証手順で /root/.skicka.tokencache.json の文字列を指定します。
またOauthの情報として google-client-idgoogle-client-secret も指定します。

正しく認証情報が指定されていれば以下のようなコマンドでファイル/ディレクトリをアップロードすることができます。

- name: Upload to Google Drive
  uses: satackey/action-google-drive@v1
  with:
    skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}
    upload-from: ./
    upload-to: /path/to/upload

    # For those who set up Google Drive API client ID and secret themselves
    google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}
    google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?