对不起,也许这是一个愚蠢的问题。
我尝试按照教程中的步骤使用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”。
谢谢。
答案 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的授权服务器会返回刷新令牌。然后,如果访问令牌过期(或在任何其他时间),则可以使用刷新令牌来获取新的访问令牌。