Roʻyxatdan oʻtgan youtube hisobiga videofayllarni yuklash uchun CodeIgniter-YouTube-API-Library ilovasini qoʻshdim. Mening qoʻlimda apikey, oauth kaliti, oauth siri bor. Va yuklashni muvaffaqiyatli amalga oshirdim .Ammo hozirgi muammo qachondir boshqa foydalanuvchi video yuklamoqchi boʻlsa, roʻyxatdan oʻtgan youtube akkauntiga yuklash oʻrniga u joriy foydalanuvchining youtube akkauntiga oʻtadi.Foydalanuvchini roʻyxatdan oʻtgan akkauntga kirishni taklif qilish orqali buni qanday oldini olishim mumkin. Iltimos, yechim taklif qiling. Men quyidagi kodni ishlataman.
public function request_youtube()
{
$params['key'] = 'ENTER YOUR GOOGLE CONSUMER KEY';
$params['secret'] = 'ENTER YOUR GOOGLE CONSUMER SECRET';
$params['algorithm'] = 'HMAC-SHA1';
$this->load->library('google_oauth', $params);
$data = $this->google_oauth->get_request_token(site_url('example/access_youtube'));
$this->session->set_userdata('token_secret', $data['token_secret']);
redirect($data['redirect']);
}
//This method will be redirected to automatically
//once the user approves access of your application
public function access_youtube()
{
$params['key'] = 'ENTER YOUR GOOGLE CONSUMER KEY';
$params['secret'] = 'ENTER YOUR GOOGLE CONSUMER SECRET';
$params['algorithm'] = 'HMAC-SHA1';
$this->load->library('google_oauth', $params);
$oauth = $this->google_oauth->get_access_token(false, $this->session->userdata('token_secret'));
$this->session->set_userdata('oauth_token', $oauth['oauth_token']);
$this->session->set_userdata('oauth_token_secret', $oauth['oauth_token_secret']);
}
//This method can be called without having
//done the oauth steps
public function youtube_no_auth()
{
$params['apikey'] = 'ENTER YOUR GOOGLE YOUTUBE API KEY';
$this->load->library('youtube', $params);
echo $this->youtube->getKeywordVideoFeed('pac man');
}
public function direct_upload()
{
$videoPath = 'THE RELATIVE PATH ON YOUR SERVER TO THE VIDEO';
$videoType = 'THE CONTENT TYPE OF THE VIDEO'; //This is the mime type of the video ex: 'video/3gpp'
$params['apikey'] = 'ENTER YOUR GOOGLE YOUTUBE API KEY';
$params['oauth']['key'] = 'ENTER YOUR GOOGLE CONSUMER KEY';
$params['oauth']['secret'] = 'ENTER YOUR GOOGLE CONSUMER SECRET';
$params['oauth']['algorithm'] = 'HMAC-SHA1';
$params['oauth']['access_token'] = array('oauth_token'=>urlencode($this->session->userdata('oauth_token')),
'oauth_token_secret'=>urlencode($this->session->userdata('oauth_token_secret')));
$this->load->library('youtube', $params);
$metadata = '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007"><media:group><media:title type="plain">Test Direct Upload</media:title><media:description type="plain">Test Direct Uploading.</media:description><media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People</media:category><media:keywords>test</media:keywords></media:group></entry>';
echo $this->youtube->directUpload($videoPath, $videoType, $metadata);
}