Youtube api 谷歌破坏了YouTube API';与谷歌的身份验证失败。原因:无链接YouTubeaccount';

Youtube api 谷歌破坏了YouTube API';与谷歌的身份验证失败。原因:无链接YouTubeaccount';,youtube-api,google-oauth,Youtube Api,Google Oauth,**更新** 谷歌似乎真的欺骗了地球上的每一个人,绝对要求用户交互上传视频。我当然知道,他们是免费的。正是我几年前警告客户的,所以我不需要提醒。多谢各位 因此,我想尝试从另一个方向来看待这一点,只是找到一个漏洞和解决办法,以继续做我们正在做的事情,尽管谷歌完全缺乏对开发者的支持或关心,以及他们必须处理的问题 如果你真的能打电话给一个人,和他谈论YouTube合作伙伴的访问权,那就不一样了,但是你可以更快地访问光照派 OAuth 2.0现在是唯一受支持的身份验证方法。它确实需要用户交互 但是那个代

**更新**

谷歌似乎真的欺骗了地球上的每一个人,绝对要求用户交互上传视频。我当然知道,他们是免费的。正是我几年前警告客户的,所以我不需要提醒。多谢各位

因此,我想尝试从另一个方向来看待这一点,只是找到一个漏洞和解决办法,以继续做我们正在做的事情,尽管谷歌完全缺乏对开发者的支持或关心,以及他们必须处理的问题

如果你真的能打电话给一个人,和他谈论YouTube合作伙伴的访问权,那就不一样了,但是你可以更快地访问光照派

OAuth 2.0现在是唯一受支持的身份验证方法。它确实需要用户交互

但是那个代币呢?有人知道代币能用多久吗

如果我可以使用用户交互仅获得一次令牌并将其放入数据库中,那么我可以在之后自动执行数百或数千次交互

换句话说,我试图将用户交互变成一个减速带,而不是一堵水泥墙

如果有人有任何获得该令牌、缓存它并在事后使用它的例子,那对我来说就是天赐良机

谢谢你的评论和帮助。YouTube开发者论坛刚刚关闭,并表示要来这里,对此我并不感到惊讶:)


谷歌似乎已经完全关闭了现有的仪表板

这个链接现在是404'd。在不同的系统上尝试使用不同的浏览器

已经在新的GoogleAPI控制台下注册,但仍然存在问题

// Set the authentication URL for this connection object
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';

// Try to connect to YouTube with the channel credentials passed
try { 
  $httpClient = 
      Zend_Gdata_ClientLogin::getHttpClient(
      $username = $channelfields['EMAIL_ADDRESS'],
      $password = $channelfields['PASSCODE'],
      $service = 'youtube',
      $client = null,
      $source = 'Redacted Data',
      $loginToken = $channelfields['CACHED_TOKEN'],
      $loginCaptcha = '',
      $authenticationURL);  
} catch (Zend_Gdata_App_HttpException $httpException) {
    $update_error['response_body'] = $httpException->getRawResponseBody();
    $update_error['error'] = 1;
} catch (Zend_Gdata_App_Exception $e) {
    $update_error['message'] = $e->getMessage();
    $update_error['error'] = 1;
} 
这段代码以前工作得非常好,但不能与旧的API键或在GoogleAPI控制台中生成的新API键一起工作

我正在尝试一个简单的上传,这让我非常担心:

服务帐户流支持不访问用户信息的服务器到服务器的交互。但是,YouTube数据API不支持此流。由于无法将服务帐户链接到YouTube帐户,因此尝试使用此流授权请求将生成NoLinkedYouTubeAccount错误

从所有的报道来看,谷歌似乎已经迫使YouTube上传在所有情况下都变成了互动的,从而排除了所有平台自动上传生成内容的可能性

欢迎对该流程提供任何帮助或见解


哦,我已经有一段时间没有看到这个系统了,谷歌关闭了YouTube开发者论坛,说“你”现在负责他们的支持:)

我不知道你做了什么,但对我来说效果很好。也许这只是暂时的问题。如果您不希望用户交互,则必须使用YouTube API v2,或者必须使用不需要身份验证的方法使用v3,或者必须提供自己的YouTube帐户凭据,这是不推荐的,可能不适合您的情况

我想这里有几个问题需要回答

1) 旧的API控制台还没有被删除,但我注意到,在Google推出新的“云控制台”时,它和新的API控制台会出现间歇性中断

2) ClientLogin在2012年4月被正式弃用,而不仅仅是48小时前。杰夫·波斯尼克(Jeff Posnick)在他的博客(apiblog.Youtube.com)上详细介绍了几个月来的所有变化(以及相关变化,如AuthSub、Youtube Direct等)

3) 您是对的,使用v3的API,您无法进行全面的自动上载,因为oAuth2流需要用户交互。然而,鉴于对用例的有限描述,使用刷新令牌可能是最好的选择。如果内容是用户生成的,那么他们必须在某个地方登录到您的应用程序,对吗?(这样你的应用程序就知道要利用哪些凭据进行上传)。在他们登录到您的应用程序时,您启动oAuth2流,您只需点击第一个oAuth端点并向其传递参数
access\u type=offline
(以及任何其他参数)。这将确保,当他们授予初始权限时,返回的是刷新令牌而不是访问令牌。使用该刷新令牌,您可以根据需要将其交换为多个访问令牌(一个访问令牌的有效期约为一小时。我不知道刷新令牌的有效期有多长,但在我自己的登录cookie过期之前,我从未有过一个刷新令牌过期,然后当我的用户重新登录到我的应用程序时,我才得到一个新的刷新令牌)

下面是关于如何使用刷新令牌的更多信息;还要注意的是,各种GoogleAPI客户端库使它非常流畅


另外,几个月前Google开发者现场直播的这段视频教程可能有助于说明这一点:--它使用的是oAuth游乐场,而不是客户端库,但概念是一样的

解决方案其实相当简单。您的应用程序需要使用oauth请求脱机访问。它将被授予一个访问权限,您可以将其转换为刷新令牌,这是存储在数据库中的内容。这不会过期。事实上有时候是这样,但那是另一回事了。每当您需要访问api时,使用存储的刷新令牌请求一个访问令牌,该令牌包含在每个api调用中


有关详细信息,请参阅。

OAuth2确实支持通过离线访问类型参数(即使用访问类型=离线)避免用户交互的功能。查看详细信息。

答案是使用google api php客户端,创建交互式身份验证页面,并使用新的api控制台正确设置YouTube api v3

您可以创建一个非常简单的页面,该页面将对提供的通道进行身份验证,然后存储corre