Twitter と対話するためのスクリプトを作成しています。アクセス エラーが発生する正しい署名を生成することを除けば、すべて問題ないようです。ただし、Twitter のドキュメントにある変数と一致するように変数を変更すると、別の結果が得られます。https://dev.twitter.com/docs/auth/creating-signatureの下部に、次のように記載されています。
For example, the output given the base string and signing key
given on this page is
B6 79 C0 AF 18 F4 E9 C5 87 AB 8E 20 0A CD 4E 48 A9 3F 8C B6
私のコードはほぼ同じものを生成します-スペースと小文字がありません。ただし、base64_encode() すると、ドキュメント ( ) と同じ値が得られず、tnnArxj06cWHq44gCs1OSKk/jLY=
ケース/スペースなどを変えて試しても、次のようになります。
echo base64_encode('B679C0AF18F4E9C587AB8E200ACD4E48A93F8CB6');
echo strtolower(base64_encode('B679C0AF18F4E9C587AB8E200ACD4E48A93F8CB6'));
echo base64_encode('B6 79 C0 AF 18 F4 E9 C5 87 AB 8E 20 0A CD 4E 48 A9 3F 8C B6');
echo base64_encode(strtolower('B6 79 C0 AF 18 F4 E9 C5 87 AB 8E 20 0A CD 4E 48 A9 3F 8C B6'));
結果:
QjY3OUMwQUYxOEY0RTlDNTg3QUI4RTIwMEFDRDRFNDhBOTNGOENCNg==
qjy3oumwquyxoey0rtldntg3qui4rtiwmefdrdrfndhbotngoencng==
QjYgNzkgQzAgQUYgMTggRjQgRTkgQzUgODcgQUIgOEUgMjAgMEEgQ0QgNEUgNDggQTkgM0YgOEMgQjY=
YjYgNzkgYzAgYWYgMTggZjQgZTkgYzUgODcgYWIgOGUgMjAgMGEgY2QgNGUgNDggYTkgM2YgOGMgYjY=
ここで明らかな何かが欠けていますか?