使用C#開發LineBot(5) - 透過程式碼讓Linebot發送圖片、貼圖
這幾天我們更新了Nuget Package LineBotSDK,加上了一組非靜態的bot類別,現在你可以透過底下這段程式碼,直接建立一個bot物件實體,來操作所有有關發送Line訊息、或是圖片、貼圖…等工作…
注意上面這段程式碼,其中的圖片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' 為目標的專案,但該封裝不包含任何與架構相容的組件參考或內容檔。如需詳細資訊,請連絡封裝作者。