Your IP : 216.73.216.158


Current Path : /home/megadansyp/www/administrator/components/com_eventgallery/controllers/
Upload File :
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);
        }

    }
}