Ресурс member представляет спонсора канала YouTube. Спонсоры регулярно поддерживают авторов материально и получают за это эксклюзивные бонусы. Например, спонсоры могут общаться в чате, если автор включил режим "Только для спонсоров".
Действуют следующие ограничения доступа:
- Доступ к конечным точкам
membersиmembershipsLevelsпредоставляется только авторам YouTube, у которых есть менеджер по работе с партнерами YouTube. - Доступ предоставляется на уровне канала. Поскольку белый список составляется на уровне канала, область действия OAuth
youtube.channel-memberships.creatorне проходит стандартную процедуру проверки Google Cloud OAuth.
Методы
API поддерживает следующие методы для ресурсов member:
- list
- Показывает список спонсоров канала. Запрос к API должен быть авторизован владельцем канала.
Представление ресурса
Ниже показана структура JSON для ресурса member.
{
"kind": "youtube#member",
"etag": etag,
"snippet": {
"creatorChannelId": string,
"memberDetails": {
"channelId": string,
"channelUrl": string,
"displayName": string,
"profileImageUrl": string
},
"membershipsDetails": {
"highestAccessibleLevel": string,
"highestAccessibleLevelDisplayName": string,
"accessibleLevels": [
string
],
"membershipsDuration": {
"memberSince": datetime,
"memberTotalDurationMonths": integer,
},
"membershipsDurationAtLevel": [
{
"level": string,
"memberSince": datetime,
"memberTotalDurationMonths": integer,
}
]
}
}
}Свойства
В таблице ниже приведены свойства, которые используются в этом ресурсе.
| Свойства | |
|---|---|
kind |
stringОпределяет тип ресурса API. Значение будет youtube#member. |
etag |
etagТег ETag этого ресурса. |
snippet |
objectОбъект snippet содержит сведения об участнике. |
snippet.creatorChannelId |
stringИдентификатор канала YouTube, на котором предлагается спонсорство. |
snippet.memberDetails |
objectЭтот объект содержит данные профиля канала YouTube, который оплачивает спонсорство. Обратите внимание, что у некоторых спонсоров могут быть недоступны данные профиля. Например, это происходит, когда пользователь удаляет свой канал, но продолжает платить за спонсорство. Обратите внимание, что у этих пользователей по-прежнему будет доступ к преимуществам подписки. Ответы API включают ресурсы для этих участников, чтобы обеспечить точный подсчет, даже если сведения профиля в объекте memberDetails не заданы. membershipsDetails для таких спонсоров сохраняются. |
snippet.memberDetails.channelId |
stringИдентификатор канала YouTube, входящего в сеть. Если он задан, идентификатор канала также может рассматриваться как уникальный идентификатор участника. Если он не задан, то участника нельзя идентифицировать, но ресурс по-прежнему передает сведения о спонсорстве, например уровни, к которым у участника есть доступ, и продолжительность спонсорства. |
snippet.memberDetails.channelUrl |
stringURL канала. |
snippet.memberDetails.displayName |
stringОтображаемое название канала. |
snippet.memberDetails.profileImageUrl |
stringURL аватара канала. |
snippet.membershipsDetails |
objectЭтот объект содержит сведения о спонсорстве на канале. |
snippet.membershipsDetails.highestAccessibleLevel |
stringИдентификатор самого высокого уровня спонсорства, доступного каналу-спонсору. Значение соответствует значению свойства id в ресурсе membershipsLevel. |
snippet.membershipsDetails.highestAccessibleLevelDisplayName |
stringНазвание самого высокого уровня спонсорства, доступного каналу. Значение соответствует значению свойства displayName в ресурсе membershipsLevel. |
snippet.membershipsDetails.accessibleLevels[] |
list (of strings)Список идентификаторов всех уровней спонсорства, к которым у пользователя есть доступ. В списке будут указаны текущий уровень и все уровни ниже него. |
snippet.membershipsDuration |
objectЭтот объект содержит информацию об общей продолжительности спонсорства текущего пользователя без учета уровней цен. Свойство snippet.membershipsDetails.membershipsDurationAtLevel[]
содержит список объектов с информацией о периодах, в течение которых у пользователя был доступ к определенному уровню подписки.
Рассмотрим пример. Пользователь оформляет спонсорство уровня 1 в январе и сохраняет его до марта. В апреле и мае у пользователя нет спонсорства. В июне зритель возобновляет спонсорство на уровне 1. В августе он переходит на второй уровень. Таким образом, если вызов API был выполнен в октябре, ресурс member будет содержать следующие данные:
"membershipsDetails": {
"membershipsDuration": {
"memberSince": "2020-06-01T12:00:00",
"memberTotalDurationMonths": 7,
},
"membershipsDurationAtLevel": [
{
"level": "level_1_ID",
"memberSince": "2020-06-01T12:00:00",
"memberTotalDurationMonths": 7
},
{
"level": "level_2_ID",
"memberSince": "2020-08-01T12:00:00",
"memberTotalDurationMonths": 2
},
]
} |
snippet.membershipsDuration.memberSince |
datetimeДата и время начала текущего периода членства. Иными словами, с этой даты и времени у пользователя непрерывно оформлено спонсорство. Обратите внимание, что в разные периоды спонсорства у пользователя могли быть разные уровни спонсорства. |
snippet.membershipsDuration.memberTotalDurationMonths |
integerКоличество месяцев, в течение которых пользователь является участником программы, округленное в меньшую сторону до ближайшего целого числа. Значение отражает количество полных месяцев, в течение которых пользователь был спонсором, но не означает, что он был спонсором непрерывно в течение этого количества месяцев. |
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel[] |
list (of objects)Список объектов, каждый из которых содержит сведения о периоде спонсорства, в течение которого спонсор имел доступ к определенному уровню спонсорства. В списке есть по одному объекту для каждого уровня спонсорства, доступного пользователю. |
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.level |
stringИдентификатор уровня спонсорства. Значение соответствует значению свойства id в ресурсе membershipsLevel. |
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberSince |
datetimeДата и время, с которых у пользователя есть доступ к указанному уровню спонсорства. Иными словами, с этой даты и времени у пользователя был постоянный доступ к уровню. Обратите внимание, что в разные периоды спонсорства вы могли быть на разных уровнях. |
snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberTotalDurationMonths |
integerКоличество месяцев, округленное до ближайшего меньшего целого числа, в течение которых у пользователя был доступ к указанному уровню. Значение отражает количество полных месяцев, в течение которых у спонсора был доступ к уровню, но не означает, что спонсорство было непрерывным. |