0

我写了一个webapp,它直接将图像上传到imgur。由于他们的所有旧版本的 API 都已被弃用,我被迫使用他们的 API 的 v3。不幸的是,我无法让 API 正常工作。我正在使用 curl 访问 API。

$pvars   = array('image' => base64_encode($data));
$timeout = 30;
$curl    = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/upload');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID xxxxxxa61xxxxxx'));
$xml = curl_exec($curl);
$xmlsimple = new SimpleXMLElement($xml);
print gettype($xml)."<hr>";
echo '<img height="180" src="';
echo $xmlsimple->links->original;
echo '">';
curl_close ($curl);

“Xml”变量始终返回“false”,不显示服务器错误。有人可以指导我做错什么吗?不幸的是,我也无法在文档中找到任何合适的示例,也无法指导我。

我刚刚尝试了另一个关于堆栈溢出的问题的代码,但我仍然遇到同样的问题。

    var_dump(base64_encode($data));
echo "<hr>";

$client_id = "xxxxxxa61xxxxxx";
$url = 'https://api.imgur.com/3/image.json';
$headers = array("Authorization: Client-ID $client_id");
$pvars  = array('image' => base64_encode($data));

$curl = curl_init();

curl_setopt_array($curl, array(
   CURLOPT_URL=> $url,
   CURLOPT_TIMEOUT => 30,
   CURLOPT_POST => 1,
   CURLOPT_RETURNTRANSFER => 1,
   CURLOPT_HTTPHEADER => $headers,
   CURLOPT_POSTFIELDS => $pvars
));

$json_returned = curl_exec($curl); // blank response
print_r(curl_getinfo($curl));
echo "<hr>";

echo "Result: " . $json_returned ;
echo "<hr>";
var_dump($json_returned);
echo "<hr>";

curl_close ($curl); 
4

0 回答 0