Flutter google_sign_in“选择账号”不列出Youtube品牌账号?

Posted

技术标签:

【中文标题】Flutter google_sign_in“选择账号”不列出Youtube品牌账号?【英文标题】:Flutter google_sign_in "Choose Account" does not list Youtube brand accounts? 【发布时间】:2021-06-07 05:05:47 【问题描述】:

我目前正在使用https://pub.dev/packages/google_sign_in。

到目前为止它工作正常,但在 Google 登录弹出窗口中,我在“选择帐户”处看不到我的 Youtube 品牌帐户,因此,Youtube 数据 API 无法正确识别带有参数“我的”的 API 调用=true",因为如果我选择我的 Google 帐户,它与 Youtube 帐户没有任何关联。

在 Youtube Data API 的文档中,如果我在那里“立即尝试”,Google SignIn 会在我选择我的 Google 帐户后列出我的 Youtube 品牌帐户。

使用过的包:

Flutter 2.0.1
Dart 2.12.0
google_sign_in: 5.0.0

示例代码(使用 firebase 和 API Explorer 的权限已设置并有效):

final GoogleSignIn _googleSignIn = GoogleSignIn(
  signInOption: SignInOption.standard, // not necessary
  scopes: <String>['https://www.googleapis.com/auth/youtube']);
...
this._googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account) 
...
this._googleSignIn.signIn();
...

因此,Youtube 数据 API 调用为我的 Google 帐户返回了一个空结果(但调用有效):

http.get(
    Uri.parse(
 'https://www.googleapis.com/youtube/v3/channels?part=id,snippet,contentDetails&mine=true'),
 headers: await currentGoogleUser.authHeaders);

有什么帮助,所以我在 GoogleSignIn 过程中得到了选择 Youtube 品牌帐户的屏幕?

另请参阅https://github.com/flutter/flutter/issues/77694

【问题讨论】:

这有帮助吗? ***.com/questions/62673724/… 不,正如您在最后一条评论中看到的那样,google 和 youtube 帐户之间没有关联,所以我猜他也无法选择他的 youtube 品牌帐户。 【参考方案1】:

尝试从以下位置删除

scopes: <String>['https://www.googleapis.com/auth/youtube']);

这是我的猜测。

【讨论】:

我不知道你想要实现什么不同,但是没有它不起作用 好吧,我认为在代码中包含 不会编译。为什么会在那里?但无论如何......我敢打赌这个问题与这行代码有关——由于一些格式问题,范围没有被成功应用。

以上是关于Flutter google_sign_in“选择账号”不列出Youtube品牌账号?的主要内容,如果未能解决你的问题,请参考以下文章

MissingPluginException(在通道 plugins.flutter.io/google_sign_in 上找不到方法 init 的实现)

使用 google_sign_in Flutter 刷新令牌获取新令牌

Flutter Firebase Auth / Google_sign_in 无法使用 statuscode=CANCELED 登录

Flutter web google_sign_in:如何检索refreshToken

如何在 Flutter 的 google_sign_in 中获取 JWT 格式的访问令牌?

Flutter google_sign_in 错误:无法合并 dex