Php CodeIgniter YouTube API库使用注册帐户进行身份验证

Php CodeIgniter YouTube API库使用注册帐户进行身份验证,php,codeigniter,youtube,google-api,Php,Codeigniter,Youtube,Google Api,我添加了CodeIgniter YouTube API库,用于将视频文件上载到注册的YouTube帐户。我手中有apikey、oauth key、oauth secret。我成功地完成了上载。但当前的问题是,当另一个用户试图上载视频时,它不会上载到注册的youtube帐户,而是转到当前用户的youtube帐户。。如何通过提示用户登录到注册的帐户来避免这种情况。请建议解决方案。我使用以下代码 public function request_youtube() { $params['key'

我添加了CodeIgniter YouTube API库,用于将视频文件上载到注册的YouTube帐户。我手中有apikey、oauth key、oauth secret。我成功地完成了上载。但当前的问题是,当另一个用户试图上载视频时,它不会上载到注册的youtube帐户,而是转到当前用户的youtube帐户。。如何通过提示用户登录到注册的帐户来避免这种情况。请建议解决方案。我使用以下代码

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);
}
public function request_youtube()
{
$params['key']='输入您的谷歌用户密钥';
$params['secret']='输入您的谷歌消费者密码';
$params['algorithm']='HMAC-SHA1';
$this->load->library('google_oauth',$params);
$data=$this->google\u oauth->get\u request\u token(site\u url('example/access\u youtube');
$this->session->set_userdata('token_secret',$data['token_secret');
重定向($data['redirect']);
}
//此方法将自动重定向到
//一旦用户批准对应用程序的访问
公共功能访问
{
$params['key']='输入您的谷歌用户密钥';
$params['secret']='输入您的谷歌消费者密码';
$params['algorithm']='HMAC-SHA1';
$this->load->library('google_oauth',$params);
$oauth=$this->google\u oauth->get\u access\u token(false,$this->session->userdata('token\u secret');
$this->session->set_userdata('oauth_token',$oauth['oauth_token']);
$this->session->set_userdata('oauth_token_secret',$oauth['oauth_token_secret');
}
//可以调用此方法,而无需
//完成了oauth步骤
公共函数youtube_no_auth()
{
$params['apikey']='输入您的谷歌YOUTUBE API密钥';
$this->load->library('youtube',$params);
echo$this->youtube->getKeywordVideoFeed(“吃豆人”);
}
公共函数直接上传()
{
$videoPath='服务器上与视频的相对路径';
$videoType='视频的内容类型';//这是视频的mime类型,例如:“视频/3gpp”
$params['apikey']='输入您的谷歌YOUTUBE API密钥';
$params['oauth']['key']='输入您的谷歌用户密钥';
$params['oauth']['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='Test Direct UploadTest Direct Uploading.Peopletest';
echo$this->youtube->directUpload($videoPath、$videoType、$metadata);
}
在这里,我可以看到directUpload函数也有一个用户参数。
尝试将其设置为登录用户的id,看看是否有效。

Hi Sujathan,我正在集成相同的API。但是困惑。。。从哪里开始。我已经创建了一个具有表单的视图,并且我拥有所有凭据,我是否需要直接从表单调用direct_upload函数,或者需要在此之前执行一些任务。。。你能给我建议一下步骤吗?我是新手。