我创建了一个使用Youtube api的python应用程序(因此示例是用python编写的,但这并不重要,概念应该是相同的)。我设法让它在我可以连接和调用api的地方工作。然而,当我连接到api时,我必须定义一个流来检查凭证存储文件是否存在。如果没有,那么我必须使用流手动登录。在登录文件(main.py-oauth2.json)后,用令牌创建。我希望能够下载凭据,而不必手动登录。我希望有一种方法可以对该令牌进行POST请求,就像我在这里看到的那样,但是我已经能够用Youtube api做到这一点。有人知道如何实现想要的功能吗?
main.py
flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE,
scope=YOUTUBE_UPLOAD_SCOPE,
message=MISSING_CLIENT_SECRETS_MESSAGE)
storage = Storage(OAUTH_CREDENTIALS)
credentials = storage.get()
if credentials is None or credentials.invalid:
# manual / UI login
credentials = run_flow(flow, storage, args)
尝试使用google服务号会在上传时引发401错误。
credentials = Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=YOUTUBE_UPLOAD_SCOPES)
if credentials is None or credentials.expired:
raise ValueError('Invalid credentials')
return build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
credentials=credentials)
...
status, response = insert_request.next_chunk()
# <HttpError 401 "Unauthorized">
证据这是可以做到的
oauth2client.service_account。ServiceAccountCredentials类仅用于OAuth 2.0服务帐户。这些服务器到服务器API调用不涉及最终用户,因此您可以直接创建此对象,而无需使用Flow对象。
youtube api Oauth流文档
https://developers . Google . com/identity/protocols/oauth 2 # service account
问题是,大多数YouTube数据都是私人用户数据。由于这是私人用户数据,因此您必须作为有权访问相关数据的用户进行身份验证,才能访问该数据。为此,我们使用Oauth2并登录到我们的帐户,获取访问令牌和返回的刷新令牌。
访问令牌可用于从 Youtube Api 请求数据,刷新令牌可用于在访问令牌过期时(一小时后)请求新的访问令牌
通常我会说你应该考虑使用服务帐户。服务帐户是可以预先配置为访问用户数据的虚拟用户。不幸的是,Youtube api不支持服务帐户。
你应该做的,我过去做过很多次的是对你的代码进行一次身份验证。获取刷新令牌并保存它。将来,每当你想运行你的应用程序时,你只需使用刷新令牌请求一个新的访问令牌,你就可以访问api。你不必手动输入你的登录名和密码,并同意访问。一切都可以在后台使用refesh令牌完成。
注意:您需要观察它,有些情况下可能会导致刷新令牌过期,但只要您继续定期使用它们,您就不必担心它们在大多数情况下是好的。
我不是蟒蛇开发人员,但发现了这一点
from oauth2client import client, GOOGLE_TOKEN_URI
CLIENT_ID = "client_id"
CLIENT_SECRET = "client_secret"
REFRESH_TOKEN = "refresh_token"
credentials = client.OAuth2Credentials(
access_token = None,
client_id = CLIENT_ID,
client_secret = CLIENT_SECRET,
refresh_token = REFRESH_TOKEN,
token_expiry = None,
token_uri = GOOGLE_TOKEN_URI,
token_ id = None,
revoke_uri= None)
http = credentials.authorize(httplib2.Http())
我正在尝试制作一个简单的python程序,它使用Youtube数据API来检索基于Youtube搜索查询的结果。 我已经创建了我的OAuth凭证,并拥有一个client_secrets JSON。每次我运行我的python程序时,它总是要求我获得一个授权密钥,这样我就可以进行查询。我必须打开chrome,找到API给我的URL,登录我的谷歌账户,粘贴密钥。 有人能证明我如何使这个过程自动化吗?我在
如何设置与凭据=真到返回promise。以下内容是否正确: 我认为MDN文档讨论了http请求的所有内容,除了这一点:
优酷土豆路由宝L1固件下载 youku rom downloads rom版本 正式版硬件 公测版硬件 2.0.0629.54182 下载 下载 1.5.0507.51292 下载 1.5.0421.50378 下载 1.5.0417.50253 下载 下载 1.5.0327.49004 下载 1.5.0327.48994 下载 1.5.0320.48610 下载 1.5.0211.47252 下
我在玩谷歌YouTube API Java客户端库。我已经编写了一个Spring Boot服务,您可以使用Spring Security OAuth使用您的Google帐户登录。这一切都很好。 现在,在RESTendpoint方法中,我有类似的东西 其中实例是的实例。 理想情况下,我希望我的服务使用登录用户的凭据进行YouTube API调用,但我无法弄清楚如何从给定的实例构建实例。 我知道我可以
问题内容: 我正在寻找使用Windows用户调用应用程序的系统凭据在Go HTTP请求中进行NTLM身份验证的阻力最小的路径。 在C#/。NET中,我将能够通过 在Python中,可以通过以下方式获得等效结果 但我无法找到有关如何在Go中执行相同操作的任何资源。我当然可以使用一个库进行NTLM身份验证,并手动提供用户名/密码,但是这里的目标是避免将它们输入。 问题答案: 在进一步深入研究之后,看起
问题内容: 我想知道如何一次获取多个GET URL,然后将获取的JSON数据放入我的React DOM元素中。 这是我的代码: 但是,我想从服务器中获取其他JSON数据,然后使用传递到其中的所有这些JSON数据呈现我的ReactDOM。例如: 这可能吗?如果不是,将多个JSON数据提取到我的渲染ReactDOM元素中的其他解决方案是什么? 问题答案: 您可以在解决方案之前依靠Promises来执行