K2 Google G Suite Integration [TH Version]

บทความนี้ขอมอบ credit ให้ withsp

สวัสดีครับ วันนี้เราจะมาคุยกันเรื่อง integration ระหว่าง K2 กับอย่างอื่นที่ไม่ใช่ตระกูล Microsoft กันบ้าง นั่นคือ Google GSuite นั่นเอง เรามาดู pre-requitsite กันก่อน

  • K2 Five version 5.0001.1000.1 ขึ้นไป (version นี้ออกวันที่ 28 Nov 2017)
  • Google account

อย่างแรกเลย เราต้องมาเตรียมตัวในฝั่ง Google กันก่อน ให้เข้าไป enable service ที่เราต้องการผ่าน ให้ login เข้าไปด้วย google account ของเราเอง ที่ url https://console.developers.google.com/apis จากนั้นให้กด tab Library ทางด้านซ้าย

google01

ให้เลือก library ที่เราต้องการใช้ ในตัวอย่างนี้เราจะใช้ Google Drive กัน

google02

ให้กดปุ่ม Enable

google03

จากนั้นให้กดที่ tab Credential และเลือก OAuth consent screen ให้เลือก email แล้วก็ใส่ Product Name เป็นอะไรก็ได้

google05

เมื่อกดปุ่ม Save แล้วให้กดกลับไปที่ Credentials แล้วเลือก OAuth client ID

google06

ในหน้า Create client ID ให้เลือก Application Type เป็น Web application และตั้งชื่อ client เป็นอะไรก็ได จากนั้นใส่ Authorised JavaScript origins เป็น url ของเครื่อง K2 กับ Authorised redirect URIs ให้ใส่เป็น url เครื่อง K2 ต่อด้วย /identity/token/oauth/2

google07

เราจะได้ Client ID กับ Client secret มาเพื่อเอาไป register กับ K2 ต่อไป เป็นอันเสร็จสิ้นกระบวนการฝั่ง Google

google08

มาที่ฝั่ง K2 บ้าง ให้เข้าไปที่ site management กดไปที่ Authentication => OAuth => Resource Types ให้สร้าง Resource Type ใหม่ขึ้นมา

google10

เมื่อสร้างเสร็จให้สร้าง Resource Type Parameters ที่ tab ด้านล่าง

google11

จากนั้นให้ไปกดที่ OAuth => Resources ให้สร้าง OAuth Resource ใหม่ขึ้นมา โดยเลือก Resource Type ที่เราสร้างไว้แล้ว และใส่ Authorization Endpoint เป็น https://accounts.google.com/o/oauth2/auth และ Token Endpoint เป็น https://accounts.google.com/o/oauth2/token

google12

กดสร้าง OAuth Resource แล้วก็ไปกำหนดค่า parameter กัน

  • client_id กับ client_secret ให้ใส่ค่าที่ได้มาจาก Google โดย client_secret จะใส่แค่ Authorization Value กับ Token Value
  • response_type ใส่ Authorization Value เป็น code
  • scope ใส่เป็น https://www.googleapis.com/auth/drive
  • redirect_uri ใส่ Authorization Value กับ Token Value เป็น url ของ K2 ต่อด้วย /identity/token/oauth/2
  • grant_type ใส่ Token Value เป็น authorization_code
  • access_type ใส่ Authorization Value กับ Token Value เป็น online

google13

ถ้าทำเสร็จเรียบร้อย เราจะได้ OAuth ที่พร้อมสำหรับเอาไปใช้ register service instance แล้ว ในการจะ register REST service ให้ K2 เราจำเป็นจะต้องมี json ของ service ที่เราจะใช้งาน จะไปเขียน swagger เองก็ได้ แต่ด้วยความที่ Google API เป็นอะไรที่ค่อนข้างจะดัง เราเลยสามารถไปหามาจากที่อื่นได้ ผมไปหามาจาก https://apis.guru/browse-apis/ เราก็จะได้ json มาใช้แล้ว

google14

ขั้นต่อไปให้ไปที่ SmartObject Service Tester หรือใน Management site ก็ได้ แล้วกด Register REST Service เลือก Authentication Type เป็น OAuth และเลือก OAuth Resource เป็นอันที่เราสร้างไว้

google15

google16

ถ้าเจอ error นี้ไม่ต้องตกใจ เมื่อกด OK tester จะเปิด browser ให้เพื่อ authenticate กับ Google ให้ ใส่ username และ password จนถึงหน้า Authorization Successful

google17

ให้กด Add Service Instance อีกที จะสามารถสร้าง Service Instance ได้ จากนั้นก็จะสามารถสร้าง SmartObject เพื่อดึงข้อมูลจาก Google Drive ได้

google18

วิธีการสร้าง oAuth ใน K2 reference มาจาก https://help.k2.com/kb001702 ส่วน api ของ google ดู document ได้จากใน web API ของ Google เลย สำหรับคราวนี้ก็จบเพียงเท่านี้ เจอกันใหม่คราวหน้าครับ 🙂

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s