谷歌登录youtube帐户失败



我有一个应用程序,它使用谷歌登录来获取YouTube频道的信息(上传视频、订阅等)。当用户尝试登录时,他们可以从谷歌帐户列表中进行选择,如果用户有多个帐户,则可以从YouTube频道列表中选择。但是,当选择YouTube频道时,API会失败。

var login=函数(选项){
  if (!gapi.auth2){
    // Retrieve the singleton for the GoogleAuth library and set up the client.
    gapi.load('auth2', function(){
      gapi.auth2.init({
        client_id: config.credentials.googleApiClientId,
        cookiepolicy: 'single_host_origin',
        scope: 'https://www.googleapis.com/auth/youtube.readonly'
      });
    });
  }
  var GoogleAuth = gapi.auth2.getAuthInstance();
  return GoogleAuth.signIn(options);
};

在回调JavaScript中,Google API说:

对象{type:"tokenFailed",idpId:"google",错误:"USER_LOGGED_OUT"}

遇到了类似的问题,经过一段时间的实验,我终于解决了这个问题,我不完全确定问题出在哪里——我改变的是将prompt: 'select_account'添加到signIn调用选项,将fetch_basic_profile: false添加到init调用选项:

这里有一个可能适用于您的jsbin,请确保将您自己的client_id添加到init调用中,并确保将output.jsbin.com域列入白名单,并从该域预览jsbin。

var auth2 = gapi.auth2.init({
  client_id: '',
  scope: 'https://www.googleapis.com/auth/youtube',
  fetch_basic_profile: false,
  cookie_policy: 'single_host_origin'
});

auth2.signIn({
  scope: 'https://www.googleapis.com/auth/youtube',
  prompt: 'select_account'
}).then(function(result) {
  console.log('Signed in!');
  console.log(result);
}, function(error) {
  console.log(error);
});

相关内容

  • 没有找到相关文章