YouTube 视频评级 api (v3) 在模拟器中工作,但在真实设备中出现 403 错误
Posted
技术标签:
【中文标题】YouTube 视频评级 api (v3) 在模拟器中工作,但在真实设备中出现 403 错误【英文标题】:YouTube video rating api (v3) works in simulator but gives 403 error in real devices 【发布时间】:2016-08-02 20:02:14 【问题描述】:客户 ID、密码等正确。我重新检查了它们。 Google + 登录有效,我也获得了访问令牌,但是当我尝试使用 YouTube 视频评级 API 时,它在真实设备中给出了 403 禁止错误。但是它在模拟器中运行良好。这里可能是什么问题?有人可以帮忙吗?
附:在我没有在代码中使用“gc.setScope(”https://www.googleapis.com/auth/youtube.force-ssl“)”之前,它在模拟器中也给出了同样的禁止错误,但现在我添加了该行并在模拟器中工作,但在真实设备中给出了 403 禁止错误。
sign.addActionListener((e) ->
String clientId = "873649282964-7r6088ua0jhoua2tngpblhf4u8elda55.apps.googleusercontent.com";
String redirectURI = "https://www.youtube.com/";
String clientSecret = "_T7cyd-kWQKDzH0ZwiIeq1jr";
gc = GoogleConnect.getInstance();
gc.setClientId(clientId);
gc.setRedirectURI(redirectURI);
gc.setClientSecret(clientSecret);
gc.setScope("https://www.googleapis.com/auth/youtube.force-ssl");
gc.setCallback(new LoginCallback()
@Override
public void loginFailed(String errorMessage)
System.out.println("errorMessage");
@Override
public void loginSuccessful()
System.out.println("login success");
);
if (!gc.isUserLoggedIn())
gc.doLogin();
else
//get the token
token = gc.getAccessToken().getToken();
);
Button like = new Button("Like");
likeForm.add(like);
like.addActionListener((e) ->
token = gc.getAccessToken().getToken();
ConnectionRequest cr = new ConnectionRequest()
@Override
protected void readResponse(InputStream input) throws IOException
super.readResponse(input);
@Override
protected void postResponse()
like.setText("Like: " + "ok");
;
cr.setPost(true);
cr.setUrl("https://www.googleapis.com/youtube/v3/videos/rate?id=" + "lIHr4ZVMBoo" + "&rating=like&access_token="+ token);
System.out.println("geturl " + cr.getUrl());
cr.setDuplicateSupported(true);
NetworkManager.getInstance().addToQueueAndWait(cr);
);
错误日志:
04-15 08:05:10.761: E/GMPM(5344): getGoogleAppId failed with status: 10
04-15 08:05:10.761: E/GMPM(5344): Uploading is not possible. App measurement disabled
04-15 08:06:02.901: E/Volley(2900): [154] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/plus/v1/people/me
【问题讨论】:
根据document,如果API返回HTTP 403响应码,那么你的应用可能没有注册。许多 API 将未注册应用程序的查询量限制设置为 0,并在超过查询量限制时返回 403 响应代码。您可以查看此page,它解释了如何在 Google Developers Console 中注册您的应用,包括数字签名的 .apk 文件证书。 @KENdi 不,我做了所有这些。错误日志显示“BasicNetwork.performRequest:googleapis.com/plus/v1/people/me 的意外响应代码 403” 【参考方案1】:您将登录错误或成功打印到控制台,而不是显示在设备上可见的 UI。所以你的登录可能不会成功。
据我所知,Google API 还需要 Authorization
http 标头,因为我们使用它 here 但如果它在模拟器上工作,我不确定这是问题所在。
【讨论】:
以上是关于YouTube 视频评级 api (v3) 在模拟器中工作,但在真实设备中出现 403 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Google.Apis.YouTube.v3 和 C# 将视频上传到 youtube?
Youtube /v3/search API 不再返回直播视频
Youtube API v3:使用服务帐户访问 youtube 视频