Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Gathering/DataSource/TwitterDataSource.php
Строк: 88
<?php
namespace ConcreteCoreGatheringDataSource;

use 
ConcreteCoreGatheringDataSourceConfigurationConfiguration as GatheringDataSourceConfiguration;
use 
ConcreteCoreUrlUrl;
use 
OAuthCommonConsumerCredentials;
use 
OAuthCommonStorageMemory;
use 
OAuthCommonStorageSymfonySession;
use 
OAuthOAuth1TokenStdOAuth1Token;

class 
TwitterDataSource extends DataSource
{

    const 
TWITTER_SEARCH_URL 'http://api.flickr.com/services/feeds/photos_public.gne';

    public function 
createConfigurationObject(Gathering $ag$post)
    {
        
$o = new TwitterGatheringDataSourceConfiguration();
        
$o->setTwitterUsername($post['twitterUsername']);
        return 
$o;
    }

    private function 
getTwitterService()
    {
        
$key TWITTER_APP_CONSUMER_KEY;
        
$secret TWITTER_APP_CONSUMER_SECRET;
        
$access_token TWITTER_APP_ACCESS_TOKEN;
        
$access_secret TWITTER_APP_ACCESS_SECRET;

        
/** @var OAuthServiceFactory $factory */
        
$factory Core::make('oauth/factory/service');

        
// Initialize the token
        
$token = new StdOAuth1Token($access_token);
        
$token->setAccessTokenSecret($access_secret);

        
// Store the token in memory
        
$storage = new Memory();
        
$storage->storeAccessToken('Twitter'$token);

        
// Create the twitter service
        
return $factory->createService('twitter', new Credentials($key$secret''), $storage);
    }

    public function 
createGatheringItems(GatheringDataSourceConfiguration $configuration)
    {
        
$twitter $this->getTwitterService();

        
$url Url::createFromUrl('');
        
$url->setPath('/statuses/user_timeline.json');
        
$url->setQuery(array(
            
'screen_name' => $configuration->getTwitterUsername(),
            
'count' => 50
        
));

        
$tweets json_decode($twitter->request($url));
        if (!empty(
$tweets->errors[0])) {
            throw new 
Exception($tweets->errors[0]->message);
        }

        
$gathering $configuration->getGatheringObject();
        
$lastupdated 0;
        if (
$gathering->getGatheringDateLastUpdated()) {
            
$lastupdated strtotime($gathering->getGatheringDateLastUpdated());
        }

        
$items = array();
        foreach (
$tweets as $tweet) {
            
$item TwitterGatheringItem::add($configuration$tweet);

            if (
is_object($item)) {
                
$items[] = $item;
            }
        }
        return 
$items;
    }

}
Онлайн: 2
Реклама