Twitter API v1.1 を使用する場合、承認プロセスの一部として署名を作成するために、Twitter で概説されている手順に従っています。手順はオンラインでここにあります:
https://dev.twitter.com/docs/auth/creating-signature
署名ベース文字列と署名キーがある最後のビットに到達しました。最終的な署名を生成するのに苦労しています。
sig ベース文字列と署名キーを HMAC-SHA1 ハッシュ アルゴリズムに渡し、base64 エンコーディングを使用する必要があります。これがどの順序で行われるか、またはコードが正確にどうなるかはわかりません。これは私が試したことですが、Twitterの例と同じ結果にはなりません:
$sigBaseString = '
POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS4wEEPTGEFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_version%3D1.0%26status%3DHello%2520Ladies%2520%252B%2520Gentlemen%252C%2520a%2520signed%2520OAuth%2520request%2521'
$signingKey = 'kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw&LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE';
$sig = hash_hmac('sha1',$sigBaseString,$signingKey);
echo base64_encode($sig);
hash_hmac を間違って使用していますか? 間違った部分で base64 エンコーディングを実行しましたか? Twitterと同じ結果が得られないようです。