iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
Modern Web

宅男的浪漫 - 用 .NET Core 打造 Line 婚禮聊天機器人經驗分享系列 第 27

收集婚禮現場照片- 將圖片用C#傳到 Imgur 服務

第12 屆iT邦幫忙鐵人賽系列文章 (Day27)

婚禮現場一定會有各種親朋好友視角的照片,以往都要一個一個傳在社群媒體之類的,本次來實作 chatbot 來廣收各種朋友拍的照片.. XD

上傳到 Imgur

Imgur是個圖床服務,如果是非商業使用,是完全免費的,串接起來也很容易,首先先到 https://api.imgur.com/oauth2/addclient 註冊一個 OAuth 服務

會得到 client id 和 client secret

回到 LineBotApp.cs,我們可以針對圖片類型的訊息做處理

GetContentBytesAsync

public async Task<Stream> GetContentBytesAsync(string messageId)

{

using (var httpClient = new HttpClient())

{

using (var request = new HttpRequestMessage(new HttpMethod("GET"), $"https://api-data.line.me/v2/bot/message/{messageId}/content"))

{

request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {accessToken}");

var response = await httpClient.SendAsync(request);

var results = await response.Content.ReadAsStreamAsync();

return results;

}

}

}

UploadToImgurAsync

可以透過 Nuget 安裝 Imgur.API

public async Task<string> UploadToImgurAsync(Stream stream)

{

var apiClient = new ApiClient("<Your Imgur ClientId>");

var httpClient = new HttpClient();

var imageEndpoint = new ImageEndpoint(apiClient, httpClient);

var imageUpload = await imageEndpoint.UploadImageAsync(stream);

return imageUpload.Link;

}

接著試著在 Line 傳一張圖片試試看,這樣幾個步驟後就能成功取得圖片網址啦~ 後續可以將這網址存到資料庫或前幾篇講的Azure Table

懶人包,本次學到了什麼?

本篇文章同步發佈於我的 Medium 如果這篇文章對你有幫助,就大力追蹤和拍手鼓掌下去吧 !!


上一篇
婚禮禮金用Line Pay II
下一篇
製作婚禮現場即時留言版- Azure SignalR Service I
系列文
宅男的浪漫 - 用 .NET Core 打造 Line 婚禮聊天機器人經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言