import requests import json def convert_newlines_to_google_chat_format(text): # 改行文字を
タグに置き換える return text.replace('\\n', '\\\n') def send_google_chat_card(webhook_url, title, subtitle, link_text, link_url,image_url=None): headers = { 'Content-Type': 'application/json; charset=UTF-8' } subtitle = convert_newlines_to_google_chat_format(subtitle) card_message = { "cards": [ { "header": { "title": title, "imageUrl": image_url, "imageStyle": "IMAGE" }, "sections": [ { "widgets": [ { "textParagraph": { "text": subtitle } }, { "textParagraph": { "text": "{}".format(link_text) } }, { "buttons": [ { "textButton": { "text": "Open Link", "onClick": { "openLink": { "url": link_url } } } } ] }, { "textParagraph": { "text": "{}".format("ライン返信テストボットで確認\r\n FBで問題の無い場合LINEに設定") } }, { "buttons": [ { "textButton": { "text": "Open Link", "onClick": { "openLink": { "url": "https://www.coze.com/store/bot/7372534558954176520?panel=1&bid=6cufmd89s6g0i" } } } } ] }, { "textParagraph": { "text": "{}".format("ラインで確認 赤ペディアで確認") } }, { "buttons": [ { "textButton": { "text": "Open Link", "onClick": { "openLink": { "url": "https://chat.line.biz/U8bbe7c4314bb68f7790f57c33a86faa0" } } } } ] }, { "textParagraph": { "text": "{}".format("ライン返信テストボットデータ設定 エクセルで会話データのアップ") } }, { "buttons": [ { "textButton": { "text": "Open Link", "onClick": { "openLink": { "url": "https://www.coze.com/home" } } } } ] }, ] } ] } ] } response = requests.post(webhook_url, headers=headers, data=json.dumps(card_message)) if response.status_code == 200: print("Message posted successfully.") else: print(f"Failed to post message: {response.status_code}, {response.text}") # response_data = response.json() thread_name = response_data['thread']['name'] return thread_name def send_google_chat_card_thread(webhook_url, title, subtitle, link_text, link_url,thread_name): headers = { 'Content-Type': 'application/json; charset=UTF-8' } subtitle = convert_newlines_to_google_chat_format(subtitle) card_message = { "cards": [ { "header": { "title": title, }, "sections": [ { "widgets": [ { "textParagraph": { "text": subtitle } }, { "textParagraph": { "text": "{}".format(link_text) } }, { "buttons": [ { "textButton": { "text": "Open Link", "onClick": { "openLink": { "url": link_url } } } } ] }, ] } ] } ], "thread": { "name":thread_name } } #https://chat.googleapis.com/v1/spaces/AAAAv_S3Bco/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=D635e0eoj7MdO8HV6Ufs1HUZdNiDdz-Eo3Td3OqAFKI&messageReplyOption=REPLY_MESSAGE_OR_FAIL response = requests.post(webhook_url+"&messageReplyOption=REPLY_MESSAGE_OR_FAIL", headers=headers, data=json.dumps(card_message)) if response.status_code == 200: print("Message posted successfully.") else: print(f"Failed to post message: {response.status_code}, {response.text}") response_data = response.json() thread_name = response_data['thread']['name'] return thread_name