我访问了Microsoft开发人员网站并获得了客户端ID和客户端密钥。
以下是我的源代码。我用XX
替换了最后两位数字<?php
$ClientID='000000004C12B0XX';
$ClientSecret='yAFqUbNwCqSbs-dQJ5BzF1tWBZggFWXX';
$ClientSecret = urlencode($ClientSecret);
$ClientID = urlencode($ClientID);
// Get a 10-minute access token for Microsoft Translator API.
$url = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
$postParams = "grant_type=client_credentials&client_id=$ClientID&client_secret=$ClientSecret&scope=http://api.microsofttranslator.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$rsp = curl_exec($ch);
print $rsp;
?>
我收到的错误消息是
{
"error":"invalid_client",
"error_description":"ACS50012: Authentication failed.
Trace ID: e2f0bfde-d086-4900-ba1f-a58f02693dac
Correlation ID: 3750d010-2e9f-45c5-8ba0-f28dfc050909
Timestamp: 2014-10-20 17:20:26Z"
}
答案 0 :(得分:0)
我知道,这是一个非常古老的问题,但微软有很多ID ......我也对“invalid_client”错误感到困惑。 Microsoft表示客户端ID是一个值,指向“客户端ID”列中的https://datamarket.azure.com/developer/applications。它是您在创建应用程序时指出的ID。客户ID可以是任何字符串,例如“myid”是有效的客户ID。
$客户端ID = '000000004C12B0XX';
看起来像生成的值,而不是用户指向的。