
- ããã¾ã§ã®ãããã
- ä»åã®å 容
- ãã®è¨äºãæ¸ããæç¹ã®ãã¼ã¸ã§ã³
- äºåæºå
- è¨å®ãã¡ã¤ã«
- ã¨ã¯ã¹ãã¼ãå¦çã®å®è¡æ¹æ³
- ã¾ã¨ã
- åèæç®
- 2016-02-02追è¨ï¼launchd ã§ã®å®æå®è¡
ããã¾ã§ã®ãããã
æè¿ã¦ã§ã¹ããæ°ã«ãªã£ã¦ããã®ã§ãè¨æ¸¬çµæã Web ãµã¤ãï¼Health Planetï¼ã«èªåã¢ãããã¼ããã¦ãããã¿ãã¿ã®ä½éè¨ãè²·ã£ãã¨ããããã®ãµã¤ãã«ã¨ã¯ã¹ãã¼ãæ©è½ããªãã£ãâ¦â¦ãã§ããã¶ãã¶ Embulk output plugin ãæ¸ããããã¨ããããåããã®ã ã£ãã
ä»åã®å 容
ä½éè¨ï¼ä½çµæè¨ï¼ã®æ¸¬å®çµæã¨ä¸ç·ã«ãè ¹å²ã®æ¸¬å®çµæããã¡ãã£ã¨ããã¡ã¢ãè¨é²ããããªã£ã¦ãã¾ãããããããHealth Planet ã®ã»ãã«ã¯èªç±è¨å ¥æ¬ã®ãããªãã®ã¯ããã¾ããã
è²ã èããçµæã@kataring ããä½ã® kataring/embulk-output-google_spreadsheets ã§ Google Spreadsheet ã«ãã¼ã¿ãå ¥ãã¦ãããã«æå ¥åç¨ã®åãè¶³ããã¨ã«ãã¾ãããããããã¾ããã£ãã®ã§ãä»åã¯ãã®æ¹æ³ããç´¹ä»ãã¾ãã
ãã®è¨äºãæ¸ããæç¹ã®ãã¼ã¸ã§ã³
- Embulk 0.8.1
- GitHub ã®ãã¼ã¸ ã«ããæç¤ºéãã«ã¤ã³ã¹ãã¼ã«
- embulk-input-healthplanet 1.0.1 (ç´¹ä»è¨äº)
embulk gem install embulk-input-healthplanet
- embulk-output-google_spreadsheets 0.2.0
embulk gem install embulk-output-google_spreadsheets
OS X ã§ãã試ãã¦ã¾ããããWindows ã§ãå¤ååãã¨æãã¾ãã
äºåæºå
çµæ§ããããç¨æããå¿ è¦ãããã¾ãã
- Health Planet API ã®æºå
- Google Drive API ã®æºå
- Google Spreadsheet ãã¡ã¤ã«ã®ä½æ
- Google Spreadsheet ãã¡ã¤ã«ã®ãã¼ããã·ã§ã³è¨å®
Health Planet API ã®æºå
ååã®è¨äºï¼Health Planet ãããã¼ã¿ãã¨ã¯ã¹ãã¼ãããããã® embulk-input-healthplanet ãã©ã°ã¤ã³ï¼ã«è©³ããæ¸ããã®ã§ããã¡ããã覧ãã ããã以ä¸ã®æ å ±ãæã£ã¦ããã° OK ã§ãã
- Health Planet ã®ãã°ã¤ã³ ID ããã³ãã¹ã¯ã¼ã
- ä¸è¨ã®ã¢ã«ã¦ã³ãã§ä½æãã Client ID ããã³ Client Secret
Google Drive API ã®æºå
以ä¸ã®æé ã§ API ãæºåãã¾ãããã ãGoogle Developer Console ã®ç»é¢ãã¶ã¤ã³ã¯ã¨ãã©ãå¤ããã¿ãããªã®ã§ããã以ä¸ã®æé ã¨éã£ã¦ããããåãæ©è½ãæ¢ãã¦ãã ããã
Drive API ã®æå¹å
ã¾ãã以ä¸ã®æé ã§ Drive API ãæå¹åãã¾ããSheets API ã¨ãããã®ãããã¾ãããembulk-output-google_spreadsheets ã使ãã®ã¯ãã£ã¡ãããªãã®ã§ã注æãã ããã
- Google Developer Console ã«ãã°ã¤ã³ãã
- ä½ãé©å½ãªååã®ããã¸ã§ã¯ããä½ãï¼ååã¯ãä¾ãã° healthplanet ã¨ãã§ããï¼
- ãGoogle API ãå©ç¨ãããæ¸ããããªã³ã¯ãªã©ãã API Manager ã«ç§»åãã¦ãDrive API ãæ¤ç´¢
- Drive API ã®è¡¨ç¤ºç»é¢ã§ããAPI ãæå¹ã«ããããã¿ã³ãã¯ãªãã¯

Drive API ã«æ¥ç¶ããããã®èªè¨¼æ å ±ã®ä½æ
次ã«ã以ä¸ã®æé ã§ãµã¼ãã¹ã¢ã«ã¦ã³ã ID ã¨ãP12 ãã¼ãå ¥æãã¾ãã
- API Manager ã®ãµã¤ããã¼ãããèªè¨¼æ å ±ã®ç»é¢ã¸ç§»å
- ãæ°ããèªè¨¼æ å ±ããã¿ã³ãæ¼ããããµã¼ãã¹ã¢ã«ã¦ã³ããã¼ãã鏿
- ãµã¼ãã¹ã¢ã«ã¦ã³ãã¨ãã¦ãæ°ãããµã¼ãã¹ã¢ã«ã¦ã³ããã鏿ããã¢ã«ã¦ã³ãåãè¨å
¥
- ã¢ã«ã¦ã³ãåã¯ãªãã§ãè¯ãããã®ã¢ã«ã¦ã³ãåã«ãã£ã¦ãµã¼ãã¹ã¢ã«ã¦ã³ã ID ãæ±ºã¾ã
- ä¾ãã° exporter ã¨ããã¢ã«ã¦ã³ãåãå ¥åããã¨ããµã¼ãã¹ã¢ã«ã¦ã³ã ID 㯠[email protected] ã®ããã«ãªã
- ãã¼ã®ã¿ã¤ãã¨ã㦠P12 ã鏿
- æ¡å¼µå .p12 ã®ãã¡ã¤ã«ã®ãã¦ã³ãã¼ããå§ã¾ãã®ã§ã好ããªå ´æã«ä¿åãã
- ãã®ãã¡ã¤ã«ã¯äºåº¦ã¨ãã¦ã³ãã¼ãã§ããªãã®ã§ããªããã¦ãã¾ã£ããèªè¨¼æ å ±ã®ä½æããããç´ã
- ç§å¯éµã®ãã¹ã¯ã¼ãã表示ãããã®ã§ãã¡ã¢ããï¼â»ä»åã¯ç¹ã«ä½¿ãã¾ããï¼

Google Spreadsheet ãã¡ã¤ã«ã®ä½æ
Health Planet ããã¨ã¯ã¹ãã¼ããããã¼ã¿ã追è¨ããå ããGoogle Spreadsheet ã«ä½æãã¾ãã
ãã¡ã¤ã«ã® URL ã¯ä»¥ä¸ã®ãããªå½¢å¼ã«ãªãã¾ãã {{spreadsheet_id}}
ã®é¨åããã® Spreadsheet ãã¡ã¤ã«ã® ID ã§ãããã¨ã§ä½¿ãã®ã§ã¡ã¢ãã¦ãã ããã
https://docs.google.com/spreadsheets/d/{{spreadsheet_id}}/edit
ã¾ãããã®ãã¡ã¤ã«ã®1è¡ç®ã«ã以ä¸ã®å 容ãè¨è¼ãã¾ããã¿ãåºåãã§ç¤ºãã¦ãã¾ãããå®éã¯11åã«åãã¦æ¸ãã¾ããåã®ååãå°ãã§ãå¤ããã¨ã¢ãããã¼ãã§ããªããªãã®ã§ãæåã¯ãã®ã¾ã¾æ¸ãã¦ãã ããã
æ¸¬å®æ¥æ ã¢ãã« ä½é ä½èèªç çèé çèã¹ã³ã¢ å èèèªã¬ãã«2 å èèèªã¬ãã«1 åºç¤ä»£è¬é ä½å å¹´é½¢ æ¨å®éª¨é

Embulk ã® filter ãã©ã°ã¤ã³ã§ã«ã©ã åãå¤ãã¦ãååããã®ã«ã©ã åã¨åãã«ããã°ãä¸è¨ã¨éãååã§ãç»é²ã§ãã¾ãããã ããã®æç« ã®æå³ãããããªãå ´åã¯ããããªãã®ãç¡é£ã§ãã
Google Spreadsheet ãã¡ã¤ã«ã®ãã¼ããã·ã§ã³è¨å®
æå¾ã«ããµã¼ãã¹ã¢ã«ã¦ã³ãããã®ãã¡ã¤ã«ã«ã¢ã¯ã»ã¹ã§ããããã«ããã¼ããã·ã§ã³ãè¨å®ãã¾ããããã§ãæºåã¯å®äºã§ãã
- Spreadsheet ãã¡ã¤ã«ã®å³ä¸ã«è¡¨ç¤ºããã¦ãããå ±æããã¿ã³ãã¯ãªãã¯
- ãµã¼ãã¹ã¢ã«ã¦ã³ã IDï¼ã¡ã¼ã«ã¢ãã¬ã¹å½¢å¼ï¼ãå
¥åãããå®äºããã¯ãªãã¯
- ãã®ã¨ããæ¨©éã¯ãç·¨éå¯è½ãã®ã¾ã¾ã«ãã¦ãããã¨
è¨å®ãã¡ã¤ã«
ããã¾ã§ã®æºåãå®äºãããã以ä¸ã®æ å ±ãæå ã«æã£ã¦ããã¯ãã§ãã
- Health Planet ã®ãã°ã¤ã³ ID
- Health Planet ã®ãã¹ã¯ã¼ã
- Client ID
- Client Secret
- ãµã¼ãã¹ã¢ã«ã¦ã³ã ID
- P12 ãã¼
- Spreadsheet ãã¡ã¤ã«ã® ID
ãããã®æ å ±ãã以ä¸ã® Embulk ã®è¨å®ãã¡ã¤ã«ã®ã{{ }} ã§å²ã¾ããå ´æã«è¨è¼ãã¦ãã ãããè¨å®ãã¡ã¤ã«ã®ååã¯ãªãã§ãããã§ããããã®ä¾ã§ã¯ embulk-healthplanet.yml ã¨ãã¾ãã
happyturn% cat embulk-healthplanet.yml in: type: healthplanet login_id: {{Health Planet ã®ãã°ã¤ã³ ID}} password: {{Health Planet ã®ãã¹ã¯ã¼ã}} client_id: {{Client ID}} client_secret: {{Client Secret}} lang: ja exec: {} out: type: google_spreadsheets service_account_email: '{{ãµã¼ãã¹ã¢ã«ã¦ã³ã ID}}' p12_keyfile: '{{P12 ãã¼ãç½®ãããå ´æã®ãã¡ã¤ã«ãã¹}}' spreadsheet_id: '{{Spreadsheet ãã¡ã¤ã«ã® ID}}' default_timezone: Asia/Tokyo
ã¨ã¯ã¹ãã¼ãå¦çã®å®è¡æ¹æ³
以ä¸ã®ã³ãã³ããå®è¡ããã¨ãã¨ã¯ã¹ãã¼ãå¦çãå®è¡ããã¾ãã
$ embulk run embulk-healthplanet.yml -o embulk-healthplanet.yml
è¨å®ã«æåãã¦ããã°ã以ä¸ã®å³ã®ããã«ãã¨ã¯ã¹ãã¼ããããã¼ã¿ã Spreadsheet ãã¡ã¤ã«ã«ãã³ãã³è¿½å ããã¦ããã¾ãã

ã¾ããã³ãã³ãã®å®è¡ãå®äºããã¨ãembulk-healthplanet.yml ã®ãªãã«ãæå¾ã«åå¾ãããã¼ã¿ã®è¨æ¸¬æ¥æãè¨é²ããã¾ãããã®ãããåãã³ãã³ãããã1åå®è¡ããã¨ãæ°ãããã¼ã¿ã ããã¨ã¯ã¹ãã¼ãããã¦ãåããã¡ã¤ã«ã®æ«å°¾ã«è¿½å ããã¾ããããããã¡ã¤ã«ã¨ãä½ã£ã¦ã1æ¥1åãããã®ãã¼ã¹ã§èªåå®è¡ããã¦ããã¾ãããã
ã¾ã¨ã
ãããªæãã§ãEmbulk ã使ã£ã¦ãã¿ãã¿ã®ä½éè¨ã®æ¸¬å®çµæãããããããããç°å¢ãæ´ãã¾ããããã§ã«è¿½å ãããè¡ã«ã¤ãã¦ã¯ãå¤ãããã£ãããä»ã®åã«ã¡ã¢ãªã©ã追å ããããã¦ã大ä¸å¤«ãªã®ã§ãä»ã®ãã¼ã¿ï¼è ¹å²ã¨ãéåè¨é²ã¨ãï¼ã¨çµã¿åããã¦è²ã éãã§ã¿ããã¨æãã¾ãã
åèæç®
- PHPããGoogle Spreadsheets APIã使ã â K blog
- ãP12 ãã¼ã£ã¦ä¸ä½ã©ãã§ä½ãã®â¦â¦ãã¨æ©ãã§ãã¨ãã«åèã«ããã¦ããã ãã¾ããã
- Googleã¹ãã¬ããã·ã¼ãã®ãã¼ã¿ãJSONã§åå¾ãã¦ã¿ã | ã¢ã©ã¤ãã¢ã¼ããã¯ãã®ã¯ãªã¨ã¤ã¿ã¼ããã°
- ãã㯠Sheet API ã«é¢ããè¨äºã§ãããGoogle Spreadsheet ã® URL ã®ã«ã¼ã«ã«ã¤ãã¦åèã«ããã¦é ãã¾ããã
2016-02-02追è¨ï¼launchd ã§ã®å®æå®è¡
ä½åº¦ãåããã¦ãç¹ã«åé¡ç¡ããããªã®ã§ãMac OS Xã§launchdã§cronã®ããã«å®æå®è¡ããã¡ã¢ - launchd.plistã®ä½æã¨ã(tweeeetyã®ã¶ããçãã) 㨠A launchd Tutorial ãåèã«ãlaunchd ã§ 30 åãã¨ã«å®æå®è¡ããããã«ãã¾ããã