Spaces:
Configuration error
Configuration error
| import requests, json, os | |
| class Whatsapp: | |
| def __init__(self): | |
| self.API_VERSION = os.getenv("WP_API_VERSION") | |
| self.PHONE_NUMBER_ID = os.getenv("WP_PHONE_NUMBER_ID") | |
| self.ACCESS_TOKEN = os.getenv("WP_ACCESS_TOKEN") | |
| self.ID_FIELD = os.getenv("WP_MESSAGE_ID_FIELD") | |
| def send(self, user_phone_number: str, text:str, link_preview: bool): | |
| try: | |
| url = f"https://graph.facebook.com/{self.API_VERSION}/{self.PHONE_NUMBER_ID}/messages" | |
| headers = { | |
| "Authorization": f"Bearer {self.ACCESS_TOKEN}", | |
| "Content-Type": "application/json" | |
| } | |
| data = { | |
| "messaging_product": "whatsapp", | |
| "recipient_type": "individual", | |
| "to": user_phone_number, | |
| "type": "text", | |
| "text": { | |
| "preview_url": link_preview, | |
| "body": text | |
| } | |
| } | |
| if res := requests.post(url, headers=headers, data=json.dumps(data)): | |
| return res.json()["messages"][0]['id'], self.ID_FIELD | |
| else: | |
| raise Exception(f"the request got response as: {res.json()}" ) | |
| except Exception as e: | |
| raise Exception(f"{__class__.__name__}.{self.send.__name__}() failed, Error: {e}") | |