OAuth in simple php without class

i want to generate the signature this code gives me using simple php with no oauth class:

$oauth = new OAuth($my_key, $my_secret);
$bodyHash = base64_encode(sha1($body_content, true)); //contains the body
$sig = $oauth->generateSignature('GET', $url, Array("oauth_body_hash" => $bodyHash));

what i have done so far is this:

    $bodyHash = base64_encode(sha1($xml, true));
    $result_data = array(
        'oauth_body_hash' => $bodyHash
    );
    $result_data_keys = array_keys($result_data);

    sort($result_data_keys);

    $launch_params = array();
    foreach ($result_data_keys as $key) {
        array_push($launch_params, $key . "=" . rawurlencode($result_data[$key]));
    }

    $base_string = "POST&" . urlencode($sUrl) . "&" . rawurlencode(implode("&", $launch_params));

    $signature = base64_encode(hash_hmac("sha1", $base_string, $my_secret, true));

but im not getting the same signature!
this is the simplified version of the problem i have posted earlier here: Building a body signed oauth xml request for LTI Outcomes service
any idea what im doing wrong?