Showing
1 changed file
with
57 additions
and
12 deletions
1 | from firebase_admin import messaging | 1 | from firebase_admin import messaging |
2 | from firebase_admin import credentials | 2 | from firebase_admin import credentials |
3 | +from firebase_admin import datetime | ||
4 | +from firebase_admin import db | ||
3 | import firebase_admin | 5 | import firebase_admin |
6 | +import json | ||
7 | +import re | ||
8 | + | ||
4 | 9 | ||
5 | cred = credentials.Certificate('wello_firebase_SDKKey.json') | 10 | cred = credentials.Certificate('wello_firebase_SDKKey.json') |
6 | -default_app = firebase_admin.initialize_app(cred) | 11 | +firebase_admin.initialize_app(cred, {'databaseURL': 'https://wello-topic.firebaseio.com/'}) |
12 | +ref = db.reference() | ||
13 | +topics = list(ref.get()) | ||
14 | +pre_topic = list() | ||
7 | 15 | ||
8 | -def send_to_topic(): | ||
9 | - # [START send_to_topic] | ||
10 | - # The topic name can be optionally prefixed with "/topics/". | ||
11 | - topic = 'c1_1' | ||
12 | 16 | ||
13 | - # See documentation on defining a message payload. | 17 | +def send_to_topic(policy, topic): |
14 | message = messaging.Message( | 18 | message = messaging.Message( |
15 | - title = 'wef', | 19 | + android=messaging.AndroidConfig( |
20 | + ttl=datetime.timedelta(seconds=3600), | ||
21 | + priority='normal', | ||
22 | + notification=messaging.AndroidNotification( | ||
23 | + title='새 정책 알람', | ||
24 | + body=policy, | ||
25 | + icon='@drawable/mini', | ||
26 | + color='#29ABE2', | ||
27 | + sound='default' | ||
28 | + ), | ||
29 | + ), | ||
16 | data={ | 30 | data={ |
17 | 'score': '850', | 31 | 'score': '850', |
18 | 'time': '2:45', | 32 | 'time': '2:45', |
19 | }, | 33 | }, |
34 | + webpush=messaging.WebpushConfig( | ||
35 | + notification=messaging.WebpushNotification( | ||
36 | + title='웹 알림', | ||
37 | + body='TEST', | ||
38 | + icon='', | ||
39 | + ), | ||
40 | + ), | ||
20 | topic=topic, | 41 | topic=topic, |
21 | ) | 42 | ) |
22 | - | ||
23 | - # Send a message to the devices subscribed to the provided topic. | ||
24 | response = messaging.send(message) | 43 | response = messaging.send(message) |
25 | - # Response is a message ID string. | ||
26 | - | ||
27 | print('Successfully sent message:', response) | 44 | print('Successfully sent message:', response) |
28 | 45 | ||
29 | -send_to_topic() | 46 | + |
47 | +for topic in topics: | ||
48 | + categorys = re.findall('c[0-9]+[_][0-9]+', topic) | ||
49 | + for i in range(len(categorys) - 1, -1, -1): | ||
50 | + if '1' == categorys[i].split('_')[-1]: | ||
51 | + categorys.pop(i) | ||
52 | + pre_topic.append(categorys) | ||
53 | + | ||
54 | + | ||
55 | +print('new policy category : ', end = '') | ||
56 | +policy = input() | ||
57 | +policy_category = re.findall('c[0-9]+[_][0-9]+', policy) | ||
58 | +policy_category_list = re.findall('c[0-9]+', policy) | ||
59 | +push_index = list() | ||
60 | +flag = True | ||
61 | + | ||
62 | + | ||
63 | +for i, categorys in enumerate(pre_topic): | ||
64 | + for category in categorys: | ||
65 | + if category.split('_')[0] in policy_category_list: | ||
66 | + if category not in policy_category: | ||
67 | + flag = False | ||
68 | + break | ||
69 | + if flag: push_index.append(i) | ||
70 | + flag = True | ||
71 | + | ||
72 | + | ||
73 | +for push in push_index: | ||
74 | + send_to_topic('[가정복지부] 기성이를 보유하신 가정에 지원금을 드립니다.', topics[push]) | ... | ... |
-
Please register or login to post a comment