diff --git a/homeassistant/components/notify/facebook.py b/homeassistant/components/notify/facebook.py index bf5bf9cf195..630d5453daf 100644 --- a/homeassistant/components/notify/facebook.py +++ b/homeassistant/components/notify/facebook.py @@ -12,50 +12,52 @@ import voluptuous as vol import homeassistant.helpers.config_validation as cv from homeassistant.components.notify import ( - PLATFORM_SCHEMA, BaseNotificationService) + ATTR_TARGET, PLATFORM_SCHEMA, BaseNotificationService) _LOGGER = logging.getLogger(__name__) -CONF_ID = 'id' -CONF_PHONE_NUMBER = 'phone_number' CONF_PAGE_ACCESS_TOKEN = 'page_access_token' BASE_URL = 'https://graph.facebook.com/v2.6/me/messages' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ - vol.Required(CONF_PHONE_NUMBER): cv.string, vol.Required(CONF_PAGE_ACCESS_TOKEN): cv.string, }) def get_service(hass, config): - """Get the Twitter notification service.""" - return FacebookNotificationService( - config[CONF_PHONE_NUMBER], config[CONF_PAGE_ACCESS_TOKEN] - ) + """Get the Facebook notification service.""" + return FacebookNotificationService(config[CONF_PAGE_ACCESS_TOKEN]) class FacebookNotificationService(BaseNotificationService): - """Implementation of a notification service for the Twitter service.""" + """Implementation of a notification service for the Facebook service.""" - def __init__(self, id, access_token): + def __init__(self, access_token): """Initialize the service.""" - self.user_id = id self.page_access_token = access_token def send_message(self, message="", **kwargs): """Send some message.""" payload = {'access_token': self.page_access_token} - body = { - "recipient": {"phone_number": self.user_id}, - "message": {"text": message} - } - import json - resp = requests.post(BASE_URL, data=json.dumps(body), params=payload, - headers={'Content-Type': 'application/json'}) - if resp.status_code != 200: - obj = resp.json() - error_message = obj['error']['message'] - error_code = obj['error']['code'] - _LOGGER.error("Error %s : %s (Code %s)", resp.status_code, - error_message, - error_code) + targets = kwargs.get(ATTR_TARGET) + + if not targets: + _LOGGER.info("At least 1 target is required") + return + + for target in targets: + body = { + "recipient": {"phone_number": target}, + "message": {"text": message} + } + import json + resp = requests.post(BASE_URL, data=json.dumps(body), + params=payload, + headers={'Content-Type': 'application/json'}) + if resp.status_code != 200: + obj = resp.json() + error_message = obj['error']['message'] + error_code = obj['error']['code'] + _LOGGER.error("Error %s : %s (Code %s)", resp.status_code, + error_message, + error_code)