2012-12-11 9 views
5

Ich habe die CodeIgniter-YouTube-API-Bibliothek zum Hochladen von Videodateien auf ein registriertes YouTube-Konto hinzugefügt. Ich habe den apikey, oauth key, oauth secret in meiner Hand. Und ich Hat den Upload erfolgreich gemacht. Aber das aktuelle Problem ist, wenn ein anderer Benutzer versucht, ein Video hochzuladen, anstatt in das registrierte Youtube-Konto hochgeladen wird, geht es auf das Youtube-Konto des aktuellen Benutzers. Wie kann ich dies vermeiden, indem Sie den Benutzer auffordern, sich bei dem registrierten Konto anzumelden schlagen Sie eine Lösung vor. Ich verwende den folgenden Code.CodeIgniter-YouTube-API-Bibliothek Authentifizieren mit registriertem Konto

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); 
} 
+0

Hallo Sujathan, ich integriere die gleiche API. Aber verwirrt ... wo ich anfangen soll. Ich habe eine Ansicht erstellt, die Form hat und ich habe alle Anmeldeinformationen, sollte ich direct_upload Funktion von meinem Formular direkt aufrufen müssen oder müssen eine Aufgabe vor dem ... Bitte können Sie mir die Schritte vorschlagen.Ich bin neu für diese . –

Antwort

Verwandte Themen