Google Sheets
Overview
Google Sheets API 를 íµí´ ì¬ì©ìì ì¤íë ëìí¸ë¥¼ ì¡°í, ìì , ìì±í ì ìë ì¤í¬ìëë¤. OAuth 2.0 ì¸ì¦ì ì¬ì©íì¬ ìì íê² Google Sheets ì ì ê·¼í©ëë¤.
Setup
1. OAuth í´ë¼ì´ì¸í¸ í¤ ì¤ì
ì´ë¯¸ êµ¬ê¸ ìºë¦°ëì ëì¼í í¤ íì¼ì ì¬ì©í©ëë¤:
# í¤ íì¼ì´ ì´ë¯¸ ì¤ë¹ëì´ ìë¤ë©´ ìëµ
ls ~/.google-credentials.json
2. ìì¡´ì± ì¤ì¹
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
3. ì¸ì¦ íì¤í¸
cd /Users/andrew/.openclaw/workspace/skills/google-sheets
python3 scripts/oauth_setup.py
첫 ì¤íì ë¸ë¼ì°ì ê° ì´ë¦¬ê³ Google ê³ì ì¼ë¡ ë¡ê·¸ì¸ í ê¶íì ë¶ì¬í´ì¼ í©ëë¤.
Capabilities
ì¤íë ëìí¸ ì½ê¸°
ë°ì´í° ì¡°í:
"ì¤íë ë ìí¸ 'ì무ì¼ì§' ì ìµê·¼ 10 ì¤ ë³´ì¬ì¤"
"A1 ë¶í° D10 ê¹ì§ ë°ì´í° ì½ì´ì¤"
í¹ì ìí¸ ì¡°í:
"'2026 ë 4 ì' ìí¸ì 모ë ë°ì´í° ë³´ì¬ì¤"
ì¤íë ëìí¸ ì°ê¸°
ë°ì´í° ì¶ê°:
"ì무ì¼ì§ ìí¸ì ì í목 ì¶ê°: 'OpenClaw ì¤ì ', ììì¼ '2026-04-21', ìë£ì¼ '2026-04-21', ì§íì¨ '100%'"
ë°ì´í° ìì :
"ì무ì¼ì§ì 6 ë²ì§¸ í ì§íì¨ì '100%' ë¡ ìë°ì´í¸í´ì¤"
ì¤íë ëìí¸ ê´ë¦¬
ì ì¤íë ëìí¸ ìì±:
"ì ì¤íë ëìí¸ 'íë¡ì í¸ ê´ë¦¬' ë§ë¤ì´ì¤"
ìí¸ ëª©ë¡ íì¸:
"ë´ êµ¬ê¸ ìí¸ ëª©ë¡ ë³´ì¬ì¤"
Usage Examples
ìì 1: ì¤íë ëìí¸ ëª©ë¡ ì¡°í
from scripts.sheets_ops import list_spreadsheets
# ì¬ì©ìì 모ë ì¤íë ëìí¸ ëª©ë¡
sheets = list_spreadsheets()
for sheet in sheets:
print(f"{sheet['name']} - {sheet['spreadsheetId']}")
ìì 2: í¹ì ë²ì ì½ê¸°
from scripts.sheets_ops import read_range
# í¹ì ìí¸ì ë²ì ì½ê¸°
data = read_range('SPREADSHEET_ID', 'Sheet1!A1:D10')
for row in data:
print(row)
ìì 3: ë°ì´í° ì°ê¸°
from scripts.sheets_ops import write_range
# í¹ì ë²ìì ë°ì´í° ì°ê¸°
write_range(
spreadsheet_id='SPREADSHEET_ID',
range_name='Sheet1!A1:D1',
values=[['ììëª', 'ììì¼', 'ìë£ì¼', 'ì§íì¨']]
)
ìì 4: ë°ì´í° ì¶ê° (Append)
from scripts.sheets_ops import append_rows
# ì í ì¶ê°
append_rows(
spreadsheet_id='SPREADSHEET_ID',
range_name='Sheet1!A:D',
values=[['ì ìì', '2026-04-21', '', '0%']]
)
ìì 5: ì ì¤íë ëìí¸ ìì±
from scripts.sheets_ops import create_spreadsheet
# ì ì¤íë ëìí¸ ìì±
new_sheet = create_spreadsheet('ì무ì¼ì§')
print(f"ìì± ìë£: {new_sheet['spreadsheetId']}")
Files Structure
google-sheets/
âââ SKILL.md
âââ scripts/
âââ oauth_setup.py # OAuth 2.0 ì¸ì¦ ë° í í° ê´ë¦¬
âââ sheets_ops.py # Sheets API ì°ì° í¨ìë¤
Security Notes
- OAuth í í°ì
~/.google-sheets-token.pickleì ì ì¥ë©ëë¤ - í´ë¼ì´ì¸í¸ í¤ë
~/.google-credentials.jsonì ì ì¥ë©ëë¤ (ìºë¦°ëì ê³µì ) - ì´ íì¼ë¤ì
.gitignoreì ì¶ê°ëì´ì¼ í©ëë¤ - ê¶í ë²ì:
https://www.googleapis.com/auth/spreadsheets(ì¤íë ëìí¸ ì ì²´ ì ê·¼)
Troubleshooting
"OAuth í´ë¼ì´ì¸í¸ í¤ íì¼ì´ ììµëë¤" ì¤ë¥:
~/.google-credentials.jsoníì¼ì´ ìëì§ íì¸- êµ¬ê¸ ìºë¦°ë ì¤í¬ ì¤ì ì ì´ë¯¸ ìì±í í¤ íì¼ìëë¤
ì¸ì¦ ì¤í¨:
- í í° íì¼ì ìì íê³ ì¬ì¸ì¦:
rm ~/.google-sheets-token.pickle
ê¶í ì¤ë¥:
- ì¤í í° ìì í ì¬ì¸ì¦:
rm ~/.google-sheets-token.pickle && python3 scripts/oauth_setup.py
Integration with Other Google Skills
Same OAuth credentials (~/.google-credentials.json) are shared with google-calendar and google-tasks skills, so you only need to authenticate once!
