[英]No callback from API after php cURL request
我的代碼向 API 發出 curl 請求,該 API 將圖像格式(例如 png 轉換為 jpg)。 API 文檔提供了來自 API 的回調,當轉換完成時,它將向我的服務器(托管,而不是本地主機)上的 url 發送 GET 請求。 我使用鍵/值對將此 URL 提供給 API: "callback" => "12coins.net/cc_callback.php"
不幸的是,API 從不回調。 我的 curl_setopt 參數是否錯誤或可能是什么問題?
$ch_start_process = curl_init();
$start_process_data = array(
"callback" => "https://12coins.com/cc_callback.php",
"input" => "download",
"file" => "https://12coins.com/photo_file.png",//the image I want converted
"tag" => "tag - unused for now",
"outputformat" => "jpg");
$process_url = "https:".$url_from_create;//prepend https to construct a valid endpoint.
//$url_from_create is a url returned by the API to a request immediately prior to this one
curl_setopt($ch_start_process, CURLOPT_URL, $process_url);
curl_setopt($ch_start_process, CURLOPT_POSTFIELDS, http_build_query ($start_process_data));
curl_setopt($ch_start_process, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_start_process, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
$start_response=curl_exec($ch_start_process);//assign return value of curl_exec()
這是我的(遠程)服務器12coins.net/cc_callback.php
上的腳本,API 應該回調但不會:
<?php
header('Access-Control-Allow-Origin: *');
echo 'cc_callback has been called';
echo 'The GET request from CloudConvert is: '. $_GET;
?>
API 實際上會進行回調。 只是使用 cc_callback.php 中顯示的代碼,我無法檢測回調。 我假設 echo 語句將允許我在瀏覽器開發工具的(Chrome)網絡選項卡中查看 API 的響應。 但是當然,echo 語句會回顯到使用 GET 請求“調用”它的客戶端。 在這種情況下,該客戶端是 API,而不是我的瀏覽器/html 頁面。
意識到這一點后,我可以通過添加mail(myemailaddress@gmail.com, 'This is the url returned to the callback',$GET[url]);
輕松地檢查它是否一直有效mail(myemailaddress@gmail.com, 'This is the url returned to the callback',$GET[url]);
到我的 php 腳本(如問題所示)。 當我將圖像發送到 API 進行處理時,這給我發送了一封電子郵件,從而確認 API 正在回調。
問題中的 curl 代碼很好。 它向 API 發出成功的請求。
最后,curl 代碼用於對 CloudConvert API 版本 1 的請求。有一個版本 2,但上面的代碼不適用於此。 此外,還有一個較早的 curl 請求必須與上面的請求結合使用,為了完整起見,我稍后將發布該請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.