| Current Path : /home/megadansyp/www/administrator/components/com_eventgallery/controllers/ |
| Current File : /home/megadansyp/www/administrator/components/com_eventgallery/controllers/flickraccount.php |
<?php
/**
* @package Sven.Bluege
* @subpackage com_eventgallery
*
* @copyright Copyright (C) 2005 - 2019 Sven Bluege All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
jimport( 'joomla.application.component.controllerform' );
class EventgalleryControllerFlickraccount extends JControllerForm
{
public function flickrcallback() {
$app = \Joomla\CMS\Factory::getApplication();
$id = $app->input->getInt('accountid', null);
$oauth_verifier = $app->input->getRaw('oauth_verifier', null);
$oauth_token = $app->input->getRaw('oauth_token', null);
if ($oauth_token==null || $oauth_verifier == null || $id == null) {
$app->close('invalid request');
}
/**
* @var EventgalleryLibraryFactoryFlickraccount $factory
*/
$factory = EventgalleryLibraryFactoryFlickraccount::getInstance();
$account = $factory->getAccountById($id);
$oauth_nonce = '12345';
$oauth_timestamp = time();
$session = \Joomla\CMS\Factory::getSession();
$oauth_token_secret = $session->get('flickr_oauth_token_secret');
$url = 'https://www.flickr.com/services/oauth/access_token?oauth_nonce='.$oauth_nonce.'&oauth_timestamp='.$oauth_timestamp.'&oauth_verifier='.$oauth_verifier.'&oauth_consumer_key='.$account->getAPIKey().'&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token='.$oauth_token;
$signedUrl = \Joomla\Component\Eventgallery\Site\Library\Connector\Flickr::appendSignaturetoUrl('GET', $url, $account->getAPISecret(), $oauth_token_secret);
$result = \JHttpFactory::getHttp()->get($signedUrl, [], 5);
parse_str($result->body, $tokenData);
$model = $this->getModel();
$accountPageUrl = JRoute::_('index.php?option=com_eventgallery&view=flickraccount&id='.$account->getId(), false);
if (isset($tokenData['oauth_problem'])) {
echo "Request to Flickr failed. Message body: ";
echo $result->body;
echo "<a href=\"$accountPageUrl\">Go back to the Flickr account</a>";
} else {
$oauth_token = $tokenData['oauth_token'];
$oauth_token_secret = $tokenData['oauth_token_secret'];
$user_id = $tokenData['user_nsid'];
$data = ['id' => $account->getId(),
'user_id' => $user_id,
'auth_token' => $oauth_token,
'auth_token_secret' => $oauth_token_secret];
$model->save($data);
$this->setRedirect($accountPageUrl);
}
}
}