0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一記事にするまでもないような内容たちの忘備録

Last updated at Posted at 2024-10-20

Zenn の スクラップのようなイメージで随時ちょこちょこと書くところが欲しかったので。

Rloginで秘密鍵は設定しているはずなのに、パスワードを求められてloginできない

以上の記事を見て、
サーバー > プロトコル の「RSA2認証鍵の署名方式」をデフォルトから「SHA1」へ変更する
で無事解決

marktextでチェックボックスが作成できない

普通に

"- [ ]" のように書きたいのだが、

"- "の時点でリストが作成されてしまい、
チェックボックスが作成できない

解決法

リストを作ると
リストの左側にマウスカーソルを合わせると
編集ボタンが表示されて
そこのTurn Into -> Todo List を選択すると
リストがチェックボックスに変換される。

後日やったら普通に作成できた

  • の後に
    [ ] (大かっこ、スペース、大かっこ閉じ、スペース)を入れるだけで
    チェックボックスが作成できた。

pythonのパッケージをeditable mode で dev dependencies も含めてインストールする

pyproject.tomlの[project.optional-dependencies]に例えば以下のように、開発用のパッケージを記載しているとき

pyproject.toml
[project.optional-dependencies]
dev = [
    "pytest",
    "flake8",
    "mypy",
    "black",
    "isort"
]

pip install に-eをつけるとeditable modeになり
パッケージ名[dev]とすると、開発用の依存パッケージをインストールできる。

以下のようにして実行できる。

pip install -e git+https://github.com/[GitHubのユーザー名]/[パッケージのリポジトリ名名].git@[ブランチ名]#egg=[パッケージ名][dev]

neo-treeのインストール

下記に記事化

neovimのファイラーneo-treeの設定と、よく使うキーバインドまとめ #初心者 - Qiita

neovimのファイラーneo-tree でよく使うキーバインドまとめ

下記に記事化

neovimのファイラーneo-treeの設定と、よく使うキーバインドまとめ #初心者 - Qiita

tauri で関数を呼び出すときの引数は、フロントエンドはキャメルケース、バックエンドはスネークケース

rust のGUIフレームワーク tauriで、フロントエンドからバックエンドの引数を持つ関数を呼び出そうとしたときに、デベロッパーツールのconsoleに以下のエラーが出た。

Unhandled Promise Rejection: invalid args `exampleKey` for command `example_command`: command example_command missing required key exampleKey

Calling Rust from the frontend | Tauri Apps によると、

Arguments should be passed as a JSON object with camelCase keys:

引数は、camelCase キーを持つ JSON オブジェクトとして渡す必要があります。

とのこと

tauriが自動的に、キャメルケースのJSONキーから、スネークケースのrustの引数に変換しているみたい。

tauri のインストールの流れ

環境 windows11 wsl ubuntu-24.04

sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
  build-essential \
  curl \
  wget \
  file \
  libxdo-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

wsl ubuntuを再起動

wsl --shutdown ubuntu24.04

書き途中

eguiをwsl ubuntu-24.04 上でインストール

以下の公式テンプレートに従ってテンプレートを作成

rustup update
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev
sudo apt install xserver-xorg
export XDG_SESSION_TYPE=x11
export WAYLAND_DISPLAY=""
sudo apt install libxkbcommon 

Google Calendar API を試してみる

curlコマンドで試してみます。

事前にOAuth2トークンの取得が必要です。以下は、手順の概要です。

1. Google CloudでAPIを有効にし、OAuth2クレデンシャルを作成

(Google Cloud Console)[https://console.cloud.google.com/?hl=ja]にアクセスし、プロジェクトを作成、または既存のプロジェクトを選択します。
「APIとサービス」→「ライブラリ」から「Google Calendar API」を有効化します。
「認証情報」タブで「OAuth 2.0 クライアントID」を「デスクトップ アプリ」を選択して作成。
クライアントIDとクライアントシークレットが発行されるので、控えておきます。

2. OAuth2トークンを取得

curlまたはブラウザを使って認証を行い、アクセストークンを取得します。

1. 認証URLを生成してブラウザで開きます

curl "https://accounts.google.com/o/oauth2/auth?client_id=<YOUR_CLIENT_ID>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/calendar.readonly&response_type=code"

※リダイレクトURIのurn:ietf:wg:oauth:2.0:oobとは、OAuth 2.0認証において、リダイレクト URIとして使用される特別なURIです。認証後にユーザーが特定のWebページにリダイレクトされるのではなく、認証コードがユーザーに直接表示されることを意味します。

2. ブラウザでGoogleアカウントにログインし、認可コードを取得します。

取得したコードを使ってアクセストークンを取得します

curl -X POST -d "code=<AUTHORIZATION_CODE>&client_id=<YOUR_CLIENT_ID>&client_secret=<YOUR_CLIENT_SECRET>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" https://oauth2.googleapis.com/token

上記のコマンドで返されるJSONレスポンスのaccess_tokenを使って、カレンダーの予定を取得できます。

3. curlで予定リストを取得

取得したアクセストークンを使用して、Google Calendar APIに対してリクエストを送信します。

curl -H "Authorization: Bearer <ACCESS_TOKEN>" "https://www.googleapis.com/calendar/v3/calendars/primary/events"

Google Forms API を試してみる

Google Forms APIのリファレンスを参考に

get メソッドを使ってフォームの内容を取得してみる

curlコマンドで試してみます。

事前にOAuth2トークンの取得が必要です。以下は、手順の概要です。

1. Google CloudでAPIを有効にし、OAuth2クレデンシャルを作成

(Google Cloud Console)[https://console.cloud.google.com/?hl=ja]にアクセスし、プロジェクトを作成、または既存のプロジェクトを選択します。
「APIとサービス」→「ライブラリ」から「Google Form API」を有効化します。
「認証情報」タブで「OAuth 2.0 クライアントID」を「デスクトップ アプリ」を選択して作成。
クライアントIDとクライアントシークレットが発行されるので、控えておきます。

2. OAuth2トークンを取得

curlまたはブラウザを使って認証を行い、アクセストークンを取得します。

1. 認証URLを生成してブラウザで開きます

以下のリンクを先ほどのクライアントIDに書き換えて開いてください。

https://accounts.google.com/o/oauth2/auth?client_id=<YOUR_CLIENT_ID>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/forms.body.readonly&response_type=code

※リダイレクトURIのurn:ietf:wg:oauth:2.0:oobとは、OAuth 2.0認証において、リダイレクト URIとして使用される特別なURIです。認証後にユーザーが特定のWebページにリダイレクトされるのではなく、認証コードがユーザーに直接表示されることを意味します。

ログインできたら、認可コードが表示されるのでコピーします。

※gcloud_cliを使えば、curlコマンドでもできるのだろうか?

2. 取得した認可コードを使ってアクセストークンを取得します

curl -X POST -d "code=<AUTHORIZATION_CODE>&client_id=<YOUR_CLIENT_ID>&client_secret=<YOUR_CLIENT_SECRET>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" https://oauth2.googleapis.com/token

上記のコマンドで返されるJSONレスポンスのaccess_tokenを使って、フォームの内容を取得できます。

3. curlでフォームの内容を取得

取得したアクセストークンを使用して、Google Forms APIに対してリクエストを送信します。

curl -H "Authorization: Bearer <ACCESS_TOKEN>" "https://forms.googleapis.com/v1/forms/<FORM_Id>"

以下のようなレスポンスが返ってきたら成功

例)Google Formの連絡先情報テンプレートの場合のレスポンス

{
  "formId": "<FORM_ID>",
  "info": {
    "title": "連絡先情報",
    "documentTitle": "連絡先情報"
  },
  "settings": {},
  "revisionId": "00000003",
  "responderUri": "https://docs.google.com/forms/d/e/<FORM_ID>/viewform",
  "items": [
    {
      "itemId": "6163a4d2",
      "title": "名前",

      "questionItem": {
        "question": {
          "questionId": "778b574a",
          "required": true,
          "textQuestion": {}
        }
      }
    },
    {
      "itemId": "0d91a5ed",
      "title": "メールアドレス",
      "questionItem": {
        "question": {
          "questionId": "3e555b2b",
          "required": true,
          "textQuestion": {}
        }
      }
    },
    {
      "itemId": "2f17adcd",
      "title": "住所",
      "questionItem": {
        "question": {
          "questionId": "3f7b522a",
          "required": true,
          "textQuestion": {
            "paragraph": true
          }
        }
      }
    },
    {
      "itemId": "698c9b8f",
      "title": "電話番号",
      "questionItem": {
        "question": {
          "questionId": "458e9ec2",
          "textQuestion": {}
        }
      }
    },
    {
      "itemId": "6e15d0f9",
      "title": "コメント",
      "questionItem": {
        "question": {
          "questionId": "320744c8",
          "textQuestion": {
            "paragraph": true
          }
        }
      }
    }
  ]
}

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?