我已经使用了youtube api的完整代码来插入评论线程youtube_v3,但是当我调用api时,它会给我下面的错误。
授权要求
在继续之前,您需要授权访问。
当我点击"授权访问"时;它会重定向到谷歌错误页面,并显示以下内容:
错误:redirect_uri_mismatch
Application: Application Name
你可以给这个应用程序的开发者发邮件:email地址
请求中的重定向URI
http://localhost/done.php
与OAuth客户端授权的URI不匹配。访问https://console.developers.google.com/apis/credentials/oauthclient/******-*******.apps.googleusercontent.com?project=*******
更新授权重定向uri
在此代码中,$_GET['code']
和$_SESSION['token']
没有设置,因此我无法获得访问令牌,因此它给了我redirect_uri_mismatch
错误。
从这里设置$_GET['code']
和$_SESSION['token']
的值。代码:
if (isset($_GET['code'])) {
if (strval($_SESSION['state']) !== strval($_GET['state'])) {
die('The session state did not match.');
}
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: ' . $redirect);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
我该如何解决这个问题?
基于这个线程,返回响应的重定向URI必须在api控制台中注册,错误表明您没有这样做,或者没有正确地这样做。
转到项目的控制台,查看API Access。您应该看到您的客户ID &secret,以及重定向uri列表。如果您想要的URI没有列出,请单击edit settings并将URI添加到列表中。
你也可以查看这些相关的SO问题:
- Youtube API 3 Video Upload 400 Error: redirect_uri_mismatch OAuth2
- 400错误:youtube视频上传redirect_uri_mismatch
希望这对你有帮助!