11/06 的 Miniblog 修改
今天主要修改是把編輯器新增圖片的功能
本來是存到本地的 /wwwroot/Files/
參考了上面這兩篇文章的說明,改成上傳至 imgur 這個免費圖床服務去
關鍵修改點在 override 掉昨天加的LiteDbBlogService.SaveFile 方法
※ 這裡用了 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
然後 ... 然後我就卡關了很久
因為我找不到教學裡面講的 Get New Access Token 囧
後來才發現是在 所有請求 都會有的 Authorization 那一頁
type 要先選成 OAuth 2.0,右方才會出現按鈕
夜深了頭昏眼花,暫時貼一下最後修改的版本
沒有用套件上傳了因為套件上傳想指定相簿,需要給一個 OAuth2Token 物件
要拿到OAuth2Token 則需要 call Refresh Token ?!
我還沒去仔細研究這部分的邏輯,或是每次上傳都重新要一個 token 會不會有問題之類的
最終是改用 HttpClient 自己設定參數的方式
來達到可指定上傳至一個自己的相簿,便於管理的目的
留言區
成為第一位留言的人!