2014-09-17 2 views
0

Я пытаюсь проверку подлинности с помощью OAuth в OpenX(сайт не оказывает также в хроме. Используйте IEXPLORE или сафари.)Как получить oauth_token с OAuth в PHP

Это мой кусок кода

# Login 
$url = "https://sso.openx.com/api/index/token"; 
$post = http_build_query(array( 'Access Token URL' => 'https://sso.openx.com/api/index/token', 
       'Authorize URL' => 'https://sso.openx.com/login/login', 
       'callbackUrl' => 'oob', 
       'Consumer Key' => $key, 
       'Consumer Secret' => $secret, 
       'OAuth Realm' => $realm, 
       'Request Token URL' => 'https://sso.openx.com/api/index/initiate', 
       'Signature Method' => 'HMAC-SHA1 ', 
       'Version' => '1.0a ')); 

$curl = curl_init($url); 

curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($resource, CURLOPT_POSTFIELDS, $post); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($curl, CURLOPT_VERBOSE, 1); 
curl_setopt($curl, CURLOPT_HEADER, 1); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

$json_response = curl_exec($curl); 
var_dump($json_response); 
curl_close($curl); 

$authObj = json_decode($json_response); 

и, согласно документации, связанной, я должен ожидать в oauth_token и oauth_verifier:

1.Установите callbackUrl на oob (вне диапазона), который сообщает серверу OAuth, что вы не перенаправляете пользователя. Сервер OAuth возвращает токен запроса.

, но вместо этого я получаю:

HTTP/1.1 400 Bad Request - Неправильный запрос: Отсутствующие параметры

Могу ли я сделать что-то, очевидно, здесь не так, что мне не хватает? Я что-то недопонимаю в связанной документации?

Любая помощь приветствуется либо направлена ​​на проблему, либо на то, как она была представлена; ответы, подсказки, идеи, исправления и т. д.

Спасибо.

ответ

0

Попробуйте передаем параметры, как этот

curl_setopt ($ ч, CURLOPT_POSTFIELDS, http_build_query ($ данных));

где $ data будет иметь $ data = 'username ='. $ Username. ' & password = '. $ Password.' ';

0

Откуда берется «$ resource»? Заменить:

curl_setopt($resource, CURLOPT_POSTFIELDS, $post); 

с

curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 

для начала.

1

Я тоже использую openx, вот мой код. Надеюсь, что это может помочь кому-то

$para = array (
     'Access Token URL' => 'https://sso.openx.com/api/index/token', 
     'Authorize URL' => 'https://sso.openx.com/login/process', 
     'callbackUrl' => 'oob', 
     'Consumer Key' => $email, 
     'Consumer Secret' => $consumer_secret, 
     'OAuth Realm' => $sso_realm, 
     'Request Token URL' => 'https://sso.openx.com/api/index/initiate', 
     'Signature Method' => 'HMAC-SHA1', 
     'Version' => '1.0a' 
); 

$opt = array (
     CURLOPT_URL => "https://sso.openx.com/login/process", 
     CURLOPT_COOKIEFILE => $cookieFile, 
     CURLOPT_COOKIEJAR => $cookieFile, 
     CURLOPT_HTTPAUTH => CURLAUTH_BASIC, 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => $para, 
     CURLOPT_VERBOSE => true, 
     CURLOPT_HEADER => true, 
     CURLOPT_SSL_VERIFYPEER => false, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_USERPWD => "{$authentication}", 
     CURLOPT_FOLLOWLOCATION => true 
); 

$c = curl_init(); 

curl_setopt_array($c, $opt); 

$content = curl_exec($c); 
$info = curl_getinfo($c); 
$error = curl_error($c); 

Вам нужен «consumer_secret» и «sso_realm» из электронной OpenX людей, посланных к вам.

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