没有类的简单php中的OAuth

没有类的简单php中的OAuth,php,oauth,Php,Oauth,我想使用没有oauth类的简单php生成这段代码给我的签名: $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)); 到

我想使用没有oauth类的简单php生成这段代码给我的签名:

$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));
到目前为止,我所做的是:

    $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));
但是我没有得到相同的签名
这是我之前在这里发布的问题的简化版本:

你知道我做错了什么吗?

你这样做是为了学习吗?否则,似乎没有太多的理由重新发明同样的过程。不,我同意!这很愚蠢,但在我工作的地方,允许新扩展添加到服务器必须经过一个过程,这需要花费我没有的时间,我已经使用相同的解决方案生成另一个签名,并且成功了,现在我必须使用
body\u hash
生成一个签名,以将LTI结果发送回消费者,因此,为什么我在这里为什么OAuth类需要服务器的扩展?我以为它是一个服务器扩展,介意共享一个链接,我可以下载这个类吗?你是在说这个吗。但是列出了许多不同的Oauth库,如果您在线搜索,无疑会有更多。通常我认为他们不需要安装任何特殊的东西,只需要安装代码,但文档会说明这一点。