Ejemplo n.º 1
0
def remove(id: str):
    secretFileContentJson = json.load(
        open("./line_secret_key", 'r', encoding='utf8'))
    line_bot_api = LineBotApi(
        secretFileContentJson.get("channel_access_token"))

    # 設定要移除的rich_menu
    rich_menu_name_array = ["rich_menu_b"]

    for rich_menu_name in rich_menu_name_array:
        # 讀取rich_menu_id檔案,並告知 Line 進行刪除,並在刪除後,把本地檔案內容清除
        with open("素材/" + rich_menu_name + '/rich_menu_id', 'r') as myfile:
            rich_menu_id = myfile.read()
            deleteResult = line_bot_api.delete_rich_menu(id)
            print(deleteResult)

        f = open("素材/" + rich_menu_name + "/rich_menu_id", "w")
        f.write('')
        f.close()
Ejemplo n.º 2
0
            "x": 1763,
            "y": 848,
            "width": 545,
            "height": 520
        },
        "action": {
            "type":
            "postback",
            "data":
            '{"kind":"menu","level":"%d","choice":"%d","item":"%d"}' %
            (0, 6, 0)
        }
    }]
}
rich_menu_list = line_bot_api.get_rich_menu_list()
if rich_menu_list:
    print('rich_menu_list', rich_menu_list)
    line_bot_api.delete_rich_menu(line_bot_api.get_default_rich_menu())
else:
    myRichMenu_Id = line_bot_api.create_rich_menu(
        rich_menu=RichMenu.new_from_json_dict(rich_menu_initial))
    print('myRichMenu_Id:', myRichMenu_Id)
    uploadImageFile = open('D:/rich_menu_forallusers.jpg', 'rb')
    setImageResponse = line_bot_api.set_rich_menu_image(
        myRichMenu_Id, 'image/jpeg', uploadImageFile)
    if setImageResponse:
        print('setImageResponse:', setImageResponse)
    setImageResponse = line_bot_api.set_default_rich_menu(myRichMenu_Id)
    default_rich_menu = line_bot_api.get_default_rich_menu()
    print('default_rich_menu', default_rich_menu)
Ejemplo n.º 3
0
from linebot import LineBotApi
from config import Config
from rich_menu import richmenu_list

line_bot_api = LineBotApi(Config.CHANNEL_ACCESS_TOKEN)

line_bot_api.delete_rich_menu('richmenu-b181ae67cff989ab3949e79676226331')

rich_menu_list = line_bot_api.get_rich_menu_list()

for rich_menu in rich_menu_list:
    print(rich_menu.rich_menu_id)
Ejemplo n.º 4
0
class TestLineBotApi(unittest.TestCase):
    maxDiff = None

    def setUp(self):
        self.tested = LineBotApi('channel_secret')

        self.rich_menu_id = 'richmenu-0000000000'
        self.user_id = 'userid'
        self.rich_menu = RichMenu(
            size=RichMenuSize(width=2500, height=1686),
            selected=False,
            name="nice richmenu",
            chatBarText="touch me",
            areas=[
                RichMenuArea(
                    RichMenuBounds(x=0, y=0, width=833, height=843),
                    URITemplateAction(uri='https://line.me/R/nv/location/'))
            ])

    @responses.activate
    def test_get_rich_menu(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/rich_menu_id',
                      json={
                          "richMenuId":
                          "rich_menu_id",
                          "size": {
                              "width": 2500,
                              "height": 1686
                          },
                          "selected":
                          False,
                          "name":
                          "name",
                          "chatBarText":
                          "chatBarText",
                          "areas": [{
                              "bounds": {
                                  "x": 0,
                                  "y": 0,
                                  "width": 2500,
                                  "height": 1686
                              },
                              "action": {
                                  "type": "postback",
                                  "data": "action=buy&itemid=123"
                              }
                          }]
                      },
                      status=200)

        rich_menu = self.tested.get_rich_menu('rich_menu_id')
        print(rich_menu)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/rich_menu_id')

        self.assertEqual(rich_menu.rich_menu_id, 'rich_menu_id')
        self.assertEqual(rich_menu.size.width, 2500)
        self.assertEqual(rich_menu.size.height, 1686)
        self.assertEqual(rich_menu.selected, False)
        self.assertEqual(rich_menu.name, 'name')
        self.assertEqual(rich_menu.chat_bar_text, 'chatBarText')
        self.assertEqual(rich_menu.areas[0].bounds.x, 0)
        self.assertEqual(rich_menu.areas[0].bounds.y, 0)
        self.assertEqual(rich_menu.areas[0].bounds.width, 2500)
        self.assertEqual(rich_menu.areas[0].bounds.height, 1686)
        self.assertEqual(rich_menu.areas[0].action.type, 'postback')
        self.assertEqual(rich_menu.areas[0].action.data,
                         'action=buy&itemid=123')

    @responses.activate
    def test_create_rich_menu(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu',
                      json={"richMenuId": "richMenuId"},
                      status=200)

        rich_menu = RichMenu(
            size=RichMenuSize(width=2500, height=1686),
            selected=False,
            name="nice richmenu",
            chatBarText="touch me",
            areas=[
                RichMenuArea(
                    RichMenuBounds(x=0, y=0, width=833, height=843),
                    URITemplateAction(uri='https://line.me/R/nv/location/'))
            ])

        result = self.tested.create_rich_menu(rich_menu)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(request.url,
                         LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu')
        self.assertEqual(result, "richMenuId")

    @responses.activate
    def test_delete_rich_menu(self):
        responses.add(responses.DELETE,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/rich_menu_id',
                      json={},
                      status=200)

        self.tested.delete_rich_menu('rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/rich_menu_id')

    @responses.activate
    def test_get_rich_menu_id_of_user(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/user_id/richmenu',
                      json={"richMenuId": "richMenuId"},
                      status=200)

        result = self.tested.get_rich_menu_id_of_user('user_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/user/user_id/richmenu')
        self.assertEqual(result, "richMenuId")

    @responses.activate
    def test_link_rich_menu_to_user(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/user_id/richmenu/rich_menu_id',
                      json={},
                      status=200)

        self.tested.link_rich_menu_to_user('user_id', 'rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url, LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/user_id/richmenu/rich_menu_id')

    @responses.activate
    def test_unlink_rich_menu_from_user(self):
        responses.add(responses.DELETE,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/user_id/richmenu',
                      json={},
                      status=200)

        self.tested.unlink_rich_menu_from_user('user_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/user/user_id/richmenu')

    @responses.activate
    def test_get_rich_menu_list(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/list',
                      json={
                          "richmenus": [{
                              "richMenuId":
                              "rich_menu_id",
                              "size": {
                                  "width": 2500,
                                  "height": 1686
                              },
                              "selected":
                              False,
                              "name":
                              "name",
                              "chatBarText":
                              "chatBarText",
                              "areas": [{
                                  "bounds": {
                                      "x": 0,
                                      "y": 0,
                                      "width": 2500,
                                      "height": 1686
                                  },
                                  "action": {
                                      "type": "postback",
                                      "data": "action=buy&itemid=123"
                                  }
                              }]
                          }]
                      },
                      status=200)

        rich_menus = self.tested.get_rich_menu_list()

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/list')
        self.assertEqual(rich_menus[0].rich_menu_id, 'rich_menu_id')
        self.assertEqual(rich_menus[0].size.width, 2500)
        self.assertEqual(rich_menus[0].size.height, 1686)
        self.assertEqual(rich_menus[0].selected, False)
        self.assertEqual(rich_menus[0].name, 'name')
        self.assertEqual(rich_menus[0].chat_bar_text, 'chatBarText')
        self.assertEqual(rich_menus[0].areas[0].bounds.x, 0)
        self.assertEqual(rich_menus[0].areas[0].bounds.y, 0)
        self.assertEqual(rich_menus[0].areas[0].bounds.width, 2500)
        self.assertEqual(rich_menus[0].areas[0].bounds.height, 1686)
        self.assertEqual(rich_menus[0].areas[0].action.type, 'postback')
        self.assertEqual(rich_menus[0].areas[0].action.data,
                         'action=buy&itemid=123')

    @responses.activate
    def test_link_rich_menu_to_users(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/bulk/link',
                      json={},
                      status=202)

        self.tested.link_rich_menu_to_users(['user_id1', 'user_id2'],
                                            'rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/bulk/link')
        self.assertEqual(json.loads(request.body), {
            "richMenuId": "rich_menu_id",
            "userIds": ["user_id1", "user_id2"],
        })

    @responses.activate
    def test_unlink_rich_menu_to_users(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/bulk/unlink',
                      json={},
                      status=202)

        self.tested.unlink_rich_menu_from_users(['user_id1', 'user_id2'],
                                                'rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/bulk/unlink')
        self.assertEqual(json.loads(request.body), {
            "userIds": ["user_id1", "user_id2"],
        })

    @responses.activate
    def test_set_default_rich_menu(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/all/richmenu/rich_menu_id',
                      json={},
                      status=200)

        self.tested.set_default_rich_menu('rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url, LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/all/richmenu/rich_menu_id')

    @responses.activate
    def test_get_default_rich_menu(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/all/richmenu',
                      json={"richMenuId": "richMenuId"},
                      status=200)

        result = self.tested.get_default_rich_menu()

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/user/all/richmenu')
        self.assertEqual(result, "richMenuId")

    @responses.activate
    def test_cancel_default_rich_menu(self):
        responses.add(responses.DELETE,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/all/richmenu',
                      json={},
                      status=200)

        self.tested.cancel_default_rich_menu()

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/user/all/richmenu')

    @responses.activate
    def test_get_rich_menu_image(self):
        rich_menu_id = '1234'
        body = b'hogieoidksk'
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_DATA_ENDPOINT +
                      '/v2/bot/richmenu/{rich_menu_id}/content'.format(
                          rich_menu_id=rich_menu_id),
                      body=body,
                      status=200)

        res = self.tested.get_rich_menu_image(rich_menu_id)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_DATA_ENDPOINT +
            '/v2/bot/richmenu/{rich_menu_id}/content'.format(
                rich_menu_id=rich_menu_id),
        )
        self.assertEqual(body, res.content)

    @responses.activate
    def test_set_rich_menu_image(self):
        rich_menu_id = '1234'
        body = b'hogieoidksk'
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_DATA_ENDPOINT +
                      '/v2/bot/richmenu/{rich_menu_id}/content'.format(
                          rich_menu_id=rich_menu_id),
                      json={},
                      status=200)

        self.tested.set_rich_menu_image(rich_menu_id=rich_menu_id,
                                        content_type='image/jpeg',
                                        content=body)

        request = responses.calls[0].request
        self.assertEqual('POST', request.method)
        self.assertEqual(
            LineBotApi.DEFAULT_API_DATA_ENDPOINT +
            '/v2/bot/richmenu/{rich_menu_id}/content'.format(
                rich_menu_id=rich_menu_id), request.url)
Ejemplo n.º 5
0
#!/usr/bin/env python3
# -*- coding: utf-8

from linebot import (LineBotApi, WebhookHandler)

access_token = 'dWhp1zz+Irv8ktCX06FWQFpF0BwSrzs5VSBUK/Fp7NLG0kBAVZe2VTwko8d0KO3ajTOw/jlwJPtpPYe+dVhN6G0eWwbdoLbECjMEbQQriKKk/imWqL8mA19YOiF9JaGwD9gmmpnEhLjwQvXek8FkDwdB04t89/1O/w1cDnyilFU='
line_bot_api = LineBotApi(
    '{my_access_token}'.format(my_access_token=access_token))
rich_menus_id = 'richmenu-18c77570d5310069d934313683a2b688'

line_bot_api.delete_rich_menu(
    '{my_rich_menus_id}'.format(my_rich_menus_id=rich_menus_id))
Ejemplo n.º 6
0
'''

移除帳號內的richmenu

'''

from linebot import (LineBotApi)

import json

secretFileContentJson = json.load(
    open("./line_secret_key", 'r', encoding='utf8'))
line_bot_api = LineBotApi(secretFileContentJson.get("channel_access_token"))

# 設定要移除的rich_menu
rich_menu_name_array = ["rich_menu_0"]

for rich_menu_name in rich_menu_name_array:
    # 讀取rich_menu_id檔案,並告知 Line 進行刪除,並在刪除後,把本地檔案內容清除
    with open("素材/" + rich_menu_name + '/rich_menu_id', 'r') as myfile:
        rich_menu_id = myfile.read()
        deleteResult = line_bot_api.delete_rich_menu(rich_menu_id)
        print(deleteResult)

    f = open("素材/" + rich_menu_name + "/rich_menu_id", "w")
    f.write('')
    f.close()
Ejemplo n.º 7
0
class TestLineBotApi(unittest.TestCase):
    maxDiff = None

    def setUp(self):
        self.tested = LineBotApi('channel_secret')

        self.rich_menu_id = 'richmenu-0000000000'
        self.user_id = 'userid'
        self.rich_menu = RichMenu(
            size=RichMenuSize(width=2500, height=1686),
            selected=False,
            name="nice richmenu",
            chatBarText="touch me",
            areas=[
                RichMenuArea(RichMenuBounds(x=0, y=0, width=833, height=843),
                             URITemplateAction(uri='line://nv/location'))
            ])

    @responses.activate
    def test_get_rich_menu(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/rich_menu_id',
                      json={
                          "richMenuId":
                          "rich_menu_id",
                          "size": {
                              "width": 2500,
                              "height": 1686
                          },
                          "selected":
                          False,
                          "name":
                          "name",
                          "chatBarText":
                          "chatBarText",
                          "areas": [{
                              "bounds": {
                                  "x": 0,
                                  "y": 0,
                                  "width": 2500,
                                  "height": 1686
                              },
                              "action": {
                                  "type": "postback",
                                  "data": "action=buy&itemid=123"
                              }
                          }]
                      },
                      status=200)

        rich_menu = self.tested.get_rich_menu('rich_menu_id')
        print(rich_menu)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/rich_menu_id')

        self.assertEqual(rich_menu.rich_menu_id, 'rich_menu_id')
        self.assertEqual(rich_menu.size.width, 2500)
        self.assertEqual(rich_menu.size.height, 1686)
        self.assertEqual(rich_menu.selected, False)
        self.assertEqual(rich_menu.name, 'name')
        self.assertEqual(rich_menu.chat_bar_text, 'chatBarText')
        self.assertEqual(rich_menu.areas[0].bounds.x, 0)
        self.assertEqual(rich_menu.areas[0].bounds.y, 0)
        self.assertEqual(rich_menu.areas[0].bounds.width, 2500)
        self.assertEqual(rich_menu.areas[0].bounds.height, 1686)
        self.assertEqual(rich_menu.areas[0].action.type, 'postback')
        self.assertEqual(rich_menu.areas[0].action.data,
                         'action=buy&itemid=123')

    @responses.activate
    def test_create_rich_menu(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu',
                      json={"richMenuId": "richMenuId"},
                      status=200)

        rich_menu = RichMenu(
            size=RichMenuSize(width=2500, height=1686),
            selected=False,
            name="nice richmenu",
            chatBarText="touch me",
            areas=[
                RichMenuArea(RichMenuBounds(x=0, y=0, width=833, height=843),
                             URITemplateAction(uri='line://nv/location'))
            ])

        result = self.tested.create_rich_menu(rich_menu)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(request.url,
                         LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu')
        self.assertEqual(result, "richMenuId")

    @responses.activate
    def test_delete_rich_menu(self):
        responses.add(responses.DELETE,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/rich_menu_id',
                      json={},
                      status=200)

        self.tested.delete_rich_menu('rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/rich_menu_id')

    @responses.activate
    def test_get_rich_menu_id_of_user(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/user_id/richmenu',
                      json={"richMenuId": "richMenuId"},
                      status=200)

        result = self.tested.get_rich_menu_id_of_user('user_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/user/user_id/richmenu')
        self.assertEqual(result, "richMenuId")

    @responses.activate
    def test_link_rich_menu_to_user(self):
        responses.add(responses.POST,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/user_id/richmenu/rich_menu_id',
                      json={},
                      status=200)

        self.tested.link_rich_menu_to_user('user_id', 'rich_menu_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url, LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/user_id/richmenu/rich_menu_id')

    @responses.activate
    def test_unlink_rich_menu_from_user(self):
        responses.add(responses.DELETE,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/user/user_id/richmenu',
                      json={},
                      status=200)

        self.tested.unlink_rich_menu_from_user('user_id')

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/user/user_id/richmenu')

    @responses.activate
    def test_get_rich_menu_list(self):
        responses.add(responses.GET,
                      LineBotApi.DEFAULT_API_ENDPOINT +
                      '/v2/bot/richmenu/list',
                      json={
                          "richmenus": [{
                              "richMenuId":
                              "rich_menu_id",
                              "size": {
                                  "width": 2500,
                                  "height": 1686
                              },
                              "selected":
                              False,
                              "name":
                              "name",
                              "chatBarText":
                              "chatBarText",
                              "areas": [{
                                  "bounds": {
                                      "x": 0,
                                      "y": 0,
                                      "width": 2500,
                                      "height": 1686
                                  },
                                  "action": {
                                      "type": "postback",
                                      "data": "action=buy&itemid=123"
                                  }
                              }]
                          }]
                      },
                      status=200)

        rich_menus = self.tested.get_rich_menu_list()

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/list')
        self.assertEqual(rich_menus[0].rich_menu_id, 'rich_menu_id')
        self.assertEqual(rich_menus[0].size.width, 2500)
        self.assertEqual(rich_menus[0].size.height, 1686)
        self.assertEqual(rich_menus[0].selected, False)
        self.assertEqual(rich_menus[0].name, 'name')
        self.assertEqual(rich_menus[0].chat_bar_text, 'chatBarText')
        self.assertEqual(rich_menus[0].areas[0].bounds.x, 0)
        self.assertEqual(rich_menus[0].areas[0].bounds.y, 0)
        self.assertEqual(rich_menus[0].areas[0].bounds.width, 2500)
        self.assertEqual(rich_menus[0].areas[0].bounds.height, 1686)
        self.assertEqual(rich_menus[0].areas[0].action.type, 'postback')
        self.assertEqual(rich_menus[0].areas[0].action.data,
                         'action=buy&itemid=123')
Ejemplo n.º 8
0
import requests as re

CAT = "pmzekB9tmEgsQdpAMMUI90jnUCpGUEVlzWpw+XuHDU+GrBvV1aNFacIkHrBOp1iszYCTBM90BJWoMINmkImKpBtbwmeiGtIv4deoK/CtGbgjRiniW9j8YDd5A0nKY3z9yAwySjjj3kZYYDQsfGVQpQdB04t89/1O/w1cDnyilFU="
CS = "04c8f8542383ce366112a122977ae64d"

w = 2500
h = 1686
# Channel Access Token
line_bot_api = LineBotApi(CAT)
# Channel Secret
handler = WebhookHandler(CS)

rich_menu_list = line_bot_api.get_rich_menu_list()

for rich_menu in rich_menu_list:
    line_bot_api.delete_rich_menu(rich_menu.rich_menu_id)

rich_menu_to_create = RichMenu(
    size=RichMenuSize(width=w, height=h),
    selected=False,
    name="Nice richmenu",
    chat_bar_text="Start here",
    areas=[
        RichMenuArea(bounds=RichMenuBounds(x=0, y=0, width=w / 3,
                                           height=h / 2),
                     action=PostbackAction(label='basicInfo',
                                           data='basicInfo')),
        RichMenuArea(bounds=RichMenuBounds(x=0,
                                           y=h / 2,
                                           width=w / 3,
                                           height=h / 2),
Ejemplo n.º 9
0
 def delet_all_richmenu(self):
     line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
     rich_menu_list = line_bot_api.get_rich_menu_list()
     for key in rich_menu_list:
         line_bot_api.delete_rich_menu(key.rich_menu_id)
         print(key.rich_menu_id + "is delete")
Ejemplo n.º 10
0
class TestLineBotApi(unittest.TestCase):

    maxDiff = None

    def setUp(self):
        self.tested = LineBotApi('channel_secret')

        self.rich_menu_id = 'richmenu-0000000000'
        self.user_id = 'userid'
        self.rich_menu = RichMenu(
                size=RichMenuBound(
                    width=2500,
                    height=1686
                ),
                selected=False,
                name="nice richmenu",
                chatBarText="touch me",
                areas=[
                    RichMenuArea(
                        RichMenuBound(
                            x=0,
                            y=0,
                            width=833,
                            height=843
                        ),
                        URITemplateAction(
                            uri='line://nv/location'
                        )
                    )
                ]
            )

    @responses.activate
    def test_delete_rich_menu(self):
        responses.add(
            responses.DELETE,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/{rich_menu_id}'.format(
                rich_menu_id=self.rich_menu_id
            ),
            json={}, status=200
        )

        self.tested.delete_rich_menu(self.rich_menu_id)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/{rich_menu_id}'.format(
                rich_menu_id=self.rich_menu_id
            )
        )

    @responses.activate
    def test_link_rich_menu_to_user(self):
        responses.add(
            responses.POST,
            LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/{user_id}/richmenu/{rich_menu_id}'.format(
                user_id=self.user_id,
                rich_menu_id=self.rich_menu_id
            ),
            json={}, status=200
        )

        self.tested.link_rich_menu_to_user(self.user_id, self.rich_menu_id)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/{user_id}/richmenu/{rich_menu_id}'.format(
                user_id=self.user_id,
                rich_menu_id=self.rich_menu_id
            )
        )

    @responses.activate
    def test_unlink_rich_menu_from_user(self):
        responses.add(
            responses.DELETE,
            LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/{user_id}/richmenu'.format(user_id=self.user_id),
            json={}, status=200
        )

        self.tested.unlink_rich_menu_from_user(self.user_id)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'DELETE')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/{user_id}/richmenu'.format(user_id=self.user_id)
        )

    @responses.activate
    def test_get_rich_menu_id_of_user(self):
        responses.add(
            responses.GET,
            LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/{user_id}/richmenu'.format(user_id=self.user_id),
            json={}, status=200
        )

        self.tested.get_rich_menu_id_of_user(self.user_id)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT +
            '/v2/bot/user/{user_id}/richmenu'.format(user_id=self.user_id)
        )

    @responses.activate
    def test_get_rich_menu_list(self):
        responses.add(
            responses.GET,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/list',
            json={'richmenus': []}, status=200
        )

        self.tested.get_rich_menu_list()

        request = responses.calls[0].request
        self.assertEqual(request.method, 'GET')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu/list'
        )

    @responses.activate
    def test_create_rich_menu(self):
        responses.add(
            responses.POST,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu',
            json={}, status=200
        )

        self.tested.create_rich_menu(self.rich_menu)

        request = responses.calls[0].request
        self.assertEqual(request.method, 'POST')
        self.assertEqual(
            request.url,
            LineBotApi.DEFAULT_API_ENDPOINT + '/v2/bot/richmenu'
        )
Ejemplo n.º 11
0
from linebot import (LineBotApi, WebhookHandler)

line_bot_api = LineBotApi(
    '9gEcD6pNZWA9xe65jwSrzzykJnBNYhgBdqaUDpvafeMTyG0D+LELBnV/53HwYiue8bTWswthp0SjGEOzGy8UroCrCpfs2WWwbjGynTVFzJIjFYq2dAJZpDDXPqf5ki46kWvQbmmfCl9O58pb2QFFEQdB04t89/1O/w1cDnyilFU='
)

line_bot_api.delete_rich_menu('richmenu-d17c70040ba5ef8150ddedbbcc6a52dc')

rich_menu_list = line_bot_api.get_rich_menu_list()

for rich_menu in rich_menu_list:
    print(rich_menu.rich_menu_id)
Ejemplo n.º 12
0
import json
from linebot import (LineBotApi, WebhookHandler)
from createDBInstance import db
from RichMenu import RichMenu

with open('Config.json', 'r') as f:
    config_dict = json.load(f)

# Channel access token
line_bot_api = LineBotApi(config_dict['CHANNEL_ACCESS_TOKEN'])

line_bot_api.delete_rich_menu('richmenu-77b63d87ac18c77137cab9b4af532865')
Ejemplo n.º 13
0
def handler(event, context):
    """
    リッチメニューを作成します

    使用するサンプル画像は files/richmenu_tmp.png にあります(必要に応じて差し替えてください)
    コード中の座標・サイズの数値は、サンプル画像に合わせた数値となっています
    """

    line_bot_api = LineBotApi(os.environ['LINE_CHANNEL_ACCESS_TOKEN'])

    # リッチメニューの作成
    rich_menu_to_create = RichMenu(
        size=RichMenuSize(width=2500, height=1658),
        selected=False,
        name="tmp richmenu",
        chat_bar_text="メニューはこちらをタップ",
        areas=[
            # 設定時間の確認
            RichMenuArea(
                bounds=RichMenuBounds(x=133, y=350, width=1400, height=300),
                action=PostbackAction(
                    display_text=None, 
                    label='設定時間の確認', 
                    data='action=check'
                )
            ),
            # 当日の通知時間(設定)
            RichMenuArea(
                bounds=RichMenuBounds(x=0, y=1033, width=625, height=625),
                action=DatetimePickerAction(
                    label='gomi_today', 
                    data='action=set&target=gomi_today', 
                    mode='time', 
                    initial='07:00', 
                    max='07:59', 
                    min='00:00'
                )
            ),
            # 当日の通知時間(削除)
            RichMenuArea(
                bounds=RichMenuBounds(x=625, y=1033, width=625, height=625),
                action=PostbackAction(
                    display_text=None, 
                    label='Postback action', 
                    data='action=remove&target=gomi_today'
                )
            ),
            # 前日の通知時間(設定)
            RichMenuArea(
                bounds=RichMenuBounds(x=1250, y=1033, width=625, height=625),
                action=DatetimePickerAction(
                    label='gomi_day_before', 
                    data='action=set&target=gomi_day_before', 
                    mode='time', 
                    initial='18:00', 
                    max='23:59', 
                    min='16:00'
                )
            ),
            # 前日の通知時間(削除)
            RichMenuArea(
                bounds=RichMenuBounds(x=1875, y=1033, width=625, height=625),
                action=PostbackAction(
                    display_text=None, 
                    label='Postback action', 
                    data='action=remove&target=gomi_day_before'
                )
            ),
            # フリースペース(例: テキストを出すだけ)
            RichMenuArea(
                bounds=RichMenuBounds(x=1667, y=0, width=833, height=833),
                action=MessageAction(label='hogehoge', text='hogehoge') 
            ),
            # フリースペース(例: アプリ内ブラウザで指定URLにアクセス)
            RichMenuArea(
                bounds=RichMenuBounds(x=1667, y=0, width=833, height=833),
                action=URIAction(label='URI', uri='https://heptagon.co.jp/')
            ),
        ]
    )

    new_richmenu_id = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create)

    # リッチメニュー用の画像をアップロード
    with open('files/richmenu_tmp.png', 'rb') as f:
        line_bot_api.set_rich_menu_image(new_richmenu_id, 'image/png', f)

    # リッチメニューをデフォルトに
    line_bot_api.set_default_rich_menu(new_richmenu_id)

    # デフォルトのリッチメニュー以外は削除する
    menu_list = line_bot_api.get_rich_menu_list()

    for menu in menu_list:
        if menu.rich_menu_id != new_richmenu_id:
            line_bot_api.delete_rich_menu(menu.rich_menu_id)

    return {
        "rich_menu_id": new_richmenu_id
    }