Created
July 1, 2013 22:12
-
-
Save ikai/5905078 to your computer and use it in GitHub Desktop.
Very simple Python sample to generate a refresh token for the YouTube API. Note that this will will also create a file called generate_token.py-oauth that contains this information.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import httplib2 | |
import os | |
import sys | |
from apiclient.discovery import build | |
from oauth2client.file import Storage | |
from oauth2client.client import flow_from_clientsecrets | |
from oauth2client.tools import run | |
# CLIENT_SECRETS_FILE, name of a file containing the OAuth 2.0 information for | |
# this application, including client_id and client_secret. You can acquire an | |
# ID/secret pair from the API Access tab on the Google APIs Console | |
# http://code.google.com/apis/console#access | |
# For more information about using OAuth2 to access Google APIs, please visit: | |
# https://developers.google.com/accounts/docs/OAuth2 | |
# For more information about the client_secrets.json file format, please visit: | |
# https://developers.google.com/api-client-library/python/guide/aaa_client_secrets | |
# Please ensure that you have enabled the YouTube Data API for your project. | |
CLIENT_SECRETS_FILE = "client_secrets.json" | |
# Helpful message to display if the CLIENT_SECRETS_FILE is missing. | |
MISSING_CLIENT_SECRETS_MESSAGE = """ | |
WARNING: Please configure OAuth 2.0 | |
To make this sample run you will need to populate the client_secrets.json file | |
found at: | |
%s | |
with information from the APIs Console | |
https://code.google.com/apis/console#access | |
For more information about the client_secrets.json file format, please visit: | |
https://developers.google.com/api-client-library/python/guide/aaa_client_secrets | |
""" % os.path.abspath(os.path.join(os.path.dirname(__file__), | |
CLIENT_SECRETS_FILE)) | |
# A limited OAuth 2 access scope that allows for uploading files, but not other | |
# types of account access. | |
YOUTUBE_READONLY_SCOPE = "https://www.googleapis.com/auth/youtube.readonly" | |
YOUTUBE_API_SERVICE_NAME = "youtube" | |
YOUTUBE_API_VERSION = "v3" | |
flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, | |
message=MISSING_CLIENT_SECRETS_MESSAGE, | |
scope=YOUTUBE_READONLY_SCOPE) | |
storage = Storage("%s-oauth2.json" % sys.argv[0]) | |
credentials = storage.get() | |
if credentials is None or credentials.invalid: | |
credentials = run(flow, storage) | |
print "Access Token: %s" % credentials.access_token | |
print "Refresh Token: %s" % credentials.refresh_token |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
the token generated with this code is invalid and returning a invalid credential error.