@csrf_exempt
def callback(request):
if request.method == 'POST':
signature = request.META['HTTP_X_LINE_SIGNATURE']
body = request.body.decode('utf-8')
try:
events = parser.parse(body, signature) # 傳入的事件
except InvalidSignatureError:
return HttpResponseForbidden()
except LineBotApiError:
return HttpResponseBadRequest()
for event in events:
if isinstance(event, MessageEvent): # 如果有normal訊息事件
if event.message.text == "功能列表":
line_bot_api.reply_message( # 回復「功能列表」按鈕樣板訊息
event.reply_token,
Featuresmodel().content()
)
當收到 LINE 的 MessageEvent (信息事件),而且信息是屬於 TextMessage (文字信息)的時候,就執行下列程式碼。依照 LINE 的應用程式編程介面,LINE 的事件包括有:MessageEvent (信息事件)、FollowEvent (加好友事件)、UnfollowEvent (刪好友事件)、JoinEvent (加入聊天室事件)、LeaveEvent (離開聊天室事件)、MemberJoinedEvent (加入群組事件)、MemberLeftEvent (離開群組事件),還有許多許多(詳見這裡➀)。而MessageEvent又依照信息內容再分成TextMessage、ImageMessage、VideoMessage、StickerMessage、FileMessage等等,當然,還有許多許多。
然後我們runserver測試看看吧!
看起來是沒問題,那再來就是看著文件完成剩下按鈕的功能吧