Domanda

Sto cercando di connettersi all'API di WebTrend utilizzando PHP ma non è stato in grado di autenticare.

L'esempio dato sulla documentazione della WT è per .NET o Ruby, l'esempio .net è come questo:

var svc = new WebClient();
        svc.Credentials = new NetworkCredential("yourWebTrendsAccount\WebTrendsUserName", "yourSuperSecretPassword");
        svc.DownloadStringCompleted += svc_DownloadStringCompleted;
        svc.DownloadStringAsync(new Uri(baseUri));
.

Non ho familiarità con .NET, ma c'è un equivalente di quella classe WebClient su PHP?

Ho cercato di autenticare l'utilizzo di Curl usando

username = "my_account_name/my_login_name" 
password = "my_password" 
.

Ma finora non è fortuna.Ottengo un messaggio di errore che dice che i parametri non sono corretti.

Aggiornamento: Aggiunta del codice

    $username=urlencode('my_account_name\my_login_name');
    $password="my_password";


    $postdata="username=$username&password=$password";

    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL,"https://ws.webtrends.com/v2/ReportService/profiles/XXXXXXXX/reports/XXXXXXXX/?totals=all&period=2011w14&format=xml");
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt ($ch, CURLOPT_POST, 1);
    $result = curl_exec ($ch);
    curl_close($ch);
    var_dump($result);
.

Ho anche provato

curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
.

Ma senza fortuna finora.

È stato utile?

Soluzione

@kevin Horst ha fornito un buon esempio di eseguire una richiesta di autenticazione di base con curl e php.Devo spesso farlo tramite la riga di comando.Per fare ciò è necessario un curl installato sul tuo sistema.

 curl --user username:password \
-i https://ws.webtrends.com/v2/ReportService/profiles/XXXXXXXX/reports/XXXXXXXX/?totals=all&period=2011w14&format=xml
.

Secondo la documentazione sull'API di estrazione dei dati di WebTrends.Usano l'autenticazione di base su SSL che è uno standard per l'autenticazione riposante.

Webtrends Data Extraction API

Altri suggerimenti

Penso che devi usare Curlopt_UserPWD invece di PostData:

$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, 'https://ws.webtrends.com/v2/ReportService/profiles/XXXXXXXX/reports/XXXXXXXX/?totals=all&period=2011w14&format=xml');
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($connection, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, sprinf('%s:%s', $username, $password))
$data = curl_exec();
curl_close($ch); 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top