我正在尝试调用谷歌云 API。具体来说,来自 c# 的语言 API 使用 RestSharp 库和 OAuth 2。我能够使用下面的 curl 调用成功连接到 API:
curl -s -k -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>"
https://language.googleapis.com/v1beta1/documents:annotateText
-d @c:\temp\entity_request.json > c:\temp\googleanalysis.json
我尝试了几种不同的身份验证方式,但到目前为止,它们都没有奏效。我最新的 c# 代码如下所示:
var client = new RestClient("https://language.googleapis.com");
client.Authenticator = new RestSharp.Authenticators.HttpBasicAuthenticator("client-app", "<access_token>");
var request = new RestRequest("/v1beta1/documents:analyzeEntities", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddFile("filename", @"c:\temp\entity_request.json");
var response = client.Execute(request);
var content = response.Content;
当我从 c# 运行此调用时,我收到以下错误:
{
"error": {
"code": 403,
"message": "The request cannot be identified with a client project. Please pass a valid API key with the request.",
"status": "PERMISSION_DENIED"
}
}
我的问题是如何正确调用 RestSharp 中的谷歌云 API,就像我成功使用 curl 一样?