我正在开发一个应用程序,用户可以在我的应用程序中订阅各种渠道。因此,为了保存api请求,我想知道用户是否已经订阅了youtube频道。在研究的过程中,我找到了一些代码并根据我的要求进行了修改:
static public boolean checkIfUserAlreadySubscribed(String channelyoutubeid) {
SubscriptionListResponse response = null;
try {
HashMap<String, String> parameters = new HashMap<>();
parameters.put("part", "snippet,contentDetails");
parameters.put("forChannelId", channelyoutubeid);
parameters.put("mine", "true");
YouTube.Subscriptions.List subscriptionsListForChannelIdRequest = MainActivity
.mService.subscriptions().list(parameters.get("part").toString());
if (parameters.containsKey("forChannelId") && parameters.get("forChannelId") != "") {
subscriptionsListForChannelIdRequest.setForChannelId(parameters
.get("forChannelId").toString());
}
if (parameters.containsKey("mine") && parameters.get("mine") != "") {
boolean mine = (parameters.get("mine") == "true") ? true : false;
subscriptionsListForChannelIdRequest.setMine(mine);
}
response = subscriptionsListForChannelIdRequest.execute();
} catch (IOException e) {
e.printStackTrace();
}
if (response != null) {
//What should i do here
} else {
//whta should i pass
}
}
在执行我的代码时,无论用户是否已订阅,响应值始终不为空。任何人都建议我做什么?
答案 0 :(得分:0)
要检索用户已订阅的频道,您可以尝试使用mine
参数设置为true
的{{3}}。成功的请求将返回包含活动资源的响应正文:
"contentDetails": {
"subscription": {
"resourceId": {
"kind": string,
"channelId": string,
}
}
}
contentDetails.subscription.resourceId.channelId
是YouTube用于唯一标识用户订阅的频道的ID。