0

Bitbucket からリクエスト トークンを取得しようとしていますが、「BAD REQUEST - Could not verify OAuth request」というメッセージが表示されます。私はこれを drupal で行っていますが、これまでのコードは次のとおりです。

$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);
4

1 に答える 1

0

PLAINTEXT 署名を提供しています。提供された署名が暗号化されていないトークンをリクエストする場合は、oauth_signature_method を「PLAINTEXT」に変更して、bitbucket が暗号化していないことを認識できるようにします。

$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);

また、オプションを定義しましたが、それらを使用したことはありません。

于 2015-04-20T14:07:45.817 に答える