【问题标题】:Php: Api returns bad request error messagephp: Api 返回错误请求错误信息
【发布时间】:2016-10-29 00:08:37
【问题描述】:

我正在尝试使用 youtube apiv3 获取视频列表,但如果请求中存在 publishedAfter 参数,我将收到错误请求。

根据他们的文档

类型:日期时间

publishedAfter 参数表示 API 响应应该 只包含在指定之后创建的资源 时间。该值是 RFC 3339 格式的日期时间值 (1970-01-01T00:00:00Z)。

所以我将日期参数转换为 RFC3339 格式 这是我的代码

    $time="2016-06-21 05:40:00";
    $datetime = \DateTime::createFromFormat("Y-m-d H:i:s", $time);
    //RFC3339 format
    echo $t=(datetime)$datetime->format(\DateTime::RFC3339);

这是获取结果的url

 $url='https://www.googleapis.com/youtube/v3/search?part=snippet&order=viewCount&key={kEY}&&publishedAfter='.$t;

我会收到这个错误

Array
(
    [error] => Array
        (
            [errors] => Array
                (
                    [0] => Array
                        (
                            [domain] => global
                            [reason] => badRequest
                            [message] => Bad Request
                        )

                )

            [code] => 400
            [message] => Bad Request
        )

)

注意:

没有publishedAfter参数我会得到响应,所以我认为是dateformat的问题。

【问题讨论】:

    标签: php api youtube-data-api


    【解决方案1】:

    请尝试以下方法。

    $time="2016-06-21 05:40:00";
        $datetime = new DateTime($time);
        $datetime->format('Y-m-d\TH:i:sP');
    

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多