提问者:小点点

PHP Box API撤销令牌:在标题或正文中找不到客户端ID


当尝试撤销Outh access_令牌for Box时,我得到一个错误:在头或正文中找不到客户端id

这是curl命令(工作正常):

卷曲https://api.box.com/oauth2/revoke-d'客户号=客户号

在使用php curl进行相同的尝试时,我得到了错误。

<?php
$revokeurl="https://api.box.com/oauth2/revoke";
$dataq = array(
    'client_id' => $client_id,
    'client_secret' => $client_secret,
    'token' => $access_token
        );
$dataqjson= json_encode($dataq);

$headers=array(
    "Content-Type: application/json"
    );

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $revokeurl,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => $dataqjson,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_SSL_VERIFYPEER => FALSE,
    CURLOPT_SSL_VERIFYHOST => FALSE
));

$response = curl_exec($curl);
$json_response = json_decode( $response, TRUE );
curl_close($curl);
?>

为什么我的json正文帖子不正确?


共1个答案

匿名用户

数据应设置为application/x-www-form-urlencoded,而不是JSON编码。例子:

<?php

$revokeurl = "https://api.box.com/oauth2/revoke";

$dataq = array(
    'client_id'     => 'client_id',
    'client_secret' => 'client_secret',
    'token'         => 'access_token',
);

$curl = curl_init();

curl_setopt_array(
    $curl,
    array(
        CURLOPT_URL            => $revokeurl,
        CURLOPT_CUSTOMREQUEST  => "POST",
        CURLOPT_POSTFIELDS     => http_build_query($dataq),
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false
    )
);

$response = curl_exec($curl);
$json_response = json_decode($response, false);
print_r($json_response);
curl_close($curl);