根据Google文档,任何Google帐户持有人也是YouTube帐户持有人,但他可能不会"链接",即拥有YouTube频道。应用程序只能将视频上传到链接帐户。
如果您使用帐户管理器获取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();
如果coundyoutube(请参阅代码第4行)链接,则该代码运行正常,然后进行以后的代码上传。
如果未链接AccountyOutube,则执行语句抛出GoogleJSonResponseException:
com.google.api.client.googleapis.json.googlejsonresponseexception:403禁止 { "代码":403, "错误":[{{ "域":"全球", "消息":"许可不足", "原因":"不足的事业" }], "邮件":"许可不足" }
因此,此代码告诉您是否链接了councelyoutube。这种代码是否是确定AccountyOutube是否具有频道(已链接)的合理方法?
我是可疑的,因为这个例外似乎是我可能无法依靠的副作用。
我正在寻找一种确定Accounyoutube是否链接的最佳实践方法。我将在适当的时间使用该代码向用户仅链接帐户提供。
有人知道一种可靠的方法吗?
对于错误404或不充分的授课。
基于此问题,错误403/当您没有要求申请所需的范围时,返回了不足。
虽然Google文档中insufficientPermissions
的描述是为请求提供的OAuth 2.0令牌指定范围不足以访问请求的数据。
因此,请确保您请求所需的所有范围。
对于确定YouTube频道是否链接到帐户的问题。
您可以使用具有属性status.isLinked
的通道,该通道将返回一个布尔值,该值将指示通道数据是否标识已经链接到YouTube用户名或Google 帐户的用户。具有这些链接之一的用户已经具有公共YouTube身份,这是多个动作的先决条件,例如上传视频。
有关更多信息,您还可以检查此信息,因此请问它是否可以帮助您。