1

現在、Box.netをWebサイトに統合していますが、認証後に操作にアクセスしようとするとスタックします。

正常に認証してトークンを取得していますが、トークンがアクティブであるかどうかに関係なく、受信するすべての応答は401無許可です。

私のテストコード:

$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);

ダンプのリクエスト:

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

"
}

応答:

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

参考までに、SeanRoseによって作成されたBox_Rest_Clientを介してv1apiを試してみました(喜びがあるかどうかを確認するためだけです)。これは基本的な操作で問題なく機能しました。

ヘルプ/ポインタをいただければ幸いです。

ありがとう

フランキー

4

1 に答える 1

1

フランキー、BoxAuth承認メカニズムは、V2APIとV1トークンとの下位互換性を提供します。

Authorization: BoxAuth api_key=API_KEY&auth_token=V1_TOKEN

Authorization: Bearer V2_TOKEN

BoxAuthV2 APIリクエストのヘッダーでV1が発行したトークンを使用してみてください。そうすれば、機能するはずです。

于 2013-02-27T13:24:28.850 に答える