Android 如何查看谷歌账户持有人是否有Youtube频道(链接)?

Android 如何查看谷歌账户持有人是否有Youtube频道(链接)?,android,youtube-api,google-account,Android,Youtube Api,Google Account,根据谷歌文档,任何谷歌账户持有人也是Youtube账户持有人,但他可能没有“链接”,即拥有Youtube频道。应用程序只能将视频上载到链接的帐户 如果您使用AccountManager获取Google帐户持有人的列表,此时,您无法判断他们中是否有人被链接。我需要一种方法来确定它是否链接 似乎没有对Youtube api的直接专门构建调用来查看帐户是否有频道(链接) 也许可以重新设计以下代码片段来执行此操作: List<String> scopes = new ArrayList&

根据谷歌文档,任何谷歌账户持有人也是Youtube账户持有人,但他可能没有“链接”,即拥有Youtube频道。应用程序只能将视频上载到链接的帐户

如果您使用AccountManager获取Google帐户持有人的列表,此时,您无法判断他们中是否有人被链接。我需要一种方法来确定它是否链接

似乎没有对Youtube api的直接专门构建调用来查看帐户是否有频道(链接)

也许可以重新设计以下代码片段来执行此操作:

  List<String> scopes = new ArrayList<>();
  scopes.add(       SendToGoogleUtils."https://www.googleapis.com/auth/youtube.upload" );
  if( ( googleAccountCredential = SendToGoogleUtils.getGoogleAccountCredential(
    mContext, accountYoutube.name, scopes ) ) == null) return;
  String gAToken = googleAccountCredential.getToken();

  youtube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY, googleAccountCredential)
    .setApplicationName(getString(R.string.tourmaker_app_name))
    .build();

  YouTube.Channels.List channelRequest = youtube.channels().list("contentDetails");
  channelRequest.setMine(true);
  channelRequest.setFields("items/contentDetails,nextPageToken,pageInfo");
  ChannelListResponse channelResult = channelRequest.execute();
List scopes=new ArrayList();
作用域。添加(sendtogleutils。“https://www.googleapis.com/auth/youtube.upload" );
如果((googleAccountCredential=SendToLogLeutils.getGoogleAccountCredential(
mContext,accountYoutube.name,scopes))==null)返回;
字符串gAToken=googleAccountCredential.getToken();
youtube=new youtube.Builder(HTTP_传输、JSON_工厂、googleAccountCredential)
.setApplicationName(getString(R.string.tourmaker\u app\u name))
.build();
YouTube.Channels.List channelRequest=YouTube.Channels().List(“contentDetails”);
channelRequest.setMine(true);
channelRequest.setFields(“items/contentDetails,nextPageToken,pageInfo”);
ChannelListResponse channelResult=channelRequest.execute();
如果已链接accountYoutube(请参见代码行4),则此代码运行正常,并继续执行稍后上载的代码

如果accountYoutube未链接,execute语句将抛出GoogleJsonResponseException:

com.google.api.client.googleapis.json.googlejson响应异常:403禁止 { “代码”:403, “错误”:[{ “域”:“全局”, “消息”:“权限不足”, “原因”:“权限不足” } ], “消息”:“权限不足” }

因此,这段代码会告诉您accountYoutube是否链接。这类代码是确定accountYoutube是否有频道(链接)的合理方法吗

我很怀疑,因为这个例外似乎是我无法依赖的副作用

我正在寻找一种最佳实践方法来确定accounYoutube是否链接。我会在适当的时候使用该代码向仅用户链接的帐户显示

有人知道可靠的方法吗?

关于404错误或权限不足。 基于此,当您尚未请求应用程序所需的作用域时,将返回错误403/InsufficientPermissions

虽然Google文档中对的描述是,为请求提供的OAuth 2.0令牌指定的范围不足以访问请求的数据

因此,请确保您请求了所需的所有作用域

关于确定YouTube频道是否链接到帐户的问题。 您可以使用具有返回布尔值的属性的频道,该布尔值将指示频道数据是否标识已链接到YouTube用户名或Google+帐户的用户。拥有其中一个链接的用户已经拥有公共YouTube身份,这是上传视频等多项操作的先决条件

有关更多信息,如果可以帮助您,您也可以检查此项。

有关错误404或权限不足的信息。 基于此,当您尚未请求应用程序所需的作用域时,将返回错误403/InsufficientPermissions

虽然Google文档中对的描述是,为请求提供的OAuth 2.0令牌指定的范围不足以访问请求的数据

因此,请确保您请求了所需的所有作用域

关于确定YouTube频道是否链接到帐户的问题。 您可以使用具有返回布尔值的属性的频道,该布尔值将指示频道数据是否标识已链接到YouTube用户名或Google+帐户的用户。拥有其中一个链接的用户已经拥有公共YouTube身份,这是上传视频等多项操作的先决条件

有关更多信息,如果可以帮助您,您也可以检查此项