从 oauth 用户访问 Youtube 频道

Access Youtube channels from oauth'd user

我正在尝试获取使用 Google 登录到我网站的用户的所有频道,并最终获取所有视频。我正在使用 Laravel Socialite 来设置我认为应该给予适当权限的范围。然后我将访问令牌设置为会话。

public function loginGoogle()
{
   return Socialite::driver('google')->setScopes(['https://www.googleapis.com/auth/youtube.readonly',])->redirect();
}

在验证用户身份并保存访问令牌后处理回调时,我 运行 以下内容:

dd(\Youtube::getService()->channels->listChannels('snippet', ['managedByMe' => true, 'onBehalfOfContentOwner' => session('access_token')]));

\Youtube 只是我为处理网站中的 Youtube 功能而制作的外观。

当 运行ning 代码时抛出以下错误:

Client error: `GET https://www.googleapis.com/plus/v1/people/me?prettyPrint=false` resulted in a `403 Forbidden` response:

{"error":{"errors":[{"domain":"global","reason":"insufficientPermissions","message" :"Insufficient Permission"}],"code":4 (t运行cated...)

我不知道我是在使用不正确的范围还是只是搞砸了一些更大的东西。 Youtube 的文档对此帮助不大。他们只是说用户必须获得授权……他们是?

已经研究了几天,我不确定下一步该去哪里。

改变

    return Socialite::driver('google')->setScopes(['https://www.googleapis.com/auth/youtube.readonly',])->redirect();

    return Socialite::driver('google')->scopes(['https://www.googleapis.com/auth/youtube.readonly',])->redirect();

似乎已解决。看看 documentation 就明白为什么那行不通了。