2013-12-01 1 views
1

Загрузка видео на учетную запись YouTube без отказа канала.Загрузка видео YouTube через API данных V3. У пользователя есть канал?

Я использую API данных YouTube (версия 3) и клиентскую библиотеку API Google для PHP для загрузки пользовательских видео на канал пользователя. Пользователь дал разрешение (через OAuth2) управлять своей учетной записью YouTube, но возможно, что пользователь никогда не создавал канал YouTube.

Вопрос: Как проверить, имеет ли пользователь действительный канал перед попыткой начать загрузку? В идеале, я хочу проверить сразу после аутентификации.

ответ

2

После действительный маркер OAuth получен, вы можете сделать следующий вызов (это предполагает, что «$ YouTube» представляет свой объект Google_YoutubeService):

$channelsResponse = $youtube->channels->listChannels('contentDetails', array(
     'mine' => 'true', 
    )); 

Если $channelsResponse['items'] пуст, то авторизованный пользователь не имеет каналы.

+0

Это была одна из первых вещей, которые я пробовал: (... К сожалению, это выглядит так: 'listChannels ('contentDetails', ...)' возвращает непустые элементы ', даже если у пользователя нет канал загрузки. – mike

+0

Вы правы, конечно ... Я забыл, что могут быть возвращены другие типы каналов. Проверьте параметр 'googlePlusUserId' в contentDetails - существует ли он для канала без загрузки? – jlmcdonald

0

http get calls for 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key= {} & access_token = {}' будет возвращать элементы, даже если у пользователя нет каналов.

пример ответ:

{u'etag': u'"IHLB7Mi__JPvvG2zLQWweA"', 
u'items': [{u'contentDetails': {u'googlePlusUserId': u'107123', 
    u'relatedPlaylists': {u'favorites': u'FLMZmB78WMw', 
    u'likes': u'LLMZmB78we', 
    u'uploads': u'UUMZmB78Wwef', 
    u'watchHistory': u'HLMZmB78Wwe', 
    u'watchLater': u'WLMZmB78WMDgwef'}}, 
    u'etag': u'"IHLB7Mi__JPvvG2zLQWAg8l36"', 
    u'id': u'UCMZmB78WMD', 
    u'kind': u'youtube#channel'}], 
u'kind': u'youtube#channelListResponse', 
u'pageInfo': {u'resultsPerPage': 1, u'totalResults': 1}} 

в том случае, «googlePlusUserId» в ответ, то пользователь имеет канал.

Смежные вопросы