Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/linkedin.zip
Назад
PK ut!]��R� � communications.phpnu &1i� <?php /** * @package Joomla.Platform * @subpackage Linkedin * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die(); /** * Linkedin API Social Communications class for the Joomla Platform. * * @since 3.2.0 */ class JLinkedinCommunications extends JLinkedinObject { /** * Method used to invite people. * * @param string $email A string containing email of the recipient. * @param string $firstName A string containing first name of the recipient. * @param string $lastName A string containing last name of the recipient. * @param string $subject The subject of the message that will be sent to the recipient * @param string $body A text of the message. * @param string $connection Only connecting as a 'friend' is supported presently. * * @return array The decoded JSON response * * @since 3.2.0 */ public function inviteByEmail($email, $firstName, $lastName, $subject, $body, $connection = 'friend') { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base. $base = '/v1/people/~/mailbox'; // Build the xml. $xml = '<mailbox-item> <recipients> <recipient> <person path="/people/email=' . $email . '"> <first-name>' . $firstName . '</first-name> <last-name>' . $lastName . '</last-name> </person> </recipient> </recipients> <subject>' . $subject . '</subject> <body>' . $body . '</body> <item-content> <invitation-request> <connect-type>' . $connection . '</connect-type> </invitation-request> </item-content> </mailbox-item>'; $header['Content-Type'] = 'text/xml'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method used to invite people. * * @param string $id Member id. * @param string $firstName A string containing first name of the recipient. * @param string $lastName A string containing last name of the recipient. * @param string $subject The subject of the message that will be sent to the recipient * @param string $body A text of the message. * @param string $connection Only connecting as a 'friend' is supported presently. * * @return array The decoded JSON response * * @since 3.2.0 */ public function inviteById($id, $firstName, $lastName, $subject, $body, $connection = 'friend') { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base for people search. $base = '/v1/people-search:(people:(api-standard-profile-request))'; $data['format'] = 'json'; $data['first-name'] = $firstName; $data['last-name'] = $lastName; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); if (strpos($response->body, 'apiStandardProfileRequest') === false) { throw new RuntimeException($response->body); } // Get header value. $value = explode('"value": "', $response->body); $value = explode('"', $value[1]); $value = $value[0]; // Split on the colon character. $value = explode(':', $value); $name = $value[0]; $value = $value[1]; // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base. $base = '/v1/people/~/mailbox'; // Build the xml. $xml = '<mailbox-item> <recipients> <recipient> <person path="/people/id=' . $id . '"> </person> </recipient> </recipients> <subject>' . $subject . '</subject> <body>' . $body . '</body> <item-content> <invitation-request> <connect-type>' . $connection . '</connect-type> <authorization> <name>' . $name . '</name> <value>' . $value . '</value> </authorization> </invitation-request> </item-content> </mailbox-item>'; $header['Content-Type'] = 'text/xml'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method used to send messages via LinkedIn between two or more individuals connected to the member sending the message.. * * @param mixed $recipient A string containing the member id or an array of ids. * @param string $subject The subject of the message that will be sent to the recipient * @param string $body A text of the message. * * @return array The decoded JSON response * * @since 3.2.0 */ public function sendMessage($recipient, $subject, $body) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base. $base = '/v1/people/~/mailbox'; // Build the xml. $xml = '<mailbox-item> <recipients>'; if (is_array($recipient)) { foreach ($recipient as $r) { $xml .= '<recipient> <person path="/people/' . $r . '"/> </recipient>'; } } $xml .= '</recipients> <subject>' . $subject . '</subject> <body>' . $body . '</body> </mailbox-item>'; $header['Content-Type'] = 'text/xml'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } } PK ut!]���� � linkedin.phpnu &1i� <?php /** * @package Joomla.Platform * @subpackage Linkedin * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die(); use Joomla\Registry\Registry; /** * Joomla Platform class for interacting with a Linkedin API instance. * * @since 3.2.0 */ class JLinkedin { /** * @var Registry Options for the Linkedin object. * @since 3.2.0 */ protected $options; /** * @var JHttp The HTTP client object to use in sending HTTP requests. * @since 3.2.0 */ protected $client; /** * @var JLinkedinOAuth The OAuth client. * @since 3.2.0 */ protected $oauth; /** * @var JLinkedinPeople Linkedin API object for people. * @since 3.2.0 */ protected $people; /** * @var JLinkedinGroups Linkedin API object for groups. * @since 3.2.0 */ protected $groups; /** * @var JLinkedinCompanies Linkedin API object for companies. * @since 3.2.0 */ protected $companies; /** * @var JLinkedinJobs Linkedin API object for jobs. * @since 3.2.0 */ protected $jobs; /** * @var JLinkedinStream Linkedin API object for social stream. * @since 3.2.0 */ protected $stream; /** * @var JLinkedinCommunications Linkedin API object for communications. * @since 3.2.0 */ protected $communications; /** * Constructor. * * @param JLinkedinOauth $oauth OAuth object * @param Registry $options Linkedin options object. * @param JHttp $client The HTTP client object. * * @since 3.2.0 */ public function __construct(JLinkedinOauth $oauth = null, Registry $options = null, JHttp $client = null) { $this->oauth = $oauth; $this->options = isset($options) ? $options : new Registry; $this->client = isset($client) ? $client : new JHttp($this->options); // Setup the default API url if not already set. $this->options->def('api.url', 'https://api.linkedin.com'); } /** * Magic method to lazily create API objects * * @param string $name Name of property to retrieve * * @return JLinkedinObject Linkedin API object (statuses, users, favorites, etc.). * * @since 3.2.0 * @throws InvalidArgumentException */ public function __get($name) { $class = 'JLinkedin' . ucfirst($name); if (class_exists($class)) { if (false == isset($this->$name)) { $this->$name = new $class($this->options, $this->client, $this->oauth); } return $this->$name; } throw new InvalidArgumentException(sprintf('Argument %s produced an invalid class name: %s', $name, $class)); } /** * Get an option from the JLinkedin instance. * * @param string $key The name of the option to get. * * @return mixed The option value. * * @since 3.2.0 */ public function getOption($key) { return $this->options->get($key); } /** * Set an option for the Linkedin instance. * * @param string $key The name of the option to set. * @param mixed $value The option value to set. * * @return JLinkedin This object for method chaining. * * @since 3.2.0 */ public function setOption($key, $value) { $this->options->set($key, $value); return $this; } } PK ut!]��ˬ}+ }+ companies.phpnu &1i� <?php /** * @package Joomla.Platform * @subpackage Linkedin * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die(); /** * Linkedin API Companies class for the Joomla Platform. * * @since 3.2.0 */ class JLinkedinCompanies extends JLinkedinObject { /** * Method to retrieve companies using a company ID, a universal name, or an email domain. * * @param integer $id The unique internal numeric company identifier. * @param string $name The unique string identifier for a company. * @param string $domain Company email domains. * @param string $fields Request fields beyond the default ones. * * @return array The decoded JSON response * * @since 3.2.0 * @throws RuntimeException */ public function getCompanies($id = null, $name = null, $domain = null, $fields = null) { // At least one value is needed to retrieve data. if ($id == null && $name == null && $domain == null) { // We don't have a valid entry throw new RuntimeException('You must specify a company ID, a universal name, or an email domain.'); } $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/companies'; if ($id && $name) { $base .= '::(' . $id . ',universal-name=' . $name . ')'; } elseif ($id) { $base .= '/' . $id; } elseif ($name) { $base .= '/universal-name=' . $name; } // Set request parameters. $data['format'] = 'json'; if ($domain) { $data['email-domain'] = $domain; } // Check if fields is specified. if ($fields) { $base .= ':' . $fields; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to read shares for a particular company . * * @param string $id The unique company identifier. * @param string $type Any valid Company Update Type from the table: https://developer.linkedin.com/reading-company-updates. * @param integer $count Maximum number of updates to return. * @param integer $start The offset by which to start Network Update pagination. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getUpdates($id, $type = null, $count = 0, $start = 0) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/companies/' . $id . '/updates'; // Set request parameters. $data['format'] = 'json'; // Check if type is specified. if ($type) { $data['event-type'] = $type; } // Check if count is specified. if ($count > 0) { $data['count'] = $count; } // Check if start is specified. if ($start > 0) { $data['start'] = $start; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to search across company pages. * * @param string $fields Request fields beyond the default ones. * @param string $keywords Members who have all the keywords anywhere in their profile. * @param boolean $hq Matching companies by the headquarters location. When this is set to "true" and a location facet is used, * this restricts returned companies to only those whose headquarters resides in the specified location. * @param string $facets Facet buckets to return, e.g. location. * @param array $facet Array of facet values to search over. Contains values for location, industry, network, company-size, * num-followers-range and fortune, in exactly this order, null must be specified for an element if no value. * @param integer $start Starting location within the result set for paginated returns. * @param integer $count The number of results returned. * @param string $sort Controls the search result order. There are four options: relevance, relationship, * followers and company-size. * * @return array The decoded JSON response * * @since 3.2.0 */ public function search($fields = null, $keywords = null, $hq = false, $facets = null, $facet = null, $start = 0, $count = 0, $sort = null) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/company-search'; $data['format'] = 'json'; // Check if fields is specified. if ($fields) { $base .= ':' . $fields; } // Check if keywords is specified. if ($keywords) { $data['keywords'] = $keywords; } // Check if hq is true. if ($hq) { $data['hq-only'] = $hq; } // Check if facets is specified. if ($facets) { $data['facets'] = $facets; } // Check if facet is specified. if ($facet) { $data['facet'] = array(); for ($i = 0, $iMax = count($facet); $i < $iMax; $i++) { if ($facet[$i]) { if ($i == 0) { $data['facet'][] = 'location,' . $facet[$i]; } if ($i == 1) { $data['facet'][] = 'industry,' . $facet[$i]; } if ($i == 2) { $data['facet'][] = 'network,' . $facet[$i]; } if ($i == 3) { $data['facet'][] = 'company-size,' . $facet[$i]; } if ($i == 4) { $data['facet'][] = 'num-followers-range,' . $facet[$i]; } if ($i == 5) { $data['facet'][] = 'fortune,' . $facet[$i]; } } } } // Check if start is specified. if ($start > 0) { $data['start'] = $start; } // Check if count is specified. if ($count > 0) { $data['count'] = $count; } // Check if sort is specified. if ($sort) { $data['sort'] = $sort; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to get a list of companies the current member is following. * * @param string $fields Request fields beyond the default ones. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getFollowed($fields = null) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/~/following/companies'; $data['format'] = 'json'; // Check if fields is specified. if ($fields) { $base .= ':' . $fields; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to follow a company. * * @param string $id The unique identifier for a company. * * @return array The decoded JSON response * * @since 3.2.0 */ public function follow($id) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base $base = '/v1/people/~/following/companies'; // Build xml. $xml = '<company><id>' . $id . '</id></company>'; // Build the request path. $path = $this->getOption('api.url') . $base; $header['Content-Type'] = 'text/xml'; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method to unfollow a company. * * @param string $id The unique identifier for a company. * * @return array The decoded JSON response * * @since 3.2.0 */ public function unfollow($id) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 204); // Set the API base $base = '/v1/people/~/following/companies/id=' . $id; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'DELETE', $parameters); return $response; } /** * Method to get a collection of suggested companies for the current user. * * @param string $fields Request fields beyond the default ones. * @param integer $start Starting location within the result set for paginated returns. * @param integer $count The number of results returned. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getSuggested($fields = null, $start = 0, $count = 0) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/~/suggestions/to-follow/companies'; $data['format'] = 'json'; // Check if fields is specified. if ($fields) { $base .= ':' . $fields; } // Check if start is specified. if ($start > 0) { $data['start'] = $start; } // Check if count is specified. if ($count > 0) { $data['count'] = $count; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to get a collection of suggested companies for the current user. * * @param string $id The unique identifier for a company. * @param string $fields Request fields beyond the default ones. * @param integer $start Starting location within the result set for paginated returns. * @param integer $count The number of results returned. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getProducts($id, $fields = null, $start = 0, $count = 0) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/companies/' . $id . '/products'; $data['format'] = 'json'; // Check if fields is specified. if ($fields) { $base .= ':' . $fields; } // Check if start is specified. if ($start > 0) { $data['start'] = $start; } // Check if count is specified. if ($count > 0) { $data['count'] = $count; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } } PK ut!]$�/ 9 9 stream.phpnu &1i� <?php /** * @package Joomla.Platform * @subpackage Linkedin * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die(); /** * Linkedin API Social Stream class for the Joomla Platform. * * @since 3.2.0 */ class JLinkedinStream extends JLinkedinObject { /** * Method to add a new share. Note: post must contain comment and/or (title and url). * * @param string $visibility One of anyone: all members or connections-only: connections only. * @param string $comment Text of member's comment. * @param string $title Title of shared document. * @param string $url URL for shared content. * @param string $image URL for image of shared content. * @param string $description Description of shared content. * @param boolean $twitter True to have LinkedIn pass the status message along to a member's tethered Twitter account. * * @return array The decoded JSON response * * @since 3.2.0 * @throws RuntimeException */ public function share($visibility, $comment = null, $title = null, $url = null, $image = null, $description = null, $twitter = false) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base $base = '/v1/people/~/shares'; // Check if twitter is true. if ($twitter) { $base .= '?twitter-post=true'; } // Build xml. $xml = '<share> <visibility> <code>' . $visibility . '</code> </visibility>'; // Check if comment specified. if ($comment) { $xml .= '<comment>' . $comment . '</comment>'; } // Check if title and url are specified. if ($title && $url) { $xml .= '<content> <title>' . $title . '</title> <submitted-url>' . $url . '</submitted-url>'; // Check if image is specified. if ($image) { $xml .= '<submitted-image-url>' . $image . '</submitted-image-url>'; } // Check if descrption id specified. if ($description) { $xml .= '<description>' . $description . '</description>'; } $xml .= '</content>'; } elseif (!$comment) { throw new RuntimeException('Post must contain comment and/or (title and url).'); } $xml .= '</share>'; // Build the request path. $path = $this->getOption('api.url') . $base; $header['Content-Type'] = 'text/xml'; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method to reshare an existing share. * * @param string $visibility One of anyone: all members or connections-only: connections only. * @param string $id The unique identifier for a share. * @param string $comment Text of member's comment. * @param boolean $twitter True to have LinkedIn pass the status message along to a member's tethered Twitter account. * * @return array The decoded JSON response * * @since 3.2.0 * @throws RuntimeException */ public function reshare($visibility, $id, $comment = null, $twitter = false) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base $base = '/v1/people/~/shares'; // Check if twitter is true. if ($twitter) { $base .= '?twitter-post=true'; } // Build xml. $xml = '<share> <visibility> <code>' . $visibility . '</code> </visibility>'; // Check if comment specified. if ($comment) { $xml .= '<comment>' . $comment . '</comment>'; } $xml .= ' <attribution> <share> <id>' . $id . '</id> </share> </attribution> </share>'; // Build the request path. $path = $this->getOption('api.url') . $base; $header['Content-Type'] = 'text/xml'; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method to get a particular member's current share. * * @param string $id Member id of the profile you want. * @param string $url The public profile URL. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getCurrentShare($id = null, $url = null) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/'; // Check if a member id is specified. if ($id) { $base .= 'id=' . $id; } elseif (!$url) { $base .= '~'; } // Check if profile url is specified. if ($url) { $base .= 'url=' . $this->oauth->safeEncode($url); } $base .= ':(current-share)'; // Set request parameters. $data['format'] = 'json'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to get a particular member's current share. * * @param string $id Member id of the profile you want. * @param string $url The public profile URL. * @param boolean $self Used to return member's feed. Omitted to return aggregated network feed. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getShareStream($id = null, $url = null, $self = true) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/'; // Check if a member id is specified. if ($id) { $base .= $id; } elseif (!$url) { $base .= '~'; } // Check if profile url is specified. if ($url) { $base .= 'url=' . $this->oauth->safeEncode($url); } $base .= '/network'; // Set request parameters. $data['format'] = 'json'; $data['type'] = 'SHAR'; // Check if self is true if ($self) { $data['scope'] = 'self'; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to get the users network updates. * * @param string $id Member id. * @param boolean $self Used to return member's feed. Omitted to return aggregated network feed. * @param mixed $type String containing any valid Network Update Type from the table or an array of strings * to specify more than one Network Update type. * @param integer $count Number of updates to return, with a maximum of 250. * @param integer $start The offset by which to start Network Update pagination. * @param string $after Timestamp after which to retrieve updates. * @param string $before Timestamp before which to retrieve updates. * @param boolean $hidden Whether to display updates from people the member has chosen to "hide" from their update stream. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getNetworkUpdates($id = null, $self = true, $type = null, $count = 0, $start = 0, $after = null, $before = null, $hidden = false) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/'; // Check if a member id is specified. if ($id) { $base .= $id; } else { $base .= '~'; } $base .= '/network/updates'; // Set request parameters. $data['format'] = 'json'; // Check if self is true. if ($self) { $data['scope'] = 'self'; } // Check if type is specified. if ($type) { $data['type'] = $type; } // Check if count is specified. if ($count > 0) { $data['count'] = $count; } // Check if start is specified. if ($start > 0) { $data['start'] = $start; } // Check if after is specified. if ($after) { $data['after'] = $after; } // Check if before is specified. if ($before > 0) { $data['before'] = $before; } // Check if hidden is true. if ($hidden) { $data['hidden'] = $hidden; } // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to get information about the current member's network. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getNetworkStats() { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/~/network/network-stats'; // Set request parameters. $data['format'] = 'json'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to get the users network updates. * * @param string $body The actual content of the update. You can use HTML to include links to the user name and the content the user * created. Other HTML tags are not supported. All body text should be HTML entity escaped and UTF-8 compliant. * * @return array The decoded JSON response * * @since 3.2.0 */ public function postNetworkUpdate($body) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base $base = '/v1/people/~/person-activities'; // Build the xml. $xml = '<activity locale="en_US"> <content-type>linkedin-html</content-type> <body>' . $body . '</body> </activity>'; $header['Content-Type'] = 'text/xml'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method to retrieve all comments for a given network update. * * @param string $key update/update-key representing an update. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getComments($key) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/~/network/updates/key=' . $key . '/update-comments'; // Set request parameters. $data['format'] = 'json'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to post a new comment to an existing update. * * @param string $key update/update-key representing an update. * @param string $comment Maximum length of 700 characters * * @return array The decoded JSON response * * @since 3.2.0 */ public function postComment($key, $comment) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 201); // Set the API base $base = '/v1/people/~/network/updates/key=' . $key . '/update-comments'; // Build the xml. $xml = '<update-comment> <comment>' . $comment . '</comment> </update-comment>'; $header['Content-Type'] = 'text/xml'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'POST', $parameters, $xml, $header); return $response; } /** * Method to retrieve the complete list of people who liked an update. * * @param string $key update/update-key representing an update. * * @return array The decoded JSON response * * @since 3.2.0 */ public function getLikes($key) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the API base $base = '/v1/people/~/network/updates/key=' . $key . '/likes'; // Set request parameters. $data['format'] = 'json'; // Build the request path. $path = $this->getOption('api.url') . $base; // Send the request. $response = $this->oauth->oauthRequest($path, 'GET', $parameters, $data); return json_decode($response->body); } /** * Method to like or unlike an update. * * @param string $key Update/update-key representing an update. * @param boolean $like True to like update, false otherwise. * * @return array The decoded JSON response * * @since 3.2.0 */ private function _likeUnlike($key, $like) { $token = $this->oauth->getToken(); // Set parameters. $parameters = array( 'oauth_token' => $token['key'], ); // Set the success response code. $this->oauth->setOption('success_code', 204); // Set the API base $base = '/v1/people/~/network/updates/key=' . $key . '/is-liked'; // Build xml. $xml = '<is-liked>' . $this->booleanToString($like) . '</is-liked>'; // Build the request path. $path = $this->getOption('api.url') . $base; $header['Content-Type'] = 'text/xml'; // Send the request. $response = $this->oauth->oauthRequest($path, 'PUT', $parameters, $xml, $header); return $response; } /** * Method used to like an update. * * @param string $key Update/update-key representing an update. * * @return array The decoded JSON response * * @since 3.2.0 */ public function like($key) { return $this->_likeUnlike($key, true); } /** * Method used to unlike an update. * * @param string $key Update/update-key representing an update. * * @return array The decoded JSON response * * @since 3.2.0 */ public function unlike($key) { return $this->_likeUnlike($key, false); } } PK ut!]� ��'