Slide 1

Slide 1 text

ΦʔϓϯιʔεϥΠϒϥϦݚڀձ #3 Jan / 22 / 2016 Yoshiki Nakagawa eureka, Inc.

Slide 2

Slide 2 text

AboutMe @yyoshiki41 Yoshiki Nakagawa Infrastructure Engineer, pairs Division Tech • Golang • Middleware, RDBMS • AWS

Slide 3

Slide 3 text

Google APIs Client Library for Go GitHub : https://github.com/google/google-api-go-client/ Enable to access google APIs - Gmail API - BigQuery API - Calendar API etc...

Slide 4

Slide 4 text

yyoshiki41/go-gmail-drafts GitHub : https://github.com/yyoshiki41/go-gmail-drafts Create a new draft using the Gmail API.

Slide 5

Slide 5 text

Why not Google Apps Script ? Apps Script is not enough... Can't create drafts. (only get drafts) So use Google APIs Client Library ! Other languages libraries : https://developers.google.com/discovery/libraries All Libraries are open-sourced !

Slide 6

Slide 6 text

Preparation ̍. Google Developer Console ͔Βɺ৽نϓϩδΣΫτΛ࡞੒ ͢Δɻ ̎. ϓϩδΣΫτͷ Gmail API Λ༗ޮʹ͢Δɻ

Slide 7

Slide 7 text

̏. ೝূ৘ใΛઃఆ͢Δɻ ̐. ඞཁͳೝূ৘ใΛΫϦοΫɻ

Slide 8

Slide 8 text

̑. OAuth ΫϥΠΞϯτͷઃఆɻ OAuthೝূΛ׬ྃͤ͞ɺJSONϑΝΠϧΛμ΢ϯϩʔυ͠·͢ɻ ޙͰ࢖͍·͢ʂ

Slide 9

Slide 9 text

How to ̍. go get $ go get github.com/yyoshiki41/go-gmail-drafts $ cd $GOPATH/src/github.com/yyoshiki41/go-gmail-drafts ̎. μ΢ϯϩʔυͨ͠jsonϑΝΠϧΛઃஔɻ $ mv ~/Downloads/clientid.json config/clientsecret.json

Slide 10

Slide 10 text

̏. ॳճ࣮ߦ࣌͸OAuth௨͠ɺΞΫηετʔΫϯΛऔಘ͢Δɻ $ go run savetoken/main.go ϒϥ΢β͕ࣗಈͰ։͖ɺgoogleΞΧ΢ϯτͷೝূΛ͠·͢ɻ ࣍ʹɺGmailͰͷΞΫγϣϯΛڐՄ͠·͢ɻ

Slide 11

Slide 11 text

̑ɽςΩετϘοΫεʹදࣔ͞ΕͨcodeΛίϐʔ͢Δɻ λʔϛφϧʹ໭ͬͯɺtokenϑΝΠϧΛੜ੒ɻ ίϐʔͨ͠ίʔυΛషΓ෇͚Δɻ

Slide 12

Slide 12 text

̑. Լॻ͖ςϯϓϨΛ࡞੒ɻ { "to": "[email protected]", "subject": "Daily Reports", "message": "Hello!\nThis is a draft." }

Slide 13

Slide 13 text

̒. go runͰ࣮ߦɻ $ go run main.go

Slide 14

Slide 14 text

ऴΘΓʹ go buildͰόΠφϦԽͯ͠ɺ cron౳ʹొ࿥͢Ε͹ຖ೔Լॻ͖࡞੒౳ʹ࢖͑·͢ʂ