我在 php 中有以下代码:
define("TOKEN_URL", "https://wamsprodglobal001acs.accesscontrol.windows.net/v2/OAuth2-13");
$arrData = array(
'grant_type=client_credentials',
'client_id='.CLIENT_ID,
'client_secret='.urlencode(ACCESS_KEY),
'scope=urn%3aWindowsAzureMediaServices'
);
$arrHeader = array(
'Content-length:'.strlen($this->generateData($arrData))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, TOKEN_URL);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->generateData($arrData));
curl_setopt($ch, CURLOPT_HTTPHEADER, $arrHeader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
$arrToken = json_decode($data);
我无法获取 token 代码。请问谁能检查一下可能出了什么问题吗?
最佳答案
可能存在一些问题:
您可以简化一些事情并使用
http_build_query()
:$data = http_build_query(array( 'grant_type' => 'client_credentials', 'client_id' => CLIENT_ID, 'client_secret' => ACCESS_KEY, 'scope' => 'urn:WindowsAzureMediaServices', )); $ch = curl_init(TOKEN_URL); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if (($res = curl_exec($ch)) === false) { die(curl_error($ch)); } $arrToken = json_decode($res);
如果出现错误,首先要确保您是否有 updated list of CA certificates .
关于php - 无法使用 PHP 从 azure 媒体服务 REST API 获取访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14957232/