2016-04-07 4 views
1

私はYoutube Reports APIをクエリして動画にアナリティクスを返すスタンドアロンのGoogle Appsスクリプトを作成しています。Apps ScriptはYoutubeのAPIでオフライン権限を要求し続けています

私たちがさまざまなYoutubeチャンネルを管理するために使用するGoogle+ページの1つでApps Scriptで認証すると、Apps Scriptはオフラインアクセス用のスクリプトを承認するよう依頼し続けます。

個人用のGmailアカウントで新しいスクリプトプロジェクトで同じことを試してみると、すべてうまくいきます。しかし、このやり方には問題があります。自分のアカウントでYoutube.Channels.listに問い合わせると、私自身の個人的なチャンネルだけを所有している他のチャンネルのリストは得られません。

また、Youtubeのドキュメントのtry it機能でこれを試してみましたが、これはGoogle+ページでうまくいきます。

  1. YouTubeのデータAPI
  2. YouTubeアナリティクスのAPI(念のため)
  3. たGoogle+ API
  4. :このスクリプトの

    は、私は、次の高度なサービスは、Googleデベロッパーコンソールで有効になって&をオンにしています

また、チャンネルIDをチャンネル== xxxに設定して、可変チャンネルのMyChannelsとチャンネルを削除してみましたが、まだ同じ悲しみ

解決方法はありますか?

は、ここに私のコードの例です:

function youTubeAnalytics() { 
    var myChannels = YouTube.Channels.list('id', {mine: true}); 
    var channel = myChannels.items[0]; 
    var channelId = channel.id; 
    var analyticsResponse = YouTubeAnalytics.Reports.query(
    'channel==' + channelId, 
    'estimatedMinutesWatched,views,likes,subscribersGained', 
    {dimensions: 'video','max-results': '200',sort: '-views'}); 
    } 

答えて

1

それは言う:

Appsスクリプトは、チャンネル所有者によって運営されていない場合は、要求を許可するユーザーがこの問題の表面チャネル

の所有者でなければなりませんすなわちチャネルマネージャである。言い換えれば、YouTubeチャンネルのオーナーとしても使用されているGoogleアカウントを使用してApps Scriptが作成されている場合は正常です。それ以外の場合は認証の問題が発生します。

私が文書化した解決策は、これに関する詳細を示すUsing Google Apps Script to proxy YouTube Analytics Channel Reportsです。

YouTubeAnalyticsクエリにはstart-dateend-dateがありません。もう1つの要因として、Report: Query documentationに必須のパラメータが示されています。この問題を解決するには、あなたの関数は、以下のように書き換えることができる:

function youTubeAnalytics() { 
    var myChannels = YouTube.Channels.list('id', {mine: true}); 
    var channel = myChannels.items[0]; 
    var channelId = channel.id; 
    var analyticsResponse = YouTubeAnalytics.Reports.query(
    'channel==' + channelId, 
    '2010-01-01', 
    Utilities.formatDate(new Date(), 'GMT', 'yyyy-MM-dd'), 
    'estimatedMinutesWatched,views,likes,subscribersGained', 
    {dimensions: 'video','max-results': '200',sort: '-views'}); 
    Logger.log(analyticsResponse); 
} 
+0

@mhawkseyありがとうございました。コードは省略されていて、私が所有するチャンネルです。私は今夜​​それをもっと調べています。 – chipoglesby

0

あなたがOAuthのでGoogle AppScriptを認証する必要があります。 ITは、オンラインアクセスとオフラインアクセスの両方を提供します。

Google APIは、認証と承認にOAuth 2.0プロトコルを使用します。 Googleでは、Webサーバー、インストール済みアプリケーション、クライアントサイドアプリケーションなどの一般的なOAuth 2.0シナリオをサポートしています。

AppsスクリプトでOAuthを使用する方法については、guidelineです。 Channel Reports documentation

+0

あなた@KENdiをありがとう、私は、以前のgithubのレポを見つけましたが、私はあなたがGoogleのAPIを使用している場合のOAuth2で認証する必要があることを知りませんでした。私は今夜​​これを見て、報告する。 – chipoglesby