【问题标题】:Bitly API Post requestBitly API 发布请求
【发布时间】:2020-03-04 22:08:16
【问题描述】:

我正在尝试使用以下代码向 Bitly API 发出请求,但我收到了 422 错误消息。我没有使用 OAuth,因为像我这样的单帐户用户似乎不需要这样做。

文档并不清楚如何在这种情况下提出请求。

function bitly() {
  var long_url = "https://stackoverflow.com/questions/ask";
  var apiv4 = 'https://api-ssl.bitly.com/v4/shorten';
  var genericAccessToken = "xxxxx";

  var params = {
  method: "post",
  headers: {"Authorization" : "Bearer " + genericAccessToken, 
            "Content-Type": "application/json"},
  payload: {"group_guid": "string",
            "domain": "bit.ly",
            "long_url": long_url},
  };
  var res = UrlFetchApp.fetch(apiv4, params);
  var obj = JSON.parse(res.getContentText());

}

【问题讨论】:

    标签: javascript json rest post


    【解决方案1】:

    小错误:

    HTTP/1.1 422 Unprocessable Entity
    

    当负载/请求内容不是 JSON 字符串时出现。

    以 PHP 为例:

    $headers =  [
        'Authorization: Bearer '.$param_bitly_token,
        'Content-Type: application/json',
    ];
                    
    $context = stream_context_create([
        'http' => [
            'header' => $headers,
            'method' => 'POST',
            'content'=> json_encode([
                'long_url' => $param_long_url,
                'title' => $param_title,
            ]),
        ],
    ]);
                 
    $response = file_get_contents('https://api-ssl.bitly.com/v4/bitlinks', 0, $context);
    

    这里的重要一点是 json_encode,对于大多数其他 API 来说,它应该是 http_build_query

    您必须将内容作为 JSON 字符串发送。

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 2018-02-23
      相关资源
      最近更新 更多