2013-08-29 39 views
0

我使用Twitter概述的步驟來創建簽名,作爲使用Twitter API v1.1時授權過程的一部分。這些步驟是在這裏在線:使用PHP創建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相同的結果。

回答

0

找到了答案,以我自己的問題:

$sig = base64_encode(hash_hmac('sha1',$sigBaseString,$signingKey,TRUE));