如何使用YouTube API v3(Java)删除订阅?

时间:2016-06-06 13:01:42

标签: java youtube youtube-api youtube-data-api

所以我试图创建一个可以自动删除我订阅的所有频道的程序,但是我遇到了一个我无法解决的错误..

我有这段代码(在完成正确的身份验证后):

Subscriptions subs = youtube.subscriptions();
    com.google.api.services.youtube.YouTube.Subscriptions.List subscribers =subs.list("id").setMySubscribers(true);
    SubscriptionListResponse resp = subscribers.execute();

    for(Subscription s: resp.getItems()){
        System.out.println(s.getId());
        com.google.api.services.youtube.YouTube.Subscriptions.Delete d = subs.delete(s.getId());
        d.execute();

    }

然而,运行此操作会给我这个错误:

Error pic

尝试从YouTube教程添加订阅的代码,并且工作正常..

编辑:错误来自d.execute();

EDIT2:同样使用https://developers.google.com/youtube/v3/docs/subscriptions/delete(页面底部)的示例删除订阅会产生同样的错误

1 个答案:

答案 0 :(得分:0)

我认为问题在于您使用的是setMySubscribers(true),它会为您提供订阅的订阅列表,而不是您的帐户订阅的列表。 (并且您无法删除其他人对您的频道所做的订阅。)而是使用setMine(true)来获取您帐户的订阅。

Subscriptions subs = youtube.subscriptions();
com.google.api.services.youtube.YouTube.Subscriptions.List subscribers =
    subs.list("id").setMine(true); // <- use setMine(), not setMySubscribers()
SubscriptionListResponse resp = subscribers.execute();
...