【问题标题】:How to retrieve last subscribers with sorting such as in youtube?如何通过 youtube 等排序检索最后一个订阅者?
【发布时间】:2019-05-05 12:45:37
【问题描述】:

我用简单的方法,比如我们

buildApiRequest('GET','/youtube/v3/channels',
{
  'mySubscribers': true,
  'maxResults': MaxResult,
  'part': 'snippet'
}

它有效,但结果我看不到如何对它们进行排序。 我需要最后一个 MaxResult 订阅者,我想按我频道上的加入日期对它们进行排序。

【问题讨论】:

  • 请描述您在当前解决方案中遇到的任何问题。您可能想用谷歌搜索如何以您选择的语言对列表进行排序。 Google 不会为您整理回复。请添加您的分类代码,如果可以,我们会为您提供帮助。
  • 并非 Youtube api 中的所有方法都支持排序。您必须在您的机器上下载它在本地对其进行排序的数据。
  • 在 API 中我找不到可以检索订阅者订阅我的频道的日期和时间的查询。你能告诉我如何在没有一般排序参数的情况下按订阅日期排序,订阅数据?附言你在“下载数据”下是什么意思?
  • 是什么让您认为这些数据是可用的?据我所知,订阅者不会返回订阅频道或订阅日期的人。我相信这只是订阅的频道列表。

标签: javascript sorting google-api youtube-data-api google-api-js-client


【解决方案1】:

将 myRecentSubscribers 设置为 true 的 subscriptions.list 和subscriberSnippet 返回您频道的重新发送订阅者列表。它不会返回所有这些。

如果您查看回复,您会发现没有日期。您将无法看到有人订阅的时间。

"subscriberSnippet": {
    "title": string,
    "description": string,
    "channelId": string,
    "thumbnails": {
      (key): {
        "url": string,0
        "width": unsigned integer,
        "height": unsigned integer
      }
    }

order 参数应该允许您按标题对它们进行排序,但您不能更改它用于排序的参数。

buildApiRequest('GET',
            '/youtube/v3/subscriptions',
            {'part': 'subscriberSnippet',
             'myRecentSubscribers': 'true',
              'order', 'alphabetical'});

回应

{
 "kind": "youtube#subscriptionListResponse",
 "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/wLsZnuAVb0T9-bdRdCnreaWBHNM\"",
 "nextPageToken": "CAUQAA",
 "pageInfo": {
  "totalResults": 7,
  "resultsPerPage": 5
 },
 "items": [
  {

  "kind": "youtube#subscription",
   "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/3_huGriwUWV4fbbzcclmEoNYJ3w\"",
   "id": "moP_YQe1scKJgrI0udrz3B2tJTmRwvz4ev3R2_L4JmI",
   "subscriberSnippet": {
    "title": "Kortney W",
    "description": "",
    "channelId": "UC33FFHTxOZ6NRZAp9afsRBw",
    "thumbnails": {
     "default": {
      "url": "https://yt3.ggpht.com/-T6Sn1ur07bk/AAAAAAAAAAI/AAAAAAAAAAA/BSSSRckoD4k/s88-c-k-no-mo-rj-c0xffffff/photo.jpg"
     },
     "medium": {
      "url": "https://yt3.ggpht.com/-T6Sn1ur07bk/AAAAAAAAAAI/AAAAAAAAAAA/BSSSRckoD4k/s240-c-k-no-mo-rj-c0xffffff/photo.jpg"
     },
     "high": {
      "url": "https://yt3.ggpht.com/-T6Sn1ur07bk/AAAAAAAAAAI/AAAAAAAAAAA/BSSSRckoD4k/s800-c-k-no-mo-rj-c0xffffff/photo.jpg"
     }
    }
   }
  },
  {


   "kind": "youtube#subscription",
   "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/UVJds9Q4d24quS-sEG8Qw_3MBzU\"",
   "id": "gI5QI3teCs8unbR7__8oVg7KlRfOtWQYR70kXNkS4PY",
   "subscriberSnippet": {
    "title": "TheCorty",
    "description": "",
    "channelId": "UC-0O3PZ0VPNySP2bNFAPDIA",
    "thumbnails": {
     "default": {
      "url": "https://yt3.ggpht.com/-8C6KXmEqDho/AAAAAAAAAAI/AAAAAAAAAAA/1roVNa2yF0o/s88-c-k-no-mo-rj-c0xffffff/photo.jpg"
     },
     "medium": {
      "url": "https://yt3.ggpht.com/-8C6KXmEqDho/AAAAAAAAAAI/AAAAAAAAAAA/1roVNa2yF0o/s240-c-k-no-mo-rj-c0xffffff/photo.jpg"
     },
     "high": {
      "url": "https://yt3.ggpht.com/-8C6KXmEqDho/AAAAAAAAAAI/AAAAAAAAAAA/1roVNa2yF0o/s800-c-k-no-mo-rj-c0xffffff/photo.jpg"
     }
    }
   }
  }
 ]
}
  1. 只有在您拥有频道的情况下才能使用此功能
  2. 它不会只返回最近的所有订阅者。
  3. 回复中没有日期,您无法按日期排序。
  4. 您可以测试此here,只需确保您通过正确的频道进行身份验证

【讨论】:

  • 我使用 sn-p 作为部分,其中的信息让我感到困惑。因为它会在标题和描述中检索我频道的信息。非常感谢。非常有帮助。附:如果 myRecentSubscribers -> true
  • Google 文档通常令人困惑。需要一段时间才能学会阅读。
  • 我无法理解必须如何使用 nextPageToken。我试图将它添加为参数,但 API 总是返回给我与第一页相同的结果。在 PHP 中,我必须在哪里使用该令牌来生成下一个 maxresult 信息? $client->setAccessToken($_SESSION['access_token']); $youtube = new Google_Service_YouTube($client); $channel = $youtube->subscriptions->listSubscriptions('subscriberSnippet', array('myRecentSubscribers' => true, 'maxResults' => 5, 'pageToken' => 'CC0QAQ'));在这种情况下我得到了新的pageToken,但信息没有更新。
  • 例如,我得到了 totalResults=84,resultsPerPage=5,使用 nextpagetoken 作为第三页,但信息是从第一页给出的。
  • 确保您实际运行的是新请求而不是原始请求。
猜你喜欢
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 2014-02-06
  • 2018-05-31
  • 1970-01-01
  • 2017-12-30
相关资源
最近更新 更多