11/06 的 Miniblog 修改

今天主要修改是把編輯器新增圖片的功能

本來是存到本地的 /wwwroot/Files/

參考了上面這兩篇文章的說明,改成上傳至 imgur 這個免費圖床服務去

關鍵修改點在 override 掉昨天加的LiteDbBlogService.SaveFile 方法

20191107011902.png

※ 這裡用了 NuGet 上面人家包好的套件:Imgur.API

程式修改看起來很容易

麻煩的點出乎意料竟然是在 imgur API token 申請的部分

可能是避免濫用,imgur 要求你必須先註冊一組 application

application 大概有點是問你要應用在什麼專案上的那種意思

你可以隨便形容是想用在 blog、 web、app、自己測試 等等

他也不會管,但就只是要你做個註冊的動作

註冊完會拿到一組 client Id、client secret

每組有一定的免費帳號使用額度上限

大概是 1000 多次上傳/天 或 10000 多次請求/天

正常使用應該是很夠

再來才要申請 token

imgur API 需要用到 oAuth2 驗證 (又是一個我不懂的東西)

拿到 token 才能多做一些事

例如上傳圖片 api,參數只給 client Id + secret

傳上去的圖片,進到 Imgur 網站看,是不會出現在你的帳號內的

我也不知道它是不是傳去什麼共用的地方了

雖然說以小部落格的用途來講是沒差

upload 完成 api 也會回傳像是

image link、imageDeleteHash (如果想刪圖可以拿這個代碼去 call image delete api)

但如果想要指定自己的相簿上傳,就還是需要先拿到一組合法的 token

拿 token 的過程就跟上面第 2 個連結的文章說的一樣,很容易卡關 (我都照著人家的教學操作了還卡關真是 ... )

因為 imgur 提供的 API 不少,參數也很繁雜

官方 api doc 建議我們直接點 doc 畫面上的 Run in Postman

他會自動匯入一包已經建立好的 Postman request collection

20191107023215.png

然後 ... 然後我就卡關了很久

因為我找不到教學裡面講的 Get New Access Token 囧

後來才發現是在 所有請求 都會有的 Authorization 那一頁

type 要先選成 OAuth 2.0,右方才會出現按鈕

20191107025503.png

夜深了頭昏眼花,暫時貼一下最後修改的版本

沒有用套件上傳了因為套件上傳想指定相簿,需要給一個 OAuth2Token 物件

要拿到OAuth2Token 則需要 call Refresh Token ?!

我還沒去仔細研究這部分的邏輯,或是每次上傳都重新要一個 token 會不會有問題之類的

最終是改用 HttpClient 自己設定參數的方式

來達到可指定上傳至一個自己的相簿,便於管理的目的

20191107022824.png

20191107030308.png

留言區

成為第一位留言的人!

新增一則留言