使用C#開發LineBot(5) - 透過程式碼讓Linebot發送圖片、貼圖
這幾天我們更新了Nuget Package LineBotSDK,加上了一組非靜態的bot類別,現在你可以透過底下這段程式碼,直接建立一個bot物件實體,來操作所有有關發送Line訊息、或是圖片、貼圖…等工作…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
string Token = "你自己的LineBot Channel Access Token"; | |
string toUserId = "傳送對象的UserId"; | |
//建立LineBot物件實體 | |
isRock.LineBot.Bot LineBot = new isRock.LineBot.Bot(Token); | |
//發送圖片訊息 | |
LineBot.PushMessage(toUserId, | |
new Uri("https://圖片位置/22-124303-d8b2c4de-9a8c-48da-83f1-7c0d36de3ab6.png")); |
注意上面這段程式碼,其中的圖片URI必須是https,否則會發生錯誤,圖片支援.png的格式(估計其他也支援,但我沒試)。
透過物件實體(Object instance)來操作,省去了呼叫PushMessage的時候一直要傳遞AccessToken的不方便,同時在記憶體管理上也比較安全。
這組bot類別還提供了傳送貼圖的功能,例如:
上面這段程式碼可以發送出底下這樣的貼圖:
為何傳入packageId與StickerId參數 1 , 2 是出現上面這個貼圖呢? 目前LineBot可以用的貼圖就那幾組,請參考底下連結: https://devdocs.line.me/files/sticker_list.pdf
上面這個連結顯示出了目前有可以用的PackagId與StickerId。
別忘了,使用上述的功能必須先在你的專案中加入最新版(0.3.9)的LineBotSDK喔:
OK,盡情的傳送貼圖吧,Have fun~
----------------------
相關課程: http://www.studyhost.tw/NewCourses/LineBot
留言
可以
@Lin Beisien,
沒有傳送檔案的API,但其實你直接把檔案上傳到某個位置,然後傳送該檔案的Hyper link就可以了...
一定需要userId嗎? 謝謝。
reply原則上只需要replyToken。
Push Message則肯定需要UserId。
UserID可以透過你的用戶跟你的bot對談時,Receieved Message的source屬性取得。
bot的行為在接收到訊息時,可以直接回應,這時可以透過reply Message機制,以replyToken來回應。一旦回應過了,或超過一定時間沒有回應,就無法回應了。這時就只能主動發訊息給用戶,這個行為就是Push Message。
請問有範例的程式嗎? 第一次做不太熟 感謝回應!!
請參考:
https://github.com/isdaviddong/LineBotSdkExample/blob/master/LineBotSdkExample/Controllers/LineChatController.cs
User Id可以從ReceivedMessage.events[0].source.userId取得。
https://channel9.msdn.com/Shows/NET-Walker-5/bot03
isRock.LineBot.ImagemapMessage
我試過直接像圖片這樣傳網址,似乎不行。
感謝回應!!!!
可以取得用戶名稱,
LineBotSdk 有一個API是 GetUserProfile...可以參考看看。
==============================================================================
嚴重性 程式碼 說明 專案 檔案 行 隱藏項目狀態
錯誤 無法安裝封裝 'Line.Bot.SDK 2.0.0'。您正嘗試將此封裝安裝到以 '.NETFramework,Version=v4.5' 為目標的專案,但該封裝不包含任何與架構相容的組件參考或內容檔。如需詳細資訊,請連絡封裝作者。 0
不知是什麼原因?
因為你安裝錯了唷,我們開發的是底下這個:
https://www.nuget.org/packages/LineBotSDK
不是Line.Bot.SDK 2.0.0
確定是這個
無法安裝封裝 'LineBotSDK 2.0.1'。您正嘗試將此封裝安裝到以 '.NETFramework,Version=v4.0' 為目標的專案,但該封裝不包含任何與架構相容的組件參考或內容檔。如需詳細資訊,請連絡封裝作者。