【问题标题】:Users can Upload video on single Youtube Channel with or without authentication用户可以通过或不通过身份验证在单个 Youtube 频道上传视频
【发布时间】:2015-10-02 12:57:03
【问题描述】:

我正在制作一个程序,任何用户都可以将视频上传到我的 youtube 频道。但它会产生错误。我的代码如下:-

   require_once 'Zend/Loader.php';
   Zend_Loader::loadClass('Zend_Gdata_YouTube');
   Zend_Loader::loadClass('Zend_Gdata_AuthSub');
   Zend_Loader::loadClass('Zend_Gdata_App_Exception');

   Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

   $authenticationURL= 'https://www.google.com/accounts/ClientLogin';

   $client = "";

    $email = 'theprofessional1992@gmail.com';

  $passwd = '*******************';

   try {

     $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');

   } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {

echo 'URL of CAPTCHA image: ' . $cre->getCaptchaUrl() . "\n";
echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";

 } catch (Zend_Gdata_App_AuthException $ae) {

echo 'Problem authenticating: ' . $ae->exception() . "\n";

}

错误:- 注意:未定义的偏移量:1 in C:\wamp\www\Yt\zdata\demos\Zend\Gdata\YouTubeVideoApp\Zend\Gdata\ClientLogin.php 在第 150 行

我什至不知道这个功能是如何实现的。

请帮忙?

【问题讨论】:

  • 我正在做以下工作:-
  • $httpClient = Zend_Gdata_ClientLogin::getHttpClient( $username = 'theprofessional1992@gmail.com', $password = 'everythingisplankrishan108', $service = 'youtube', $client = null, $source = ' MySource', // 一个标识您的应用程序的短字符串 $loginToken = null, $loginCaptcha = null, $authenticationURL);

标签: php zend-framework oauth youtube gdata


【解决方案1】:

注意:YouTube 数据 API (v2) 已正式弃用 2014 年 3 月 4 日

使用 YouTube Data API (v3),您无法使用用户名和密码上传。
如果要将视频上传到 youtube,则必须使用以下库:
https://github.com/google/google-api-php-client
https://github.com/youtube/api-samples/tree/master/php
https://github.com/youtube/api-samples/blob/master/php/resumable_upload.php

当然,如果您不想对每个上传过程进行身份验证,您可以使用刷新令牌。

$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setScopes('https://www.googleapis.com/oauth2/v3/token');
$client->setAccessType('offline');

刷新令牌将包含在 api 响应中。将其保存到数据库中。请记住,您只能在第一次获得刷新令牌。如果你丢失了它,你将不得不撤销你的申请https://security.google.com/settings/security/permissions?pli=1

现在使用刷新令牌,您可以随时自动获取访问令牌:

$client->refreshToken($refreshToken);
$accessToken = $client->getAccessToken();

【讨论】:

  • 好的,我知道了。但是它将如何上传到单个预定义频道。据我所知,它将上传到授权用户频道。
  • 授权申请时会要求选择频道。
  • 我搜索了很多,但找不到任何选择频道的方法。
  • 看来你还没试过。每个令牌对应一个频道。
猜你喜欢
  • 1970-01-01
  • 2015-07-12
  • 2021-01-25
  • 2013-12-16
  • 2013-08-27
  • 1970-01-01
  • 2015-08-31
  • 2014-09-27
  • 1970-01-01
相关资源
最近更新 更多