Pythonを使用してYouTubeアナリティクスAPIに接続しようとしています。 [資格情報]タブでGoogleのデベロッパーコンソールにアクセスしたら、Create credentials
のプルダウンメニューをクリックし、Help me choose
を選択します。私は使用したいAPI(YouTube Analytics API
)をクリックします。そこから(Other non-UI (e.g. cron job, daemon)
)、アクセスするデータ(Application Data
)、次にGoogle App Engine(no
)を使用していますか。ボタンをクリックすると、必要な資格情報が表示され、You alread have credentials that are suitable for this purpose
と伝えます。Google API認証(サービスアカウント)エラー:HttpAccessTokenRefreshError:unauthorized_client:リクエストの不正なクライアントまたはスコープ
Google Search Console APIに接続して自分の所有する複数のサイトのデータにアクセスするために使用するService account
があります。複数のサイトがあるため、私は電子メールアドレスに基づいて委任された資格情報を使用します。私はYouTubeアナリティクスのAPIと同様のアプローチを使用しようとしているが、私はこのエラーを取得しています、今
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
scopes = ['https://www.googleapis.com/auth/webmasters.readonly']
credentials = ServiceAccountCredentials.from_json_keyfile_name('keyfile.json', scopes=scopes)
delegated_credentials = credentials.create_delegated('<my-email>')
http_auth = delegated_credentials.authorize(Http())
webmasters_service = build('webmasters', 'v3', http=http_auth)
:HttpAccessTokenRefreshError: unauthorized_client: Unauthorized client or scope in request.
をこれは私が検索コンソールのAPIへの認証に使用するコードです。
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
START_DATE = "2016-09-01"
END_DATE = "2016-09-30"
scopes = ['https://www.googleapis.com/auth/yt-analytics.readonly']
credentials = ServiceAccountCredentials.from_json_keyfile_name('keyfile.json', scopes=scopes)
delegated_credentials = credentials.create_delegated('<my-email>')
http_auth = delegated_credentials.authorize(Http())
youtube_service = build('youtubeAnalytics', 'v1', http=http_auth)
analytics_query_response = youtube_service.reports().query(
ids="channel==<my-youtube-channel-id>",
metrics="views",
start_date=START_DATE,
end_date=END_DATE
).execute()
keyfile.json
は、(サービスアカウントの資格情報を含む)と同じファイルである私は検索コンソールのAPIに接続するために使用します。ここに私のコードです。私も新しいサービスアカウントを作成し、それらの資格情報を使用しようとしましたが、私は運がありませんでした。そして、はい、デベロッパーコンソールですべてのYouTube APIを有効にしました。
なぜHttpAccessTokenRefreshError: unauthorized_client: ...
エラーが発生しているのですか?
編集:以前は、サービスアカウントではなくOAuth IDを使用しました。スクリプトを実行したときにブラウザタブが表示され、アカウントを選択する必要がありました。私は2つのオプションを提示されました:1つは私の電子メールでした、もう1つは私がマネージャーとして追加されたYouTubeアカウントでした。メールアドレスを使用して(YouTubeアカウントではなく)資格情報を生成しているため、このエラーが発生していると思いますか?
edit2:YouTubeアカウントは、Google Appsドメインの傘下にはないようです。だから、私は自分のメールアドレスを使ってそのYouTubeアカウントのマネージャーになっていても、自分のメールアドレスの使用を許可できないのかもしれません。
あなたのIPアドレス – MatejMecka
@UnknownDeveloperからコンソールからのアクセスを有効にしたことはありますかどうか正確ではありませんが、Google Search Console APIにも同じエラーが表示されますか? YouTube Analytics APIだけであるSearch Console APIに問題はありません。 FYI私はOAuthのアプローチを使用したときに何が起こったのかを説明するいくつかの情報を私の質問に追加しました。 – Abundnce10