0

我去了微软开发者网站并获得了一个客户端 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"
 }
4

1 回答 1

0

我知道,这是一个很老的问题,但是微软有这么多的 ID。我也对“invalid_client”错误感到困惑。Microsoft 表示客户端 ID 是一个值,指向https://datamarket.azure.com/developer/applications的“客户端 ID”列。它是您在创建应用程序时指定的 ID。客户 ID 可以是任何字符串,例如“myid”是一个有效的客户 ID。

$ClientID='000000004C12B0XX';

看起来像生成的值,而不是用户指向的。

于 2015-06-14T12:44:16.643 回答