2013-03-25 82 views
0

所以我非常沮喪,因爲我正在試圖將其發佈到YouTube API。 但是,當我使用Ajax時,我得到語法意外的t變量錯誤。通過JavaScript訂閱YouTube頻道

下面是代碼:

$.ajax({ 
url:"gdata.youtube.com/feeds/api/users/default/subscriptions", 
type:"POST", 
data:"<?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>", 
Authorization: token, 
GData-Version: '2', 
X-GData-Key:  'key=MYDEVKEY', 
contentType:"application/atom+xml", 
dataType:"xml", 
success: function(){ 
alert('subscribd'); 
} 
}); 

並與一些研究,我發現,代碼的第一行會導致錯誤。有沒有辦法將這些數據發佈到api。哦,文檔是在https://developers.google.com/youtube/2.0/developers_guide_protocol_subscriptions#Adding_a_subscription。請問我可以如何發佈這些數據?謝謝!

+0

這是JavaScript中的多行字符串嗎? – Mohsen 2013-03-25 20:09:30

+0

@Mohsen,刪除空格,仍然是同樣的錯誤! – InfiniDaZa 2013-03-25 20:12:10

+0

將整個XML文件寫入一行。 JS沒有多行字符串。 – Mohsen 2013-03-25 20:49:24

回答

0

我的建議是避免使用YouTUbe GData API v2來執行此操作。雖然確實有可能實現這個目標,但它依賴於在支持CORS的瀏覽器中運行的JavaScript,並排除除最新版本的Internet Explorer之外的所有JavaScript。

如果您確實想要使用GData API v2來執行此操作,您可能會發現使用JSON主體而不是XML主體進行POST更容易,並且在POST URL中包含alt=json。有一個使用JSON實體對v2 here進行POST請求的示例,以及其他示例。

但是,我真正推薦的做法是使用YouTube Data API v3,它具有用於添加訂閱的subscriptions.insert()方法。您可以使用一個很好的JavaScript client library,它將負責爲您處理OAuth 2,並以適用於各種瀏覽器的方式提供API請求。