Как использовать OAuth с PHP и cURL?

Я пытаюсь выполнить аутентификацию на YouTube через API данных и просто должен знать, как заголовки должны быть переведены из их примера (ниже) в вызовы функций PHP + CURL. Запутанная часть – это часть авторизации, которая разбивает пару имен / значений с собственным набором пар имен и значений.

Эта документация хорошо и хорошо, за исключением того, что я не знаю, как отформатировать то, что им требуется в заголовках.

Их пример:

POST /accounts/OAuthGetRequestToken HTTP/1.1 Host: https://www.google.com Content-Type: application/x-www-form-urlencoded Authorization: OAuth oauth_consumer_key="example.com", oauth_signature_method="RSA-SHA1", oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D", oauth_timestamp="137131200", oauth_nonce="4572616e48616d6d65724c61686176", oauth_version="1.0" scope=http://gdata.youtube.com 

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

 curl_setopt($ch, CURLOPT_HEADER, $headers); 

Помогите?

Solutions Collecting From Web of "Как использовать OAuth с PHP и cURL?"

Я раньше не использовал youtube api, но я сделал свой собственный REST api, используя OAuth для веб-приложения.

заголовок должен быть: application / x-www-form-urlencoded, и, как следует из примера, параметры, такие как oauth_consumer_key, oauth_signature_method, oauth_signature и т. д., должны отправляться с использованием сообщения, поэтому вам нужно сделать следующее:

  $header[] = 'Content-Type: application/x-www-form-urlencoded'; curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode("oauth_consumer_key=example.com& oauth_signature_method=RSA-SHA1& oauth_signature=wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D& oauth_timestamp=137131200& oauth_nonce=4572616e48616d6d65724c61686176& oauth_version=1.0")); 

я надеюсь, что это поможет: D

С уважением.

Я также вижу другой пример здесь: http://developer.yahoo.com/boss/search/boss_api_guide/codeexamples.html#oauth_php