* @brief SocialTools (refactoring from SocioRouter) */ if(!is_fn("social_send_message")) { function social_send_message($provider, $adapter, $message, $options=array()) { $response = false; $status = array( "message" => $message ); switch($provider) { case "facebook": $status['link'] = get_value_in_array("link", $options, ""); $status['picture'] = get_value_in_array("picture", $options, ""); $response = $adapter->setUserStatus($status); break; case "linkedin": $status['content'] = array( "title" => get_value_in_array("title", $options, ""), "description" => get_value_in_array("description", $options, ""), "submitted-url" => get_value_in_array("link", $options, ""), "submitted-image-url" => get_value_in_array("picture", $options, "") ); $status['visibility'] = array( "code" => "anyone" ); $response = $adapter->setUserStatus($status); break; case "twitter": $status['link'] = get_value_in_array("link", $options, ""); $status['picture'] = get_value_in_array("picture", $options, ""); $response = $adapter->setUserStatus($status); break; default: set_error("Unknown provider"); show_errors(); } return $response; } } if(!is_fn("social_parse_object_id")) { function social_parse_object_id($provider, $response) { $object_id = false; switch($provider) { case "facebook": $decodedBody = get_property_value("decodedBody", $response, true); $object_id = $decodedBody['id']; break; case "linkedin": $object_id = get_property_value("updateKey", $response); break; case "twitter": $object_id = get_property_value("id_str", $response); break; } return $object_id; } } if(!is_fn("social_get_object")) { function social_get_object($provider, $adapter, $object_id) { $result = false; $access_token = $adapter->getAccessToken(); switch($provider) { case "facebook": $result = array( "post" => social_get_object_facebook($provider, $adapter, $object_id, "post"), "likes" => social_get_object_facebook($provider, $adapter, $object_id, "likes"), "comments" => social_get_object_facebook($provider, $adapter, $object_id, "comments"), "sharedposts" => social_get_object_facebook($provider, $adapter, $object_id, "sharedposts"), "reactions" => social_get_object_facebook($provider, $adapter, $object_id, "reactions"), ); break; } return $result; } } if(!is_fn("social_get_object_facebook")) { function social_get_object_facebook($adapter, $object_id, $type="post") { $result = false; $response = false; try { switch($object_type) { case "post": $response = $adapter->api()->get("/" . $object_id, $access_token); break; case "likes": $response = $adapter->api()->get("/" . $object_id . "/likes", $access_token); break; case "comments": $response = $adapter->api()->get("/" . $object_id . "/comments", $access_token); break; case "sharedposts": $response = $adapter->api()->get("/" . $object_id . "/sharedposts", $access_token); break; case "reactions": $response = $adapter->api()->get("/" . $object_id . "/reactions", $access_token); break; } } catch(Exception $e) { set_error($e->getMessage()); show_errors(); } // get response body $body = get_property_value("body", $response, true); $decoded_body = json_decode($body); $result = $decoded_body; return $result; } }