我使用YouTube启动了一个基于Web的开发项目,当我注册API时,我收到的只是一个客户ID和电子邮件ID。但是,在用于调用数据 API 的 Ruby 示例文本中,它指出:
def initialize(scope)
credentials = Google::APIClient::ClientSecrets.load
@authorization = Signet::OAuth2::Client.new(
:authorization_uri => credentials.authorization_uri,
:token_credential_uri => credentials.token_credential_uri,
:client_id => credentials.client_id,
:client_secret => credentials.client_secret,
:redirect_uri => credentials.redirect_uris.first,
:scope => scope
我不知道去哪里获取这些凭据。想法?
由于YouTube现在基于Google帐户,因此需要在Google开发人员控制台上获取这些凭据(选择YouTube数据API),并且您必须启动正常的Google登录过程。您的client_id和client_secret是在控制台上创建新应用程序时生成的,您的redirect_uri是根据您的应用程序结构设置的。
虽然Signet有一个很好的OAuth2模块与之相关,但我发现Omniauth非常易于使用(您仍然可以将其与Signet结合使用)。如果您不需要自定义登录过程,Omniauth 会将大部分内容放在黑框中(它非常频繁),并为您处理令牌刷新等。我可能会使用 Omniauth Google 策略来获取您的代币,然后使用 Google Ruby 客户端发出请求。