PHP curl 不适用于保管箱 OAuth,返回“无效请求”

用户892134

Dropbox 文档说要进行身份验证,您必须执行以下操作:

curl https://api.dropbox.com/oauth2/token \
    -d code=<AUTHORIZATION_CODE> \
    -d grant_type=authorization_code \
    -d redirect_uri=<REDIRECT_URI> \
    -u <APP_KEY>:<APP_SECRET>

这是我对 PHP 的尝试,但 Dropbox 返回以下错误无效请求 - 请求参数与任何受支持的授权流程都不匹配

$url = "https://api.dropbox.com/oauth2/token";
            $redirect_uri = 'https://www.mywebsite.com/oauth_dropbox';
           
            $postfields = array(
                'code' => $_GET['code'],
                'grant_type' => 'authorization_code',
                'redirect_uri' => $redirect_uri
            );

            $auth = "$app_key:$app_secret";
            $curl = curl_init($url);

            curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postfields));
            curl_setopt($curl, CURLOPT_USERPWD, $auth);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

            $json_response = curl_exec($curl);
            $responseObj = json_decode($json_response);

我该如何解决?

格雷格

如果您明确设置基本授权,它看起来像这样有效,也就是说,而不是:

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

设置这个:

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章