如何在调用 youtube 评论线程 API 时设置 $_GET['code'] 和 $_SESSION['token']



我已经使用了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

希望这对你有帮助!

最新更新