<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Documentation mistake or bug in Spotify for Developers</title>
    <link>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5585328#M9312</link>
    <description>&lt;P&gt;hello did you find any solution&lt;/P&gt;</description>
    <pubDate>Tue, 23 May 2023 06:08:34 GMT</pubDate>
    <dc:creator>Bhanu3858</dc:creator>
    <dc:date>2023-05-23T06:08:34Z</dc:date>
    <item>
      <title>Documentation mistake or bug</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5321522#M3855</link>
      <description>&lt;P&gt;This authorization request works for me in php-curl:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="php"&gt; $ch = curl_init();

    //Escribo endpoint el indicado por api
    curl_setopt($ch, CURLOPT_URL,            'https://accounts.spotify.com/api/token');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    //IMPORTANTE ES UNA PETCION POST NO GET, TAL COMO INDICA DOCUMENTACION API
    curl_setopt($ch, CURLOPT_POST,           1);

    //Esta forma de añadir los parametros NO LE GUSTA a spotify, aunque deberia funcionar....seguramente algo hace 
    //http_build_query  It returns a URL-encoded string.
    //  curl_setopt($ch, CURLOPT_POSTFIELDS,     'code=' . $_REQUEST['code'] );
    //  curl_setopt($ch, CURLOPT_POSTFIELDS,     'redirect_uri=' . $redirect_uri );
    //  curl_setopt($ch, CURLOPT_POSTFIELDS,     'grant_type=authorization_code');

    //Esta forma de añadir los parametros SI LE GUSTA a spotify..
    //ojo estos parametros como indica la API van en el body de la peticion.
    $params = array('code' =&amp;gt; $_REQUEST['code'], 'redirect_uri' =&amp;gt; $redirect_uri, 'grant_type' =&amp;gt; 'authorization_code');
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));

    //ojo estos parametros como indica la api van el el header de la peticion.
    //ojo documentación dice que no va aqui el grant-type pero si no no funciona...
    curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Authorization: Basic ' . base64_encode($client_id . ':' . $client_secret), 'Content-type: application/x-www-form-urlencoded', 'grant_type=authorization_code'));

    //resultado de peticion
    $result = curl_exec($ch);

    //Gestion de errores
    if (curl_errno($ch)) {
        print "Error: " . curl_error($ch);
        echo 'Error en ch curl';
    } else {
        // Show me the result Info de la peticion CURL ...se podria quitar mas adelante
        echo 'ch curl Info';
        echo '&amp;lt;h4&amp;gt; Info Curl &amp;lt;/h4&amp;gt;';
        $info = curl_getinfo($ch);

        echo '&amp;lt;/br&amp;gt;';
        echo '&amp;lt;pre&amp;gt;' . print_r($info, true) . '&amp;lt;/pre&amp;gt;';
        // echo 'Took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "\n";
        //El resultado de la consulta que devuelve un json, se pasa a variable php
        //json_decode Convierte un string codificado en JSON a una variable de PHP. 
        $json = json_decode($result);

        //Resultado consulta...puedo acceder de la forma json-&amp;gt;access_token
        echo '&amp;lt;/br&amp;gt;';
        echo '&amp;lt;h2&amp;gt; Resultado consulta &amp;lt;/h2&amp;gt;';
        echo '&amp;lt;pre&amp;gt;' . print_r($json, true) . '&amp;lt;/pre&amp;gt;';
        
    }

    //Cierro CURl
    curl_close($ch);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The main problem came in:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="php"&gt;curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic ' . base64_encode($client_id . ':' . $client_secret), 'Content-type: application/x-www-form-urlencoded', 'grant_type=authorization_code'));&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;as documentation says it has to have authorization and content-type. Nothing says about grant-type in headers.&lt;/P&gt;&lt;P&gt;So or its a bug or documentation is missing, grant type in header of request.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope it can be solved soon, i spent twor or three days....&lt;/P&gt;</description>
      <pubDate>Thu, 30 Dec 2021 17:15:30 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5321522#M3855</guid>
      <dc:creator>ejgutierrez</dc:creator>
      <dc:date>2021-12-30T17:15:30Z</dc:date>
    </item>
    <item>
      <title>Re: Documentation mistake or bug</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5337539#M4025</link>
      <description>&lt;P&gt;Any help or solution please ? Thanks&lt;/P&gt;</description>
      <pubDate>Wed, 02 Feb 2022 19:43:26 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5337539#M4025</guid>
      <dc:creator>ejgutierrez</dc:creator>
      <dc:date>2022-02-02T19:43:26Z</dc:date>
    </item>
    <item>
      <title>Re: Documentation mistake or bug</title>
      <link>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5585328#M9312</link>
      <description>&lt;P&gt;hello did you find any solution&lt;/P&gt;</description>
      <pubDate>Tue, 23 May 2023 06:08:34 GMT</pubDate>
      <guid>https://community.spotify.com/t5/Spotify-for-Developers/Documentation-mistake-or-bug/m-p/5585328#M9312</guid>
      <dc:creator>Bhanu3858</dc:creator>
      <dc:date>2023-05-23T06:08:34Z</dc:date>
    </item>
  </channel>
</rss>

