【问题标题】:Issues calling Youtube Api via Curl: CURLE_URL_MALFORMAT error通过 Curl 调用 Youtube Api 的问题:CURLE_URL_MALFORMAT 错误
【发布时间】:2016-10-17 11:50:34
【问题描述】:

我正在尝试使用 curl 通过 YoutubeAPi 按 ID 删除视频。

在以下代码中 curl_errno() 返回 CURLE_URL_MALFORMAT 错误。

$link = urlencode("https://www.googleapis.com/youtube/v3/videos?id=my_Video_ID&key=my_API_KEY");

 $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $link);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    $test = curl_errno($ch);
    echo $test . "\n";
    $result = json_decode($result);
    curl_close($ch);
    return $result;

代码有什么问题?

【问题讨论】:

    标签: php curl youtube-api


    【解决方案1】:

    您不需要对 URL (urlencode) 进行编码。只需将 URL 字符串分配给您的 $link 变量。 (阅读docs。)

    不过,最好对参数值进行编码:

    test.php

    $id = urlencode('AAAAABBBCCC');
    $key = urlencode('AAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCC');
    $link = "https://www.googleapis.com/youtube/v3/videos?id=$id&key=$key";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $link);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    var_dump($result);
    

    测试

    php test.php
    

    输出

    string(238) "{
     "error": {
      "errors": [
       {
        "domain": "global",
        "reason": "required",
        "message": "Login Required",
        "locationType": "header",
        "location": "Authorization"
       }
      ],
      "code": 401,
      "message": "Login Required"
     }
    }
    "
    

    API 确实有效。现在您需要设置正确的idkey 参数official docs 中所述的授权令牌:

    您必须为每次插入、更新和 删除请求。

    【讨论】:

    • 感谢您的帮助,但仍然遇到同样的问题。
    • @AugusteLarrivé,你确定吗?我已经更新了答案。您能否尝试完全按照答案中的内容运行脚本?
    • 我完全按照你的方式运行脚本,得到了同样的答案
    • @AugusteLarrivé,与示例输出中的相同,还是相同的CURLE_URL_MALFORMAT 错误?
    • @AugusteLarrivé,那么这不是CURLE_URL_MALFORMAT 错误(您帖子的主要问题),我们看到 API 确实有效。它不执行您的请求,因为它需要身份验证令牌(如我所写)。
    猜你喜欢
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2021-11-26
    相关资源
    最近更新 更多