å·»ç©ãæ¢ã
8ä»¶ã®å·»ç©
è«æ±æžPDFâäŒèšCSV èªå倿ãã€ãã©ã€ã³MD
ã¡ãŒã«æ·»ä»ããã©ã«ãæèŸŒã¿ã®è«æ±æžPDFããéé¡ã»æ¥ä»ã»ååŒå ãæœåºããäŒèšãœããå蟌çšCSVã«å€æãããã€ãã©ã€ã³ã AI ã«äœãããæç€ºæžãClaude API ã®æ§é åæœåºããã³ãã蟌ã¿ã
æã£ãé¡ïŒã«ãŒãæçްïŒãšäœ¿ã£ãé¡ïŒå®è¡ãã°ïŒãçªåããŠAIè²»çšã®èšäžæŒããæŽãåºã
äŒèšã«ãŒãæçްãšCLIå®è¡ãã°ã®2ããŒã¿æºãææ¬¡ã§æ©æ¢°çªåããèšäžæŒããçµçããç»é²åŸ ã¡ãªã¹ããã ã確èªããã°æžã圢ã«ããæé ã4ç¶æ å€å®ã»dry-runâread-backâæ¬å®è¡ã»äººã®èšå ¥åãæžããªãå®å šåã€ã
freeeäŒèšAPI ååŒå èªå飿ºã¬ã€ã(OAuth/ããŒã¯ã³ããŒããŒã·ã§ã³/DRY-RUN)
Next.js+Supabaseã¢ããªããfreeeã®OAuthæ¥ç¶ã»refresh_tokenããŒããŒã·ã§ã³å¯Ÿå¿ã»ååŒå ã®èªåçŽä»ã/æ°èŠäœæãDRY-RUNå®å šã«å®è£ ããæé
freeeäŒèšAPI: çšåºåäžèЧã403ã§ãçšåºåã³ãŒãã宿ž¬ã§ç¢ºå®ããïŒæ§80âæ§50åæ¿ã»ååŒå åé€ã®èœãšã穎ã€ãïŒ
çšåºåAPIã403ã®ã¢ããªã§ããã¹ãäºæ¥æã«ååŒãäœãä»èš³åž³CSVã§ååãèªãã§åºå®è¡šã«ããæé ãé驿 Œã®çµéæªçœ®ãçºçæ¥ã§åãæ¿ããæ³šæãšãååŒå ã¯äœ¿çšåæ¢ããŠããåé€ããç¹ãã
è«æ±æžã»é åæžããå¥ã·ãŒãã«1è¡å ¥ããã ããã§äœã GAS 垳祚ãã³ãã¬
ã¹ãã¬ããã·ãŒã㫠垳祚/ããŒã¿/èšå® ã®3ã·ãŒããçµã¿ãå ¥å1è¡ã§å°å·çšåž³ç¥šã宿ããæ§æãGASã§äœããã»ã«å€ã®èªã¿æ»ãã§ã¯æ€åºã§ããªãå°å·æã®æååãããPDFæžãåºãã®ç®èŠã§æœ°ããŸã§ãå«ãã
ã¹ãã¬ããã·ãŒãã®ãâå°ãã§åããŠããæ¥åã®æ»çãæ€ç¥ããŠDiscordã§ç£ä¿ãã
è«æ±æžçºè¡ã»å ¥é確èªã»æžé¡ååãªã©ãçŸå Žãã·ãŒãã«âãæã£ãŠç®¡çããŠããæ¥åã®é ããèªåæ€ç¥ããæ åœè ãžDMã»è²¬ä»»è ãã£ã³ãã«ãžäžèŠ§ãæµãä»çµã¿ãéçŽã·ãŒããå®ã¯åæããŠããªãçœ ãæ¢åå€éåæã«çžä¹ãããŠAPIã³ãŒã«ãå¢ãããªãæ¹æ³ãå°ããŒãµã®4å€èšèšã段éãçŽåã«ãããšäž»ç®çãé ããèœãšã穎ã忥ãã©ãã察çãéè·è ãžã®èª€éä¿¡é²æ¢ãŸã§ãæ¬çªæå ¥ã§èžãã çœ ãå šéšåé²ã
èªåããã°ã€ã³ã§ããªã管çç»é¢ããçŸå Žã®äººã®ã¹ã¯ã·ã§ã ãã§èšºæãã
SaaS/OTA ã®ç®¡çç»é¢ã«èªåã§å ¥ããªãæãéãšã³ãžãã¢ã«ã¹ã¯ã·ã§ãæ®ã£ãŠãããã ãã§åå ãç¹å®ããæé ãäŸé Œæã®åïŒæ¢ãå å®¹ã§æžãã»åŠå®ã®çµè«ãæã¡èŸŒãã»èªã¿æ»ãã¯å€±æåŽã«çœ®ãã»æã¡åããå ¥ããïŒãšãéããæ°åã®èªã¿æ¹ïŒæéåèšã§å€å®ããªãã»ãã¡ãã«ã¯æ®µããšã«æç³»åã§äžŠã¹å ã«èœã¡ãæ®µãæ¢ãïŒã
ããŒããŒã·ã§ã³ããOAuth2ãªãã¬ãã·ã¥ããŒã¯ã³ãDBæ°žç¶åããŠå£ããªãããã«ããå
freee/Googleçã§ãªãã¬ãã·ã¥ããŒã¯ã³ãããŒããŒã·ã§ã³ã envåºå®ã ãšååæŽæ°åŸã«å¿ ãå£ããåé¡ããããŒã¯ã³ãDBã«æã¡æŽæ°ã®ãã³æžãæ»ãåã§è§£æ±ºããã¹ã¿IDååŸã»åªçã¬ãŒãã»æ®µéå°å ¥ãŸã§å«ãäŒèšAPI飿ºã®å®ç³ã