在PHP中为bitbucket API使用Curl
我试图在在PHP中为bitbucket API使用Curl,php,curl,oauth,bitbucket,bitbucket-api,Php,Curl,Oauth,Bitbucket,Bitbucket Api,我试图在PHP中学习curl,我尝试实现bitbucketAPI,该API具有以下用于身份验证的语法: $ curl -X POST -u "client_id:secret" \ https://bitbucket.org/site/oauth2/access_token -d grant_type=password \ -d username={username} -d password={password} 这是根据文件: 在PHP中使用时,我做了如下操作: $postData
PHP
中学习curl
,我尝试实现bitbucket
API,该API具有以下用于身份验证的语法:
$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token -d grant_type=password \
-d username={username} -d password={password}
这是根据文件:
在PHP
中使用时,我做了如下操作:
$postData = array(
'grant_type' => 'password',
'username' => '*******',
'password' => '**********'
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://bitbucket.org/site/oauth2/access_token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $postData,
));
$response = curl_exec($curl);
$postData = array(
'grant_type' => 'password',
'client_id' => '*******',
'secret' => '**********'
);
但我有个错误
“{”error_description:“缺少客户端凭据;此请求需要使用OAuth客户端id和密码进行身份验证”,“error:“unauthorized_Client”}”
我也尝试过使用client_id和secret,如下所示:
$postData = array(
'grant_type' => 'password',
'username' => '*******',
'password' => '**********'
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://bitbucket.org/site/oauth2/access_token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $postData,
));
$response = curl_exec($curl);
$postData = array(
'grant_type' => 'password',
'client_id' => '*******',
'secret' => '**********'
);
但是仍然没有帮助。您缺少
-u
标志,base-64对“client\u id:secret”字符串进行编码,并将其设置在授权
标题中
要在PHP中实现其效果,请设置CURLOPT_USERPWD
选项
阅读更多