PHP Oauth signature_invalid

Я не могу понять, почему это не работает ... Я действительно думаю, что так и должно быть. Пожалуйста помоги.

Вот ошибка, которую я получаю:

signature_invalid base_string: GET & HTTPS% 3A% 2F% 2Fwww.google.com% 2Faccounts% 2FOAuthGetRequestToken & oauth_callback% 3Dhttp% 253A% 252F% 252Fnoveis.net% 252Fauthsub% 252Findex.php% 26oauth_consumer_key% ПОТРЕБИТЕЛЬСКАЯ КЛЮЧ ЗДЕСЬ% 26oauth_nonce% 3D3bafa031c03f6d1590f2539091245270% 26oauth_signature_method% 3DHMAC-SHA1 % 26oauth_timestamp% 3D1282159845% 26oauth_version% 3D1.0% 26scope% 3Dhttps% 253A% 252F% 252Fwww.googleapis.com% 252Fauth% 252Flatitude

Вот мой код:

<?php

$consumer = ''; // Would be consumer key
$secret = ''; // Would be secret
$callback = ''; // Would be callback URL

$mt = microtime();
$rand = mt_rand();
$nonce = md5($mt . $rand);
$time = time();

$url = 'https://www.google.com/accounts/OAuthGetRequestToken';
$path = '/accounts/OAuthGetRequestToken';

$scope = 'https://www.googleapis.com/auth/latitude';

$post = array(
    'oauth_callback' => $callback,
    'oauth_consumer_key' => $consumer,
    'oauth_nonce' => $nonce,
    'oauth_signature_method' => 'HMAC-SHA1',
    'oauth_timestamp' => $time,
    'oauth_version' => '1.0'
);

$post_string = '';
foreach ($post as $key => $value) {
    $post_string .= $key . '=' . urlencode($value) . '&';
}
$post_string = rtrim($post_string, '&');

$key_parts = array($consumer, $secret);

$key_parts = array_map('urlencode', $key_parts);
$key = implode('&', $key_parts);

$base_string = 'GET&' . urlencode($scope) . '&' . $post_string;
$signature = base64_encode(hash_hmac('sha1', $base_string, $key, true));
$post['oauth_signature'] = $signature;
$header_string = '';
foreach ($post as $key => $value) {
    $header_string .= $key . '="' . urlencode($value) . '", ';
}
$header_string = trim($header_string);
$header_string = rtrim($header_string, ',');

$header[] = 'GET ' . $path . '?scope=' . urlencode($scope) . ' HTTP/1.1';
$header[] = 'Host: www.google.com';
$header[] = 'Accept: */*';
//$header[] = 'Content-Type: application/x-www-form-urlencoded';
$header[] = 'Authorization: OAuth ' . $header_string;
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_URL, $url . '?scope=' . $scope);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
curl_close($ch);
print_r($result);
?>

Ответы на вопрос(1)

Ваш ответ на вопрос