相关文章推荐

I’ve been working with Monday for about a week now, and I swear this exact code was working a few days ago. But now the response I get is “No query string was present”. I checked and rechecked the api key, board id, column ids, etc.

   $headers = [
        "Content-Type: application/json",
        "Authorization: $apiKey",
        "API-Version: 2023-10" //brand new as of January 2024
    $url = "https://api.monday.com/v2";
    $method = "POST";
    $boardID = $boardID;
    $query = 'mutation ($myItemName: String!, $columnVals: JSON!) { create_item (board_id: ' . $boardID  . ', item_name:$myItemName, column_values:$columnVals) { id } }';
    $vars = ['myItemName' => "JOHN DOE",
             'columnVals' => json_encode([
             'contact_phone' => $phone,
             'countryShortName' => 'US', //an attempt to get the US flag to show up
             'text0' => "#DA"
    $ch = curl_init();
    $je = json_encode(['query' => $query, 'variables' => $vars]);
    $jd = json_decode($je);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $je);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);

Any assistance would be GREATLY appreciated.

The short answer is “I don’t know”, but I’ve cleaned up the code so that it is a bit more readable and only has what’s needed there:

$apiKey = "************"; // this is a secret $boardID = "123456"; // some board ID $headers = [ "Content-Type: application/json", "Authorization: $apiKey", "API-Version: 2023-10" // brand new as of January 2024 $query = ' mutation ($myItemName: String!, $columnVals: JSON!) { create_item ( board_id: ' . $boardID . ', item_name: $myItemName, column_values: $columnVals $vars = [ 'myItemName' => "JOHN DOE", 'columnVals' => json_encode([ 'contact_phone' => $phone, 'countryShortName' => 'US', //an attempt to get the US flag to show up 'text0' => "#DA" $ch = curl_init(); $payload = json_encode([ 'query' => $query, 'variables' => $vars curl_setopt($ch, CURLOPT_URL, "https://api.monday.com/v2"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch);

Figured it out. Silly issue. The APIkey was read from a database and it had a line feed at the end of it. Message threw me off.

Thanks David. I amusing your code structure.

 
推荐文章