File: /home/ezpgggd/www/wp-content/plugins/flow-flow/libs/flowflow/social/src/flow/social/FFLinkedIn.php
<?php namespace flow\social;
if ( ! defined( 'WPINC' ) ) die;
/**
* FlowFlow.
*
* @package FlowFlow
* @author Looks Awesome <email@looks-awesome.com>
*
* @link http://looks-awesome.com
* @copyright 2014-2016 Looks Awesome
*/
class FFLinkedIn extends FFHttpRequestFeed {
private $image;
private $media;
private $company;
private $profileUrl;
private $profileImageUrl;
public function __construct( $type = null ) {
if (is_null($type)) $type = 'linkedin';
parent::__construct( $type );
}
/**
* Search company.
* http://stackoverflow.com.80bola.com/questions/17860616/search-company-api-linkedin
*
* @param \stdClass $feed
*/
public function deferredInit( $feed ) {
$token = $feed->linkedin_access_token;
$start = 0;
$num = $this->getCount();
$this->company = $feed->content;
$event_type = '';
if (isset($feed->{'event-type'}) && $feed->{'event-type'} != 'any'){
$event_type = '&event-type=' . $feed->{'event-type'};
}
$this->url = "https://api.linkedin.com/v1/companies/{$this->company}/updates?oauth2_access_token={$token}&count={$num}&format=json";
$this->url .= $event_type;
$this->profileUrl = "https://api.linkedin.com/v1/companies/{$this->company}:(id,name,logo-url,square-logo-url)?oauth2_access_token={$token}&format=json";
$data = $this->getFeedData($this->profileUrl);
if ( sizeof( $data['errors'] ) > 0 ) {
$this->errors[] = array(
'type' => $this->getType(),
'message' => $this->filterErrorMessage($data['errors']),
'url' => $this->getUrl()
);
}
if (isset($data['response'])){
$profile = json_decode($data['response']);
if (isset($profile->squareLogoUrl) && !empty($profile->squareLogoUrl)){
$this->profileImageUrl = $profile->squareLogoUrl;
}
else if (isset($profile->logoUrl)) {
$this->profileImageUrl = $profile->logoUrl;
}
else {
$this->profileImageUrl = '';
}
}
}
protected function items( $request ) {
$pxml = json_decode($request);
if (isset($pxml->values)) {
return $pxml->values;
}
return array();
}
protected function getId( $item ) {
if (isset($item->updateContent->companyStatusUpdate)){
return $item->updateContent->companyStatusUpdate->share->id;
}
elseif (isset($item->updateContent->companyJobUpdate)){
return $item->updateContent->companyJobUpdate->job->id;
}
return '';
}
protected function getHeader( $item ) {
if (isset($item->updateContent->companyStatusUpdate)){
return '';//$item->updateContent->companyStatusUpdate->share->comment;
}
elseif (isset($item->updateContent->companyJobUpdate)){
return $item->updateContent->companyJobUpdate->job->position->title;
}
return '';
}
protected function getScreenName( $item ) {
return $item->updateContent->company->name;
}
protected function getProfileImage( $item ) {
return $this->profileImageUrl;
}
protected function getSystemDate( $item ) {
return (int) floor($item->timestamp/1000);
}
protected function getContent( $item ) {
if (isset($item->updateContent->companyStatusUpdate)){
$content = FFFeedUtils::wrapLinks($item->updateContent->companyStatusUpdate->share->comment);
if (!empty($item->updateContent->companyStatusUpdate->share->content->description)){
$content .= '<br><br><b>' . $item->updateContent->companyStatusUpdate->share->content->title . '</b>';
$content .= '<br><br>' . $item->updateContent->companyStatusUpdate->share->content->description;
}
return $content;
}
elseif (isset($item->updateContent->companyJobUpdate)){
$location = $item->updateContent->companyJobUpdate->job->locationDescription;
return $location . '<br>' . $item->updateContent->companyJobUpdate->job->description;
}
return '';
}
protected function getUserlink( $item ) {
return 'https://www.linkedin.com/company/' . $this->company;
}
protected function getPermalink( $item ) {
if (isset($item->updateContent->companyJobUpdate)){
return $item->updateContent->companyJobUpdate->job->siteJobRequest->url;
}
//https://www.linkedin.com/hp/update/6254947980814618625
if (false !== ($ar = explode('-', $item->updateKey))){
return 'https://www.linkedin.com/hp/update/' . $ar[2];
}
return $this->getUserlink($item);
}
protected function showImage( $item ) {
if (isset($item->updateContent->companyStatusUpdate->share->content)){
$content = $item->updateContent->companyStatusUpdate->share->content;
if (isset($content->submittedImageUrl)){
$url = $content->submittedImageUrl;
$this->image = $this->createImage($url);
$this->media = $this->createMedia($url);
return true;
}
else if (isset($content->submittedUrl)){
$url = $content->submittedUrl;
$this->image = $this->createImage($url);
$this->media = $this->createMedia($url);
return true;
}
}
return false;
}
protected function getImage( $item ) {
return $this->image;
}
protected function getMedia( $item ) {
return $this->media;
}
protected function getAdditionalInfo( $item ) {
$additional = parent::getAdditionalInfo( $item );
$additional['likes'] = (string)@$item->numLikes;
$additional['comments'] = (string)@$item->updateComments->{'_total'};
return $additional;
}
}