【问题标题】:Can't get Youtube access token with curl (PHP)无法使用 curl (PHP) 获取 Youtube 访问令牌
【发布时间】:2025-12-31 06:25:19
【问题描述】:

我正在按照this 指南使用 PHP 制作服务器端 Youtube Web 应用程序。我无法通过第 4 步。一切都很好,它重定向到我的脚本,我可以获得授权码没问题。但是,当我尝试将该代码交换为授权令牌时(如步骤 4 所示),绝对没有任何反应。我找不到任何错误,只是我的浏览器没有任何反应。我的 PHP 脚本是这样的(私人信息已删除):

<?php

$data = array(
    'code' => $_GET['code'],
    'client_id' => '[REMOVED]',
    'client_secret' => '[REMOVED]',
    'redirect_uri' => '[REMOVED]',
    'grant_type' => 'authorization_code');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/o/oauth2/token');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$return = curl_exec($ch);
curl_close($ch);

echo $return;

?>

也许我在这里有点过头了,但是谁能告诉我为什么它不起作用?

【问题讨论】:

    标签: php api curl login youtube


    【解决方案1】:

    尝试添加,

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    

    CURLOPT_RETURNTRANSFER之后

    【讨论】:

    • 太棒了,现在我得到了一些东西。它给了我这个错误: { "error" : "invalid_grant" } ...这很奇怪,因为我只是使用了 Youtube API 文档所说的 grant_type。不过感谢您的帮助,我会看看能不能找到解决这个新问题的方法...
    • @FramesPerSushi check this:: developers.google.com/analytics/devguides/reporting/core/v2/… 滚动到底部,您会看到“无效授权”,希望有助于解决问题
    • 谢谢。问题是我正在通过刷新一小时前登录的同一页面进行测试。授权码已过期。现在一切都很好。
    最近更新 更多