129 lines
4.5 KiB
PHP
129 lines
4.5 KiB
PHP
<?php
|
|
/**
|
|
* @file socialtools.php
|
|
* @date 2018-09-27
|
|
* @author Go Namhyeon <abuse@catswords.net>
|
|
* @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;
|
|
}
|
|
}
|