Я использую php cURL, чтобы ПОСТАВИТЬ некоторую информацию (тип авторизации: Oauth 1.0), моя проблема в том, чтобы сгенерировать уникальную подпись с использованием consumer_secret и access_token и закодированным URL, а также '&', я попытался использовать два методы для его генерации, но ответ cURL: подпись недействительна. Проверьте и попробуйте снова.
это мой последний метод генерации подписи:
// ------------- START GENERATE SIGNATURE -------------
$oauth = array(
"OAuth oauth_consumer_key=".$this->consumer_key.",
oauth_token=".$this->access_token.",
oauth_signature_method=".$this->signature_method.",
oauth_timestamp=".$timestimp.",
oauth_nonce=".$nonce.",
oauth_version=".$this->version.""
);
$base_info = $this->buildBaseString($this->url, 'PUT', $oauth) .'&';
$composite_key = rawurlencode($this->consumer_secret) . '&' . rawurlencode($this->access_token);
$oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
// ------------- END GENERATE SIGNATURE -------------
и это функция buildBaseString
function buildBaseString($baseURI, $method, $params)
{
$r = array();
ksort($params);
foreach($params as $key=>$value){
$r[] = "$key=" . rawurlencode($value);
}
return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
}
Мне нужна помощь, пожалуйста. спасибо.