第一次用 Google API 就上手

第一次用 Google API 就上手

這份資料會以 Python 搭 Google API 來寫一些東西,此篇文章是在利用 Google Calendar API 時碰到的一些小問題,在文末因為需要解決一些 OAuth 的 URL 沒辦法被 redirect 而用了一些取巧的小方法。

至於 Google Calendar API 的細節我再找時間寫一篇吧(遠望)

建立 Project

先到 Google API console 建立一個專案:

google api console

設定好你的專案名稱,建立之後設定一些資料,這邊設定的名稱會是在向使用者要求權限時顯示的名字。

Set name and other info

建立憑證(credential)

接下來建立憑證,憑證建立後會產生 client_secret.json 檔,有了這個檔案之後就可以寫程式存取 Google 的 API 了。

建立憑證時需要根據使用的 API 來選擇不同的類別:
credential

因為在這個例子當中,我要使用的是 Google Calendar API,因此選擇的是 OAuth

而在眾多選擇當中,這邊使用的是 網路應用程式

app type

在下方的限制設定則是今天的重點:
* 已授權的 JavaScript 來源
* 已授權的重新導向 URI

已授權的重新導向 URI

參考資料 – Google OAUTH: The redirect URI in the request did not match a registered redirect URI

如果沒有設定好的話,Google 會和你說你給的 redirect_url 和允許的 List 比較一下就 mismatch 了。

Google Error

所以我給的設定是這樣:

  • 已授權的 JavaScript 來源
    • http://aweimeow.tw:5000 (填上你的 origin)
  • 已授權的重新導向 URI
    • http://aweimeow.tw:5000/redirect (重導向的位置)

關於 OAuth 認證 URL

但是我們現在要怎麼取得這個 URL 呢,應該要幫使用者 redirect 過去才對呀?

研究了一陣子之後我想到怎麼做了,但是要透過重新組合這些參數做到。

在這個例子當中使用 Google Calendar API,所以就以 Google Calendar API 的 QuickStart 來說明。

這個是他們的 Sample Code 節錄:

沒錯,今天我們就是要對這一段程式碼做修改,經過試驗之後,發現 flow 裡面的一些參數經過組合就能變成我們的 URI 了。

不過還缺少必要的 redirect_uri,所以要再自己補,所以以下小程式是我用來重組出我們需要的 url:

以上,便是我今天耗費好一段時間得出的心得 (´・ω・`)

Leave a Reply

Your email address will not be published. Required fields are marked *