我正在尝试使用OAuth2授权使用YouTube数据API。我想为Android编写一个简单的客户端,例如,获取用户订阅列表,播放列表等。
问题是我尝试的每种方法(例如,https://www.googleapis.com/youtube/v3/subscriptions
或YouTube库com.google.apis:google-api-services-youtube:v3-rev120-1.19.0
等HTTP请求),我都会遇到同样的错误:
401凭据无效
我执行以下步骤:
在这里,我有很多问题。
因为当我看到示例代码时,例如:
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context.getApplicationContext(), Arrays.asList(SCOPES));
credential.setSelectedAccountName(accountName);
YouTube youtube = new YouTube.Builder(new NetHttpTransport(),
new JacksonFactory(), credential).setApplicationName(context.getString(R.string.app_name)).build();
或使用AccountManager并获取令牌
accountManager.getAuthToken(userAccount, "oauth2:" + mScope, null, (Activity) mContext,
new OnTokenAcquired(), null);
where mScope="https://gdata.youtube.com"
然后以这种方式使用
https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=10&mine=true&key={here is my key}&access_token= ya29.bgJa5J8LHHu0Mu3P87mbPY9gfhSFzWUHh8gCw022FC6yfMO6GfVHveYr_BG1-HnWF-jpd-IDcGGVrF3gEf4UhSHPSrV76RAwqd4V17ixn72s1Xl6a0wQ4FVDz3cEZjUEN80o
每次都会得到相同的authError错误(简而言之):
“code”:401,
“message”:“凭证无效”
我做错了什么?如何在变体1和2中使用client_id。是否有必要?因为我认为这就是为什么它不起作用的原因。