2016-05-19 119 views
2

我在youtube上訂閱了我的網頁按鈕(iframe)。有什麼方法可以知道訪問該網站的用戶是否已訂閱? 如果這是不可能的,也許有一種方法可以知道某些正在查看該網站的用戶ID?如何找出用戶是否訂閱了YouTube頻道

我發現,當用戶訂閱有一個爲按鈕元素的屬性

data-is-subscribed="true" 

,但由於它從YouTube域的我無法訪問(至少我沒有找到如何)I幀的源編程。

Blocked a frame with origin https://<my host ip> from accessing a frame with 
origin https://<target host ip>. Protocols, domains, and ports must match. 

感謝

回答

0

爲「我的應用程序監聽按鈕,您可以用它來做到這一點順利..

Use the subscriptions#list method and pass mine = true and the channel ID you want to check in forChannelId. If the authenticated user is not subscribed to that channel, it will return an empty list 
+1

檢查我的例子的問題是,這種做法將要求用戶授權我的頁面的YouTube用戶的數據訪問,這件事情我想避免的。 – ataurenis

+0

請看看這個問題.. [這會幫助你](http://stackoverflow.com/questions/28189354/get-youtube-channel-subscribers-via-youtube-api) –

0

轉到https://developers.google.com/youtube/youtube_subscribe_button

配置您的按鈕,然後按複選框事件「。

然後,代碼樣本中,會有一個代碼塊,看起來像這樣:

function onYtEvent(payload) { 
    if (payload.eventType == 'subscribe') { 
    // Add code to handle subscribe event. 
    } else if (payload.eventType == 'unsubscribe') { 
     // Add code to handle unsubscribe event. 
    } 
    if (window.console) { // for debugging only 
     window.console.log('YT event: ', payload); 
    } 
} 

把你的代碼時的認購情況下,如果塊用戶subscibes。

+0

這隻會被調用當用戶按下(聯合國)訂閱按鈕。我想知道當用戶進入頁面時是否訂閱了用戶。 – ataurenis

1

有兩種方法來檢索用戶的訂閱:

  • 要請求當前登錄用戶的訂閱供稿,發送GET請求發送到以下網址。注意:對於此請求,您必須提供授權令牌,以便YouTube驗證用戶是否有權訪問資源。

https://gdata.youtube.com/feeds/api/users/default/subscriptions?v=2

*要請求其他用戶的訂閱的飼料,發送GET請求發送到以下網址。請注意,此請求不需要用戶授權。

https://gdata.youtube.com/feeds/api/users/userId/subscriptions?v=2

在上面的網址,您應該替換的文字userId與用戶的YouTube用戶ID。爲了向後兼容,API還支持指定用戶的YouTube用戶名。

由此您可以獲得列表或空回覆,表示用戶沒有訂閱頻道。您可以使用該列表過濾訂閱與否。

0

我正在使用cookie和Youtube用戶代碼一起使用。

使用此發佈cookie的代碼,Create, read, and erase cookies with jQuery

我想補充的createCookie YouTube何時返回訂閱事件,eraseCookie當退訂事件,其次是日approproate重定向。由於這段代碼不是jQuery,所以我把這段代碼放在jquery ready函數之外。

 function onYtEvent(payload) { 
      console.log(payload); 
      if (payload.eventType == 'subscribe') { 
       // Add code to handle subscribe event. 
       createCookie('subscribed','yes',30); 
       location.hash = '#mainpage'; 
      } else if (payload.eventType == 'unsubscribe') { 
       // Add code to handle unsubscribe event. 
       eraseCookie('subscribed'); 
       location.hash = '#subscribepage'; 
      } 
      if (window.console) { // for debugging only 
       window.console.log('YT event: ', payload); 
      } 
     } 

然後jQuery的ready函數裏面,我添加了readCookie功能

  if (readCookie('subscribed') === 'yes') { 
       location.hash = '#mainpage'; 
      } else { 
       location.hash = '#subscribepage'; 
      } 

我使用JQM來處理我的網頁重定向。

我完成的目標是當頁面第一次加載時將讀取訂閱的cookie,如果存在,我知道用戶已訂閱,並重定向到主頁面。

如果cookie不存在,將重定向到顯示youtube訂閱者按鈕的訂閱者頁面。

因此,用戶只需要按一次訂閱按鈕。 使用YouTube API需要用戶進行額外驗證,並受到配額限制。我想要一個更簡單的解決方案,而不受這些限制,因此如上所述使用cookie。

您可以在http://recipes.quickminutemeals.com