Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
home/lmsyaran/public_html/j3/htaccess.back/joomla/linkedin/people.php000064400000024002151160070250021702
0ustar00<?php
/**
* @package Joomla.Platform
* @subpackage Linkedin
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die();
/**
* Linkedin API People class for the Joomla Platform.
*
* @since 3.2.0
*/
class JLinkedinPeople extends JLinkedinObject
{
/**
* Method to get a member's profile.
*
* @param string $id Member id of the profile you want.
* @param string $url The public profile URL.
* @param string $fields Request fields beyond the default ones.
* @param string $type Choosing public or standard profile.
* @param string $language A comma separated list of locales ordered
from highest to lowest preference.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function getProfile($id = null, $url = null, $fields = null, $type
= 'standard', $language = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people/';
$data['format'] = 'json';
// 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);
// Choose public profile
if (!strcmp($type, 'public'))
{
$base .= ':public';
}
}
// Check if fields is specified.
if ($fields)
{
$base .= ':' . $fields;
}
// Check if language is specified.
$header = array();
if ($language)
{
$header = array('Accept-Language' => $language);
}
// Build the request path.
$path = $this->getOption('api.url') . $base;
// Send the request.
$response = $this->oauth->oauthRequest($path, 'GET',
$parameters, $data, $header);
return json_decode($response->body);
}
/**
* Method to get a list of connections for a user who has granted access
to his/her account.
*
* @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.
* @param string $modified Values are updated or new.
* @param string $modifiedSince Value as a Unix time stamp of
milliseconds since epoch.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function getConnections($fields = null, $start = 0, $count = 500,
$modified = null, $modifiedSince = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people/~/connections';
$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 != 500)
{
$data['count'] = $count;
}
// Check if modified is specified.
if ($modified)
{
$data['modified'] = $modified;
}
// Check if modified_since is specified.
if ($modifiedSince)
{
$data['modified-since'] = $modifiedSince;
}
// 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 people.
*
* @param string $fields Request fields beyond the default
ones. provide 'api-standard-profile-request'
* field for out of network profiles.
* @param string $keywords Members who have all the keywords
anywhere in their profile.
* @param string $firstName Members with a matching first name.
Matches must be exact.
* @param string $lastName Members with a matching last name.
Matches must be exactly.
* @param string $companyName Members who have a matching company
name on their profile.
* @param boolean $currentCompany A value of true matches members who
currently work at the company specified in the company-name
* parameter.
* @param string $title Matches members with that title on
their profile.
* @param boolean $currentTitle A value of true matches members
whose title is currently the one specified in the title-name parameter.
* @param string $schoolName Members who have a matching school
name on their profile.
* @param string $currentSchool A value of true matches members who
currently attend the school specified in the school-name parameter.
* @param string $countryCode Matches members with a location in a
specific country. Values are defined in by ISO 3166 standard.
* Country codes must be in all lower
case.
* @param integer $postalCode Matches members centered around a
Postal Code. Must be combined with the country-code parameter.
* Not supported for all countries.
* @param integer $distance Matches members within a distance
from a central point. This is measured in miles.
* @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, language,
* current-company, past-company and
school, 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: connections, recommenders,
* distance and relevance.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function search($fields = null, $keywords = null, $firstName =
null, $lastName = null, $companyName = null,
$currentCompany = null, $title = null, $currentTitle = null, $schoolName
= null, $currentSchool = null, $countryCode = null,
$postalCode = null, $distance = null, $facets = null, $facet = null,
$start = 0, $count = 10, $sort = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people-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 first_name is specified.
if ($firstName)
{
$data['first-name'] = $firstName;
}
// Check if last_name is specified.
if ($lastName)
{
$data['last-name'] = $lastName;
}
// Check if company-name is specified.
if ($companyName)
{
$data['company-name'] = $companyName;
}
// Check if current_company is specified.
if ($currentCompany)
{
$data['current-company'] = $currentCompany;
}
// Check if title is specified.
if ($title)
{
$data['title'] = $title;
}
// Check if current_title is specified.
if ($currentTitle)
{
$data['current-title'] = $currentTitle;
}
// Check if school_name is specified.
if ($schoolName)
{
$data['school-name'] = $schoolName;
}
// Check if current_school is specified.
if ($currentSchool)
{
$data['current-school'] = $currentSchool;
}
// Check if country_code is specified.
if ($countryCode)
{
$data['country-code'] = $countryCode;
}
// Check if postal_code is specified.
if ($postalCode)
{
$data['postal-code'] = $postalCode;
}
// Check if distance is specified.
if ($distance)
{
$data['distance'] = $distance;
}
// 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'][] = 'language,' . $facet[$i];
}
if ($i == 4)
{
$data['facet'][] = 'current-company,' .
$facet[$i];
}
if ($i == 5)
{
$data['facet'][] = 'past-company,' . $facet[$i];
}
if ($i == 6)
{
$data['facet'][] = 'school,' . $facet[$i];
}
}
}
}
// Check if start is specified.
if ($start > 0)
{
$data['start'] = $start;
}
// Check if count is specified.
if ($count != 10)
{
$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);
if (strpos($fields, 'api-standard-profile-request') === false)
{
return json_decode($response->body);
}
// Get header name.
$name = explode('"name": "',
$response->body);
$name = explode('"', $name[1]);
$name = $name[0];
// Get header value.
$value = explode('"value": "',
$response->body);
$value = explode('"', $value[1]);
$value = $value[0];
// Get request url.
$url = explode('"url": "', $response->body);
$url = explode('"', $url[1]);
$url = $url[0];
// Build header for out of network profile.
$header[$name] = $value;
// Send the request.
$response = $this->oauth->oauthRequest($url, 'GET',
$parameters, $data, $header);
return json_decode($response->body);
}
}
home/lmsyaran/public_html/libraries/joomla/google/data/plus/people.php000064400000011244151160075720022234
0ustar00<?php
/**
* @package Joomla.Platform
* @subpackage Google
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
use Joomla\Registry\Registry;
/**
* Google+ data class for the Joomla Platform.
*
* @since 3.1.4
* @deprecated 4.0 Use the `joomla/google` package via Composer instead
*/
class JGoogleDataPlusPeople extends JGoogleData
{
/**
* Constructor.
*
* @param Registry $options Google options object
* @param JGoogleAuth $auth Google data http client object
*
* @since 3.1.4
*/
public function __construct(Registry $options = null, JGoogleAuth $auth =
null)
{
parent::__construct($options, $auth);
if (isset($this->auth) &&
!$this->auth->getOption('scope'))
{
$this->auth->setOption('scope',
'https://www.googleapis.com/auth/plus.me');
}
}
/**
* Get a person's profile.
*
* @param string $id The ID of the person to get the profile for.
The special value "me" can be used to indicate the authenticated
user.
* @param string $fields Used to specify the fields you want returned.
*
* @return mixed Data from Google
*
* @since 3.1.4
*/
public function getPeople($id, $fields = null)
{
if ($this->isAuthenticated())
{
$url = $this->getOption('api.url') . 'people/' .
$id;
// Check if fields is specified.
if ($fields)
{
$url .= '?fields=' . $fields;
}
$jdata = $this->auth->query($url);
return json_decode($jdata->body, true);
}
else
{
return false;
}
}
/**
* Search all public profiles.
*
* @param string $query Specify a query string for full text
search of public text in all profiles.
* @param string $fields Used to specify the fields you want
returned.
* @param string $language Specify the preferred language to search
with. https://developers.google.com/+/api/search#available-languages
* @param integer $max The maximum number of people to include in
the response, used for paging.
* @param string $token The continuation token, used to page
through large result sets. To get the next page of results, set this
* parameter to the value of "nextPageToken" from the
previous response. This token may be of any length.
*
* @return mixed Data from Google
*
* @since 3.1.4
*/
public function search($query, $fields = null, $language = null, $max =
10, $token = null)
{
if ($this->isAuthenticated())
{
$url = $this->getOption('api.url') .
'people?query=' . urlencode($query);
// Check if fields is specified.
if ($fields)
{
$url .= '&fields=' . $fields;
}
// Check if language is specified.
if ($language)
{
$url .= '&language=' . $language;
}
// Check if max is specified.
if ($max != 10)
{
$url .= '&maxResults=' . $max;
}
// Check of token is specified.
if ($token)
{
$url .= '&pageToken=' . $token;
}
$jdata = $this->auth->query($url);
return json_decode($jdata->body, true);
}
else
{
return false;
}
}
/**
* List all of the people in the specified collection for a particular
activity.
*
* @param string $activityId The ID of the activity to get the list
of people for.
* @param string $collection The collection of people to list.
Acceptable values are "plusoners" and "resharers".
* @param string $fields Used to specify the fields you want
returned.
* @param integer $max The maximum number of people to include
in the response, used for paging.
* @param string $token The continuation token, used to page
through large result sets. To get the next page of results, set this
* parameter to the value of "nextPageToken" from the
previous response. This token may be of any length.
*
* @return mixed Data from Google
*
* @since 3.1.4
*/
public function listByActivity($activityId, $collection, $fields = null,
$max = 10, $token = null)
{
if ($this->isAuthenticated())
{
$url = $this->getOption('api.url') .
'activities/' . $activityId . '/people/' . $collection;
// Check if fields is specified.
if ($fields)
{
$url .= '?fields=' . $fields;
}
// Check if max is specified.
if ($max != 10)
{
$url .= (strpos($url, '?') === false) ?
'?maxResults=' : '&maxResults=';
$url .= $max;
}
// Check of token is specified.
if ($token)
{
$url .= (strpos($url, '?') === false) ?
'?pageToken=' : '&pageToken=';
$url .= $token;
}
$jdata = $this->auth->query($url);
return json_decode($jdata->body, true);
}
else
{
return false;
}
}
}
home/lmsyaran/public_html/j3/libraries/joomla/linkedin/people.php000064400000024002151160202620021160
0ustar00<?php
/**
* @package Joomla.Platform
* @subpackage Linkedin
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die();
/**
* Linkedin API People class for the Joomla Platform.
*
* @since 3.2.0
*/
class JLinkedinPeople extends JLinkedinObject
{
/**
* Method to get a member's profile.
*
* @param string $id Member id of the profile you want.
* @param string $url The public profile URL.
* @param string $fields Request fields beyond the default ones.
* @param string $type Choosing public or standard profile.
* @param string $language A comma separated list of locales ordered
from highest to lowest preference.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function getProfile($id = null, $url = null, $fields = null, $type
= 'standard', $language = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people/';
$data['format'] = 'json';
// 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);
// Choose public profile
if (!strcmp($type, 'public'))
{
$base .= ':public';
}
}
// Check if fields is specified.
if ($fields)
{
$base .= ':' . $fields;
}
// Check if language is specified.
$header = array();
if ($language)
{
$header = array('Accept-Language' => $language);
}
// Build the request path.
$path = $this->getOption('api.url') . $base;
// Send the request.
$response = $this->oauth->oauthRequest($path, 'GET',
$parameters, $data, $header);
return json_decode($response->body);
}
/**
* Method to get a list of connections for a user who has granted access
to his/her account.
*
* @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.
* @param string $modified Values are updated or new.
* @param string $modifiedSince Value as a Unix time stamp of
milliseconds since epoch.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function getConnections($fields = null, $start = 0, $count = 500,
$modified = null, $modifiedSince = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people/~/connections';
$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 != 500)
{
$data['count'] = $count;
}
// Check if modified is specified.
if ($modified)
{
$data['modified'] = $modified;
}
// Check if modified_since is specified.
if ($modifiedSince)
{
$data['modified-since'] = $modifiedSince;
}
// 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 people.
*
* @param string $fields Request fields beyond the default
ones. provide 'api-standard-profile-request'
* field for out of network profiles.
* @param string $keywords Members who have all the keywords
anywhere in their profile.
* @param string $firstName Members with a matching first name.
Matches must be exact.
* @param string $lastName Members with a matching last name.
Matches must be exactly.
* @param string $companyName Members who have a matching company
name on their profile.
* @param boolean $currentCompany A value of true matches members who
currently work at the company specified in the company-name
* parameter.
* @param string $title Matches members with that title on
their profile.
* @param boolean $currentTitle A value of true matches members
whose title is currently the one specified in the title-name parameter.
* @param string $schoolName Members who have a matching school
name on their profile.
* @param string $currentSchool A value of true matches members who
currently attend the school specified in the school-name parameter.
* @param string $countryCode Matches members with a location in a
specific country. Values are defined in by ISO 3166 standard.
* Country codes must be in all lower
case.
* @param integer $postalCode Matches members centered around a
Postal Code. Must be combined with the country-code parameter.
* Not supported for all countries.
* @param integer $distance Matches members within a distance
from a central point. This is measured in miles.
* @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, language,
* current-company, past-company and
school, 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: connections, recommenders,
* distance and relevance.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function search($fields = null, $keywords = null, $firstName =
null, $lastName = null, $companyName = null,
$currentCompany = null, $title = null, $currentTitle = null, $schoolName
= null, $currentSchool = null, $countryCode = null,
$postalCode = null, $distance = null, $facets = null, $facet = null,
$start = 0, $count = 10, $sort = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people-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 first_name is specified.
if ($firstName)
{
$data['first-name'] = $firstName;
}
// Check if last_name is specified.
if ($lastName)
{
$data['last-name'] = $lastName;
}
// Check if company-name is specified.
if ($companyName)
{
$data['company-name'] = $companyName;
}
// Check if current_company is specified.
if ($currentCompany)
{
$data['current-company'] = $currentCompany;
}
// Check if title is specified.
if ($title)
{
$data['title'] = $title;
}
// Check if current_title is specified.
if ($currentTitle)
{
$data['current-title'] = $currentTitle;
}
// Check if school_name is specified.
if ($schoolName)
{
$data['school-name'] = $schoolName;
}
// Check if current_school is specified.
if ($currentSchool)
{
$data['current-school'] = $currentSchool;
}
// Check if country_code is specified.
if ($countryCode)
{
$data['country-code'] = $countryCode;
}
// Check if postal_code is specified.
if ($postalCode)
{
$data['postal-code'] = $postalCode;
}
// Check if distance is specified.
if ($distance)
{
$data['distance'] = $distance;
}
// 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'][] = 'language,' . $facet[$i];
}
if ($i == 4)
{
$data['facet'][] = 'current-company,' .
$facet[$i];
}
if ($i == 5)
{
$data['facet'][] = 'past-company,' . $facet[$i];
}
if ($i == 6)
{
$data['facet'][] = 'school,' . $facet[$i];
}
}
}
}
// Check if start is specified.
if ($start > 0)
{
$data['start'] = $start;
}
// Check if count is specified.
if ($count != 10)
{
$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);
if (strpos($fields, 'api-standard-profile-request') === false)
{
return json_decode($response->body);
}
// Get header name.
$name = explode('"name": "',
$response->body);
$name = explode('"', $name[1]);
$name = $name[0];
// Get header value.
$value = explode('"value": "',
$response->body);
$value = explode('"', $value[1]);
$value = $value[0];
// Get request url.
$url = explode('"url": "', $response->body);
$url = explode('"', $url[1]);
$url = $url[0];
// Build header for out of network profile.
$header[$name] = $value;
// Send the request.
$response = $this->oauth->oauthRequest($url, 'GET',
$parameters, $data, $header);
return json_decode($response->body);
}
}
home/lmsyaran/public_html/libraries/joomla/linkedin/people.php000064400000024002151161556470020664
0ustar00<?php
/**
* @package Joomla.Platform
* @subpackage Linkedin
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die();
/**
* Linkedin API People class for the Joomla Platform.
*
* @since 3.2.0
*/
class JLinkedinPeople extends JLinkedinObject
{
/**
* Method to get a member's profile.
*
* @param string $id Member id of the profile you want.
* @param string $url The public profile URL.
* @param string $fields Request fields beyond the default ones.
* @param string $type Choosing public or standard profile.
* @param string $language A comma separated list of locales ordered
from highest to lowest preference.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function getProfile($id = null, $url = null, $fields = null, $type
= 'standard', $language = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people/';
$data['format'] = 'json';
// 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);
// Choose public profile
if (!strcmp($type, 'public'))
{
$base .= ':public';
}
}
// Check if fields is specified.
if ($fields)
{
$base .= ':' . $fields;
}
// Check if language is specified.
$header = array();
if ($language)
{
$header = array('Accept-Language' => $language);
}
// Build the request path.
$path = $this->getOption('api.url') . $base;
// Send the request.
$response = $this->oauth->oauthRequest($path, 'GET',
$parameters, $data, $header);
return json_decode($response->body);
}
/**
* Method to get a list of connections for a user who has granted access
to his/her account.
*
* @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.
* @param string $modified Values are updated or new.
* @param string $modifiedSince Value as a Unix time stamp of
milliseconds since epoch.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function getConnections($fields = null, $start = 0, $count = 500,
$modified = null, $modifiedSince = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people/~/connections';
$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 != 500)
{
$data['count'] = $count;
}
// Check if modified is specified.
if ($modified)
{
$data['modified'] = $modified;
}
// Check if modified_since is specified.
if ($modifiedSince)
{
$data['modified-since'] = $modifiedSince;
}
// 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 people.
*
* @param string $fields Request fields beyond the default
ones. provide 'api-standard-profile-request'
* field for out of network profiles.
* @param string $keywords Members who have all the keywords
anywhere in their profile.
* @param string $firstName Members with a matching first name.
Matches must be exact.
* @param string $lastName Members with a matching last name.
Matches must be exactly.
* @param string $companyName Members who have a matching company
name on their profile.
* @param boolean $currentCompany A value of true matches members who
currently work at the company specified in the company-name
* parameter.
* @param string $title Matches members with that title on
their profile.
* @param boolean $currentTitle A value of true matches members
whose title is currently the one specified in the title-name parameter.
* @param string $schoolName Members who have a matching school
name on their profile.
* @param string $currentSchool A value of true matches members who
currently attend the school specified in the school-name parameter.
* @param string $countryCode Matches members with a location in a
specific country. Values are defined in by ISO 3166 standard.
* Country codes must be in all lower
case.
* @param integer $postalCode Matches members centered around a
Postal Code. Must be combined with the country-code parameter.
* Not supported for all countries.
* @param integer $distance Matches members within a distance
from a central point. This is measured in miles.
* @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, language,
* current-company, past-company and
school, 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: connections, recommenders,
* distance and relevance.
*
* @return array The decoded JSON response
*
* @since 3.2.0
*/
public function search($fields = null, $keywords = null, $firstName =
null, $lastName = null, $companyName = null,
$currentCompany = null, $title = null, $currentTitle = null, $schoolName
= null, $currentSchool = null, $countryCode = null,
$postalCode = null, $distance = null, $facets = null, $facet = null,
$start = 0, $count = 10, $sort = null)
{
$token = $this->oauth->getToken();
// Set parameters.
$parameters = array(
'oauth_token' => $token['key'],
);
// Set the API base
$base = '/v1/people-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 first_name is specified.
if ($firstName)
{
$data['first-name'] = $firstName;
}
// Check if last_name is specified.
if ($lastName)
{
$data['last-name'] = $lastName;
}
// Check if company-name is specified.
if ($companyName)
{
$data['company-name'] = $companyName;
}
// Check if current_company is specified.
if ($currentCompany)
{
$data['current-company'] = $currentCompany;
}
// Check if title is specified.
if ($title)
{
$data['title'] = $title;
}
// Check if current_title is specified.
if ($currentTitle)
{
$data['current-title'] = $currentTitle;
}
// Check if school_name is specified.
if ($schoolName)
{
$data['school-name'] = $schoolName;
}
// Check if current_school is specified.
if ($currentSchool)
{
$data['current-school'] = $currentSchool;
}
// Check if country_code is specified.
if ($countryCode)
{
$data['country-code'] = $countryCode;
}
// Check if postal_code is specified.
if ($postalCode)
{
$data['postal-code'] = $postalCode;
}
// Check if distance is specified.
if ($distance)
{
$data['distance'] = $distance;
}
// 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'][] = 'language,' . $facet[$i];
}
if ($i == 4)
{
$data['facet'][] = 'current-company,' .
$facet[$i];
}
if ($i == 5)
{
$data['facet'][] = 'past-company,' . $facet[$i];
}
if ($i == 6)
{
$data['facet'][] = 'school,' . $facet[$i];
}
}
}
}
// Check if start is specified.
if ($start > 0)
{
$data['start'] = $start;
}
// Check if count is specified.
if ($count != 10)
{
$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);
if (strpos($fields, 'api-standard-profile-request') === false)
{
return json_decode($response->body);
}
// Get header name.
$name = explode('"name": "',
$response->body);
$name = explode('"', $name[1]);
$name = $name[0];
// Get header value.
$value = explode('"value": "',
$response->body);
$value = explode('"', $value[1]);
$value = $value[0];
// Get request url.
$url = explode('"url": "', $response->body);
$url = explode('"', $url[1]);
$url = $url[0];
// Build header for out of network profile.
$header[$name] = $value;
// Send the request.
$response = $this->oauth->oauthRequest($url, 'GET',
$parameters, $data, $header);
return json_decode($response->body);
}
}