Apps Script が Youtube の API でオフライン許可を求め続ける
Google Apps Script では、YouTube Reporting API へのアクセスが禁止されています
これらは非常によく似た質問ですが、私は所有者としてログインしています。スクリプトは所有者のドライブにあります。
私の問題
GAS (Google Apps Script) を使用して、コンテンツ所有者から YouTube アナリティクス レポートにアクセスしようとしています。ブランド アカウント (ビデオ コンテンツなどのデータを保持する) とユーザー アカウントの 2 つのアカウントがあります。どちらも同じ資格情報 (email と pwd) を使用します。ユーザーとして承認すると、403(禁止) が返されます。ブランドとして承認する際、何度もオフライン アクセスを承認するように求められ、要求を行うことができません。
私が試したこと...
- OAUTH Playground トークンを使用して Node から実行すると、機能します。しかし、私はGASに固執する必要があります。
- google-script-oauth2 の使用: 資格情報をハードコードする (Node ソリューションと同様) が、更新トークンを設定できませんでした。401 (無効な資格情報) を受け取りました - ベアラー トークンの有効期限が切れていると思います
- YouTube と YouTube 分析 API の認証情報の設定と有効化
- 古い認証情報を破棄し、新しいプロジェクトを GAS にアタッチする
- プライバシー設定で認証を削除し、再認証する
- 安全でないスクリプトを使用するオプションを切り替えて、手順 3 を繰り返す
- ids パラメータの contentOwner と channel パラメータの切り替え
- 注: 2 つの OAUTH2 資格情報アプリ スクリプトがあり、Web クライアントは両方とも Web アプリケーションとして設定されています。
ガスコード
function test(){
YouTubeAnalytics.Reports.query("contentOwner==id", "2017-03-01", "2017-03-31", "likes");
}
最終的な考え
ブランドとユーザーの間には断絶があり、ブランドには OAUTH 2 トークンへの同じアクセス権が与えられていないと思います。したがって、リフレッシュ トークンは生成されません。そのため、リクエストは私が承認されたチャネル所有者であることを確認しますが、OAUTH フローを終了できません。
これが本当なら、なぜですか、どうすれば修正できますか? そうでない場合、エラーの原因は何だと思いますか?
スクリプトがブランド アカウントではなくユーザー アカウントにあることに気付きました。それは検証に影響しますか?
また、実際のチャネルでは、ユーザーはプライマリ所有者としてリストされます。