2017年11月9日 星期四

Django - Line Message API 筆記

from django.conf import settings
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseForbidden
from django.views.decorators.csrf import csrf_exempt

from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError, LineBotApiError
from linebot.models import MessageEvent, TextSendMessage, TextMessage, FollowEvent

line_bot_api = LineBotApi('Channel access token')
handler = WebhookHandler('Channel secret')

# member_ids_res = line_bot_api.get_group_member_ids(group_id)

@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
    # print('room_id: {}'.format(event.room_id))
    print('text: {}'.format(event.message.text))
    text =event.message.text.lower()
    user = event.source.user_id
    print('user_id: {}'.format(user))
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=user)
    )

@handler.add(FollowEvent)
def handle_follow(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text='感謝這位兄長加我')
    )


@handler.default()
def default(event):
    print(event)
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text='Currently Not Support None Text Message')
    )


@csrf_exempt
def callback(request):
    if request.method == 'POST':
        signature = request.META['HTTP_X_LINE_SIGNATURE']
        body = request.body.decode('utf-8')

        try:
            handler.handle(body, signature)
        except InvalidSignatureError:
            return HttpResponseForbidden()
        except LineBotApiError:
            return HttpResponseBadRequest()
        return HttpResponse()
    else:
        return HttpResponseBadRequest()

def send_message(request):
    line_bot_api.multicast(['to1', 'to2','to3'], TextSendMessage(text='各位都是帥哥!'))
    # line_bot_api.push_message('to1', TextSendMessage(text='Hello World!'))
    return HttpResponse()

沒有留言:

張貼留言