App\services\Lastfm::buildAuthCallParams PHP Method

buildAuthCallParams() public method

Such calls require: - The API key (api_key) - The API signature (api_sig).
public buildAuthCallParams ( array $params, boolean $toString = false ) : array | string
$params array The array of parameters.
$toString boolean Whether to turn the array into a query string
return array | string
    public function buildAuthCallParams(array $params, $toString = false)
    {
        $params['api_key'] = $this->getKey();
        ksort($params);
        // Generate the API signature.
        // @link http://www.last.fm/api/webauth#6
        $str = '';
        foreach ($params as $name => $value) {
            $str .= $name . $value;
        }
        $str .= $this->getSecret();
        $params['api_sig'] = md5($str);
        if (!$toString) {
            return $params;
        }
        $query = '';
        foreach ($params as $key => $value) {
            $query .= "{$key}={$value}&";
        }
        return rtrim($query, '&');
    }

Usage Example

 public function testBuildAuthCallParams()
 {
     $api = new Lastfm('key', 'secret');
     $params = ['qux' => '安', 'bar' => 'baz'];
     $this->assertEquals(['api_key' => 'key', 'bar' => 'baz', 'qux' => '安', 'api_sig' => '7f21233b54edea994aa0f23cf55f18a2'], $api->buildAuthCallParams($params));
     $this->assertEquals('api_key=key&bar=baz&qux=安&api_sig=7f21233b54edea994aa0f23cf55f18a2', $api->buildAuthCallParams($params, true));
 }