外部連携APIガイド

外部ツールから作業開始を登録する方法

このページでは、Excel VBA、PowerShell、デスクトップアプリなどから、らくログタスクへ作業開始を送信する方法を説明します。 利用者側で必要なのは、設定画面で発行したAPIトークンと、送信したい作業名です。

このAPIでできること

作業開始を登録

作業名を送信すると、らくログタスクに作業履歴が登録されます。

作業を切り替え

進行中の作業が別名の場合は、その作業を終了して新しい作業を開始します。

同じ作業は継続

進行中の作業と同じ作業名を送信した場合は、重複登録せず現在の作業を継続します。

Web画面なしで登録

Excelやデスクトップアプリ側のボタンから、直接らくログタスクへ送信できます。

利用手順

  1. 設定画面の「外部連携API」でAPIトークンを発行します。
  2. 発行されたAPIトークンを外部ツール側に設定します。
  3. 外部ツールから POST で作業名を送信します。
  4. らくログタスクの入力画面や履歴画面で、作業が登録されたことを確認します。

送信する内容

POST https://rakulog-app.vercel.app/api/v1/tasks/start
Authorization: Bearer rlt_xxxxx
Content-Type: application/json

{
  "taskName": "見積書作成",
  "startedAt": "2026-07-10T09:30:00+09:00",
  "source": "desktop-app",
  "note": "任意メモ"
}
必須項目

taskName: 登録する作業名

任意項目

startedAt: 開始日時。省略すると送信時刻になります。
source: 送信元の名前。例: excel-vba, powershell, desktop-app
note: 任意メモ

PowerShellでの送信例

$token = "rlt_xxxxx"
$body = @{
  taskName = "見積書作成"
  source = "powershell"
} | ConvertTo-Json

Invoke-RestMethod `
  -Uri "https://rakulog-app.vercel.app/api/v1/tasks/start" `
  -Method Post `
  -Headers @{ Authorization = "Bearer $token" } `
  -ContentType "application/json" `
  -Body $body

Excel VBAでの送信例

Sub StartRakulogTask()
    Dim http As Object
    Dim url As String
    Dim token As String
    Dim body As String

    url = "https://rakulog-app.vercel.app/api/v1/tasks/start"
    token = "rlt_xxxxx"
    body = "{""taskName"":""見積書作成"",""source"":""excel-vba""}"

    Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    http.Open "POST", url, False
    http.setRequestHeader "Authorization", "Bearer " & token
    http.setRequestHeader "Content-Type", "application/json"
    http.Send body

    MsgBox http.responseText
End Sub

正常に登録できた場合

レスポンスの oktrue なら処理成功です。actionstarted なら新規開始、continued なら同じ作業を継続しています。

{
  "ok": true,
  "action": "started",
  "workDay": {
    "date": "2026-07-10",
    "clockIn": "09:30:00",
    "status": "working"
  },
  "history": {
    "history_id": "...",
    "started_at": "2026-07-10T00:30:00.000Z"
  },
  "closedHistoryId": null
}

すでに同じ作業名が進行中の場合は actioncontinued で返り、 新しい作業履歴は追加されません。

よくあるエラー

  • 401 UNAUTHORIZED: APIトークンが未設定、間違い、または無効化済みです。
  • 400 TASK_NAME_REQUIRED: taskName が空です。
  • 400 INVALID_JSON: 送信データがJSON形式になっていません。
  • 500: サーバー側の問題です。管理者へ連絡してください。

APIトークンの注意点

  • APIトークンはパスワードと同じ扱いで管理してください。
  • APIトークンを他人に共有しないでください。
  • 不要になったトークンは、設定画面の「外部連携API」から無効化してください。
  • APIトークンはURLに含めず、必ず Authorization ヘッダーで送信してください。