5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Skickaを使ってGoogleDriveにコマンドラインでアクセスする(認証エラー回避版)

Last updated at Posted at 2023-01-22

はじめに

SkickaはGoogleDriveにコマンドラインでアクセス可能になるツールです。手元にある合計数百GB程度のファイルをGoogleDriveにアップロードするのに2019年~2021年頃に(確か)使っていました。
ところが久々に(執筆時の2023年1月22日)Skickaを使おうとしたら今までのやり方だと認証エラーになってしまい使えないことが判明...。使える方法を試行錯誤したところようやく連携できたので、その方法を共有いたします。

ほとんどは以下のサイトに書かれている内容をもとにしたものです。

※この記事のおかげで本記事も書けており、大変感謝しております m(_ _)m

やること概要

大きくは「クライアント」と「Google Cloud コンソール」でやる作業の2つになります。

(1) クライアントでやること

動作確認したのはUbuntuのみですが、他のLinuxディストリビューションやWindows,Macでも動くはず

  • (1-1) Goのインストールとセットアップ
  • (1-2) Skickaのインストール(Goのパッケージ)
    • 基本はGitHubのREADMEにしたがってインストールすれば問題ないはず
    • Goのバージョンや環境によっては、go getが使えずにgo installを使う必要があるかも
  • (1-3) Skickaの設定ファイル~/.skicka.configにGoogleCloudPlatform(GCP)で作成した認証情報を追加
    • GCPで作成した「OAuth2.0クライアント ID」の認証情報を利用
    • 【注意】こちらは次の手順(2)で認証情報を生成後に行う必要あり

(2) Google Cloud コンソール(≒GCP)でやること

GCPを初めて利用する場合はこちらから開設が必要

  • (2-1) プロジェクトを一つ用意
    • 初めて作った場合は「My First Project」という名前のプロジェクトが存在
  • (2-2) 選択したプロジェクトで以下3つの設定を行う
    • (2-2-1) Google Drive APIの有効化(リンク
    • (2-2-2) OAuth同意画面の作成(リンク
    • (2-2-3) OAuth2.0クライアントIDの発行(リンク

上記手順の中でがついた内容に関して、以下で説明します。

手順詳細

(2-2-1) Google Drive APIの有効化

こちらをクリックすると以下のようなサイトに遷移するので、「有効にする」をクリック
スクリーンショット 2023-01-22 19.36.35.png

(2-2-2) OAuth同意画面の作成

左上の「三」のアイコンをクリック後、「APIとサービスの」メニューを選択し「OAuth同意画面」をクリック(こちらに直接アクセスしてもOK)
以下のサイトが現れるので、「外部」をチェックして「作成」をクリック
スクリーンショット 2023-01-22 20.03.51.png

「①Oauth同意画面」で、「アプリ名」「ユーザーメールアドレス」「デベロッパーの連絡先情報」を記入して「保存して次へ」をクリック
スクリーンショット 2023-01-22 20.07.51.png
次の「②スコープ」は何も編集せずに「保存して次へ」をクリック(画面は非掲載)

「③テストユーザー」で「+ADD USERS」をクリックして、現在のGCPアカウントのメールアドレスを追加後、「保存して次へ」をクリック
スクリーンショット 2023-01-22 20.12.23.png
「④概要」で設定項目を確認して「ダッシュボードに戻る」をクリック(画面は非掲載)

以上で設定完了です。

(2-2-3) OAuth2.0クライアントIDの発行

OAuth2で認証するためのクライアントIDとクライアントシークレットを発行します。

「有効なAPIとサービス」で「認証情報」をクリックし(こちらに直接アクセスしてもOK)、右ウインドウの「+認証情報を作成」をクリック
スクリーンショット 2023-01-22 22.17.11.png
出てくるリストから「OAuthクライアントID」を選択してクリック(画面は非掲載)

アプリケーションの種類で「デスクトップアプリ」を選択後、適当な名前を入力して「作成」をクリック

「デスクトップアプリ」以外を選択するとskicka側での認証に失敗するようなので間違えないように注意!

スクリーンショット 2023-01-22 22.24.50.png

「クライアントID」と「クライアントシークレット」が発行されるので、何らかの方法で保存する
スクリーンショット 2023-01-22 22.26.16のコピー.jpg

(1-3) Skickaの設定ファイルに認証情報を追加

前の手順(2-2-3)で発行した「クライアントID」と「クライアントシークレット」の認証情報を、クライアントの~/.skicka.configに記載します。

.skicka.configがホームディレクトリに存在しない場合は、skicka initを実行すれば生成されます。

具体的には、以下のclientid, clientsecretの左側についている;を消して、それぞれにクライアントIDとクライアントシークレットを入力します。

~/.skicka.config
; Default .skicka.config file. See
; https://github.com/google/skicka/blob/master/README.md for more
; information about setting up skicka.
[google]
    ;Override the default application client id used by skicka.
        clientid=123456789012-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
        clientsecret=yyyyyyyyy
    ;An API key may optionally be provided.
    ;apikey=YOUR_API_KEY
...

configファイルの設定を行った後、skickaの何らかのコマンドを実行すると、OAuth2認証を行うURLが以下のように表示されます。

-no-browser-authオプションは、クライアントにsshなどで別の端末からログインしている場合にWeb認証するために必要となります。

$ skicka -no-browser-auth df
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=123456789012-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=st1674395246803981550
Enter verification code:

表示されたURLにWebブラウザからアクセスすると、上手くいけば以下のような認証画面が出てきます!
(どこかで設定を間違うと残念ながらここでエラーになります...)
IMG_1392.jpg

ログインするアカウントを選択してクリック後に警告メッセージ等が出てきますが、気にせずに「続行」をクリック(画面は非掲載)

以下のように発行された認証コードをコピーして、端末のEnter verification code:の後に認証コードを貼り付け
IMG_1394.jpg

認証に成功すると、例えば以下のようにskickaを利用可能になります!

$ skicka df
Capacity    15.00 GiB
Trash           0 B       0.00%
Drive           0 B       0.00%
Gmail      299.42 MiB     1.95%
Photos          0 B       0.00%
Free space  14.71 GiB    98.05%
5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?