2013-02-26 3 views
1

J'intègre actuellement Box.net dans un site Web et suis resté bloqué en essayant d'accéder aux opérations après l'authentification.Box.net API V2 PHP curl 401 réponse non autorisée

Je m'authentifie correctement et récupère mon jeton. Cependant, quel que soit le jeton actif, chaque réponse que je reçois est un 401 non autorisé.

Mon code d'essai:

$header = array('Authorization: BoxAuth api_key='.$apikey.'&auth_token='.$auth); 

$curl = curl_init(); 

curl_setopt($curl, CURLOPT_URL, 'https://api.box.com/2.0/folders/0'); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTP_VERSION, "CURL_HTTP_VERSION_1_1"); 
curl_setopt($curl, CURLOPT_VERBOSE, true); 
//curl_setopt($curl, CURLINFO_HEADER, true); 
curl_setopt($curl, CURLINFO_HEADER_OUT, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
//curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 

$res = curl_exec($curl); 

if ($res === false) 
{ 
    print_r('Curl error: ' . curl_error($curl)); 
} 

var_dump(curl_getinfo($curl)); 
curl_close($curl); 

var_dump($res); 

Demande Dump:

array(22) { 
    ["url"]=> 
    string(33) "https://api.box.com/2.0/folders/0" 
    ["content_type"]=> 
    string(16) "application/json" 
    ["http_code"]=> 
    int(401) 
    ["header_size"]=> 
    int(203) 
    ["request_size"]=> 
    int(172) 
    ["filetime"]=> 
    int(-1) 
    ["ssl_verify_result"]=> 
    int(0) 
    ["redirect_count"]=> 
    int(0) 
    ["total_time"]=> 
    float(0.783732) 
    ["namelookup_time"]=> 
    float(0.005711) 
    ["connect_time"]=> 
    float(0.15543) 
    ["pretransfer_time"]=> 
    float(0.479779) 
    ["size_upload"]=> 
    float(0) 
    ["size_download"]=> 
    float(171) 
    ["speed_download"]=> 
    float(218) 
    ["speed_upload"]=> 
    float(0) 
    ["download_content_length"]=> 
    float(171) 
    ["upload_content_length"]=> 
    float(0) 
    ["starttransfer_time"]=> 
    float(0.783576) 
    ["redirect_time"]=> 
    float(0) 
    ["certinfo"]=> 
    array(0) { 
    } 
    ["request_header"]=> 
    string(172) "GET /2.0/folders/0 HTTP/1.1 
Host: api.box.com 
Accept: */* 
Authorization: BoxAuth api_key=xxxxxxxxxxxxxx&auth_token=xxxxxxxxxxxxxxx 

" 
} 

Réponse:

string(171) "{"type":"error","status":401,"code":"unauthorized","help_url":"http:\/\/developers.box.com\/docs\/#errors","message":"Unauthorized","request_id":"xxxxxxxxxxxxxx"}" 

Pour référence, j'ai essayé le api v1 (juste pour voir si je devais une joie) via le Box_Rest_Client écrit par Sean Rose et qui a bien fonctionné pour les opérations de base.

Toute aide/pointeur serait grandement appréciée.

Merci

Frankie

+0

Salut Frankie, pouvez-vous confirmer que vous utilisez les mêmes API api_key et auth_token dans les requêtes V1 et V2? –

+0

Salut John, non pas du même coup. J'ai autorisé le v1 à travers sa propre autorisation https://www.box.net/api/1.0/auth/ qui me fournit un jeton différent. J'ai aussi essayé le jeton v2 par curiosité et ça n'a pas fonctionné. –

Répondre

1

Frankie, le mécanisme d'autorisation BoxAuth fournit l'API V2 compatibilité descendante avec des jetons V1.

Authorization: BoxAuth api_key=API_KEY&auth_token=V1_TOKEN

Authorization: Bearer V2_TOKEN

Essayez d'utiliser un en-tête avec le BoxAuth jeton émis V1 dans votre demande API V2 et il devrait fonctionner.

+0

Salut John, merci pour cela, qui ressemble à son travail avec la v1. Je pense que mes appels v2 ont pu échouer parce que j'utilisais le BoxAuth au lieu de Bearer. –

Questions connexes