如何为YoutubeAPI使用GoogleAPI access_token和refresh_token?

时间:2018-11-07 16:38:00

标签: php youtube-api google-oauth2

对不起,也许这是一个愚蠢的问题。

我尝试按照教程中的步骤使用Google Oauth2制作应用程序: https://medium.com/@pablo127/google-api-authentication-with-oauth-2-on-the-example-of-gmail-a103c897fd98

目前我已经成功,直到获得如下所示的access_token和refresh_token:

{
  "access_token": "*****",
  "expires_in": 3600,
  "refresh_token": "*****",
  "scope": "https://www.googleapis.com/auth/youtube",
  "token_type": "Bearer"
}

我想问的是,如何使用YoutubeAPI上的数据: https://developers.google.com/youtube/v3/docs/subscriptions/insert

Q1:这样我可以通过我的应用程序订阅或取消订阅某些频道。

Q2:另外,如何使用“ refresh_token”来获取下一个“ access_token”。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一个调用subscriptionsInsert函数的按钮。如果您需要有关如何创建按钮的信息,则可以参考此SO question

在提供的代码中,您在调用函数时订阅的频道固定为ID为UC_x5XG1OV2P6uZZ5FSM9Ttw的频道。要更改此设置,您可以尝试使用Channels.list来获取channelId

https://www.googleapis.com/youtube/v3/channels?key={YOUR_API_KEY}&forUsername={USER_NAME}&part=id

关于第二个问题,如果您要求离线访问与令牌关联的范围,则可以refresh an access token

  
      
  • 如果您使用Google API客户端库,则client object会根据需要刷新访问令牌,只要您为该对象配置
      离线访问。
  •   
  • 如果不使用客户端库,则需要在redirecting the user to Google's OAuth 2.0 server时将access_type HTTP查询参数设置为offline。在这种情况下,当您exchange an authorization code输入访问令牌时,Google的授权服务器会返回刷新令牌。然后,如果访问令牌过期(或在任何其他时间),则可以使用刷新令牌来获取新的访问令牌。
  •