2012-05-30 2 views
1

Я пытаюсь подписаться на канал youtube через api. Поскольку я не очень хорошо разбираюсь в xml, вам нужна ваша помощь. Оригинальная ссылка на документы: https://developers.google.com/youtube/2.0/developers_guide_protocol_subscriptions ИлиYoutube подписка api [Ошибка]

Короче вот что написано в YOUTUBE документы:

Добавление подписки

Чтобы создать подписку, вы посылаете запрос POST, который идентифицирует имя пользователя YouTube для аутентифицированного пользователя, который создает подписку. Тело запроса - это запись XML, которая содержит следующие элементы:

Тег <category> определяет тип подписки, которую создает пользователь. Задайте значение атрибута терминов тега для пользователя, чтобы указать, что пользователь подписывается на действия другого пользователя (загружая видео, рейтинги, маркировку видео как избранные и т. Д.) Или устанавливая значение атрибута термина для канала, чтобы указать, что пользователь подписывается на канал.

В теге <yt:username> указан канал или пользователь, на деятельность которого подписаны.

Подписавшись на канал

POST /feeds/api/users/default/subscriptions HTTP/1.1 
Host: gdata.youtube.com 
Content-Type: application/atom+xml 
Content-Length: CONTENT_LENGTH 
Authorization: Bearer ACCESS_TOKEN 
GData-Version: 2 
X-GData-Key: key=DEVELOPER_KEY 

<?xml version="1.0" encoding="UTF-8"?> 
<entry xmlns="http://www.w3.org/2005/Atom" 
    xmlns:yt="http://gdata.youtube.com/schemas/2007"> 
    <category scheme="http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat" 
     term="channel"/> 
    <yt:username>GoogleDevelopers</yt:username> 
</entry> 

Мой вопрос

Как я закодировать запрос на почту? Я пробовал с помощью простого метода html form method post. Но это не сработало. Я получил следующую ошибку.

Content-Type application/x-www-form-urlencoded is not a valid input type. 
+0

Кому-нибудь может помочь? –

ответ

2

Так как вы используете HTML Form Post, это установка типа контента application/x-www-form-urlencoded но необходимый тип контента application/atom+xml

Чтобы сделать то, что вы хотите, вы должны будете использовать JavaScript, чтобы опубликовать (Я рекомендую jQuery для простоты).

var data = //XML Data for post 

$.ajax({ 
    url://Youtube Subscribe Post URL, 
    type:"POST", 
    data:data, 
    Authorization: //ACCESS_TOKEN, 
    GData-Version: '2', 
    X-GData-Key: 'key=' //DEVELOPER_KEY, 
    contentType:"application/atom+xml", 
    dataType:"xml", 
    success: function(){ 
    alert('subscribd'); 
    } 
}); 

Я не тестировал его, но вы должны получить эту идею. Убедитесь, что вы заменили комментарии фактическими значениями для вашего приложения.

Обратите внимание, что это может привести к проблемам междоменного доступа.

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

  • Нет связанных вопросов^_^