2015-04-20 5 views
0

Я пытаюсь получить токен запроса от Bitbucket, но я получаю «НЕОБХОДИМЫЙ ЗАПРОС - Не удалось проверить запрос OAuth». Я делаю это с drupal, и вот код, который у меня есть до сих пор:Не извлекать токен с помощью bitbucket API

$key = "MY_KEY"; 
$secret ="MY_SECRET"; 
$timestamp = time(); 
$nonce = (int) (rand() * 100000000); 
$callback = 'http://www.google.com'; //'htt//url('<front>', array('absolute' => TRUE)); //DRUPAL_ROOT . "/toolkittens/git"; 

$url = "https://bitbucket.org/api/1.0/oauth/request_token"; 

$data = array(
    'oauth_nonce'    => $nonce, 
    'oauth_timestamp'   => $timestamp, 
    'oauth_consumer_key'  => $key, 
    'oauth_signature_method' => 'PLAINTEXT', 
    'oauth_signature'   => 'thisismysig', 
    'oauth_callback'   => $callback, 
    'oauth_version'   => '1.0', 
); 

$options = array(
    'method' => 'POST', 
    'data' => drupal_http_build_query($data), 
    'headers' => array('Content-Type' => 'application/x-www-form-urlencoded'), 
); 

return drupal_http_request($url, $options); 

ответ

0

Вы предоставляете подпись PLAINTEXT. Если вы запрашиваете токен с предоставленной подписью, не зашифрованной, измените свой параметр oauth_signature_method на «PLAINTEXT», так что битбакет знает, что вы его не зашифровали.

$key = "MY_KEY"; 
$signature = "MY_SIGNATURE"; //I think this is your secret from bitbucket 
$timestamp = time(); 
$nonce = rand(); 
$callback = DRUPAL_ROOT . "/toolkittens/git"; 

$url = "https://bitbucket.org/api/1.0/oauth/request_token"; 

$data = array(
    'oauth_nonce'    => $nonce, 
    'oauth_timestamp'   => $timestamp, 
    'oauth_consumer_key'  => $key, 
    'oauth_signature_method' => 'PLAINTEXT', 
    'oauth_signature'   => $signature, 
    'oauth_callback'   => $callback, 
    'oauth_version'   => '1.0', 
); 

$options = array(
    'method' => 'POST', 
    'data' => $data, 
    'headers' => array('Content-Type' => 'application/x-www-form-urlencoded'), 
); 

$full_url = url($url, array('query' => $data)); 
return drupal_http_request($full_url); 

Кроме того, вы определили свои варианты, но не использовали их.

Смежные вопросы