2016-05-19 12 views
2

私は自分のページにyoutube購読ボタン(iframe)を持っています。ユーザーがサイトにアクセスしているかどうかを知る方法はありますか? それが可能でない場合は、サイトを閲覧しているユーザーIDの種類を知る方法がありますか?ユーザーがyoutubeチャンネルを購読しているかどうかを調べるには

私は、ユーザーが購読しているとき、ボタン要素の属性

data-is-subscribed="true" 

ありますが、それはユーチューブドメインからなので、私がいないアクセス元をアイフレーム(少なくとも私はどのように出ていなかった)ことが判明しましたプログラマチックに。

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

で私の例を確認することができ、それは私が避けたいのですが何か。 – 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。ユーザーのサブスクリプションを取得する2つの方法があります

+0

これは呼び出されるだけですユーザーが購読ボタンを押したとき。私は彼がページに入ったときにユーザーが購読されているかどうかを知りたいです。 – ataurenis

1

  • は、現在ログインしているユーザーのサブスクリプションのフィードを要求するには、以下のURLにGETリクエストを送信します。注:このリクエストでは、ユーザーがリソースへのアクセスを許可したことをYouTubeが確認できるようにする認証トークンを提供する必要があります。

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

*以下のURLにGETリクエストを送信し、別のユーザーのサブスクリプションのフィードを要求します。この要求には、ユーザーの承認は必要ありません。上記のURLで

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

、ユーザーのYouTubeユーザーIDとテキストuserIdを交換する必要があります。下位互換性を保つため、APIではユーザーのYouTubeユーザー名を指定することもサポートしています。

これから、リストまたはヌル応答が得られます。これは、ユーザーにサブスクライブされていないチャネルがあることを意味します。そのリストを使用して、購読されているかどうかをフィルタリングできます。

0

私はYouTubeのサブスクライバコードと一緒にクッキーを使用しています。この投稿からクッキーのコードを使用して

Create, read, and erase cookies with jQuery

は、私は、YouTubeがサブスクライブイベントを返すときcreateCookieを追加し、eraseCookieとき番目approproateリダイレクトが続くunsubscriberイベント、。このコードは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の準備ができて関数内で、私は私のページのリダイレクトを処理するためにJQMを使用しています

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

readCookie機能を追加します。

達成した目標は、ページが最初に読み込まれたときに、登録されているクッキーが読み込まれ、存在する場合、ユーザーが購読していることを知り、メインページにリダイレクトするときです。

クッキーが存在しない場合、youtube subscriberボタンを表示しているサブスクライバページにリダイレクトされます。

したがって、ユーザーは購読ボタンを1回押す必要があります。 YouTube APIを使用するには、ユーザーによる追加の認証が必要で、クォータの制限があります。私はこれらの制限の対象ではないより単純なソリューションを望んでいたので、クッキーは上記のように使用されています。

あなたは問題がこのアプローチは、ユーザーユーチューブデータアクセスのための私のページを承認するようユーザーに求めますということですhttp://recipes.quickminutemeals.com

関連する問題