Intereting Posts
Как этот шаблон PCRE обнаруживает палиндромы? Несколько проигрывателей Jplayer из Laravel DB PHP Как получить доступ ко всем элементам многомерного массива, если ни один индекс не известен? как поймать ошибку функции pg_connect ()? Запускать php-скрипт в фоновом режиме на PHP с помощью командной строки nohup PHQL «WHERE xxx IN ()» может получить только 1 данные Максимальное время выполнения PHP Как предотвратить вставку электронной почты, если она уже существует с определенным идентификатором в laravel? Как установить ImageMagick в Windows 7 (2) PBKDBF2 hash – дублирующая функциональность класса .NET rfc2898DerivedBytes в PHP Обнаруживать, когда время работы около max_execution_time Как улучшить чтение функции файла и захватить данные для лучшей производительности, чем файл ()? Преобразование совпадений в верхнем регистре, полужирное, с использованием регулярных выражений Проверка пароля с использованием bcrypt CakePHP: Предельные поля, связанные с моделью

Аутентификация Oauth HMAC-SHA1 для получения контактов с Yahoo! Контакты API

Возможный дубликат:
Получить контакты с помощью API контактов Yahoo

Я разрабатываю sysyem, чтобы получать контакты Yahoo от пользователей. Я выполнил все шаги из http://developer.yahoo.com/oauth/guide/oauth-auth-flow.html, и у меня уже есть токен доступа и токены.

У меня возникла проблема с подписью с использованием алгоритма HMAC-SHA1, я выполнил шаги из http://developer.yahoo.com/oauth/guide/oauth-signing.html для генерации ключа подписи, но когда я запрашиваю контакты у данного пользователя Я получаю сообщение об ошибке:

<yahoo:error xmlns:yahoo='http://yahooapis.com/v1/base.rng' xml:lang='en-US'> <yahoo:description>Please provide valid credentials. OAuth oauth_problem="signature_invalid", realm="yahooapis.com"</yahoo:description> </yahoo:error> 

Вот мой код, ответственный за создание ключа подписи:

 $s = 'oauth_consumer_key='.rawurlencode($yahoo_consumer_key).'&'; $s .= 'oauth_nonce='.rawurlencode(uniqid()).'&'; $s .= 'oauth_signature_method='.rawurlencode('HMAC-SHA1').'&'; $s .= 'oauth_timestamp='.rawurlencode(time()).'&'; $s .= 'oauth_token='.rawurlencode($ouathToken).'&'; $s .= 'oauth_version='.rawurlencode('1.0').'&'; $s .= 'realm='.rawurlencode('yahooapis.com'); $baseString ='GET&'.rawurlencode('http://social.yahooapis.com/v1/user/'.$guid.'/contacts').'&'.rawurlencode($s); $signingKey = rawurlencode($yahoo_consumer_secret).'&'.rawurlencode($ouathTokenSecret); $signature = urlencode(base64_encode(hash_hmac('sha1', $baseString, $signingKey, true))); curl_setopt_array($ch, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_HTTPGET => true, CURLOPT_POST => false, CURLOPT_URL => 'http://social.yahooapis.com/v1/user/'.$guid.'/contacts'. '?realm=yahooapis.com'. '&oauth_consumer_key='.$yahoo_consumer_key. '&oauth_nonce='.uniqid(). '&oauth_signature_method=HMAC-SHA1'. '&oauth_timestamp='.time(). '&oauth_token='.$ouathToken. '&oauth_version=1.0'. '&oauth_signature='.$signature )); $result = curl_exec($ch); 

Кто-нибудь может помочь мне сказать, где ошибка? Разве я не сгенерировал код подписи правильно?

Спасибо.