C# 如何从TrustPilotAPI获取评论

C# 如何从TrustPilotAPI获取评论,c#,api,httpclient,trustpilot,C#,Api,Httpclient,Trustpilot,试图从特定产品获取Trustpilot评论,但无法获得任何结果 可以成功获得代币,但随后审核: 查询将不返回任何结果,但运行时不会出错 及 查询将返回错误“Microsoft.VisualStudio.Services.OAuth.AccessTokenResponseProduct review retrieved.{“fault”:{“faultstring”:“无效的ApiKey”,“详细信息”:{“errorcode”:“OAuth.v2.InvalidApiKey”}}” Ap

试图从特定产品获取Trustpilot评论,但无法获得任何结果

可以成功获得代币,但随后审核:

  • 查询将不返回任何结果,但运行时不会出错

  • 查询将返回错误“Microsoft.VisualStudio.Services.OAuth.AccessTokenResponseProduct review retrieved.{“fault”:{“faultstring”:“无效的ApiKey”,“详细信息”:{“errorcode”:“OAuth.v2.InvalidApiKey”}}”
ApiKey与获取令牌相同,因此不理解为什么在这里不起作用。在一次绝望的尝试中,将令牌添加到url(?token={token}),但也没有成功

sku集合包括所有变体。在没有sku参数的情况下也进行了尝试,但未检索到任何内容

代码如下:

var ApiKey=“ApiKey”;
var SecretKey=“SecretKey”;
var Username=“Username”;
var Password=“Password”;
var serverUrl=“xxx.xxx.xxx.xxx”;
var businessunit=“businessunit”;
var AuthUrl2=”https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken";
变量ReviewUrl=”https://api.trustpilot.com/v1/private/product-reviews/business-units/“+BKBusinessUnit+”/reviews”;
var ProductReviewUrl=”https://api.trustpilot.com/v1/product-reviews/business-units/“+BKBusinessUnit+”/reviews”;
var token=“”;
//领取代币
使用(var httpClient=new httpClient())
{
尝试
{
httpClient.BaseAddress=新Uri(AuthUrl2);
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“application/x-www-form-urlencoded”);
var authString=ApiKey+“:”+SecretKey;
string encodedStr=Convert.ToBase64String(Encoding.UTF8.GetBytes(authString));
httpClient.DefaultRequestHeaders.Authorization=新系统.Net.Http.Headers.AuthenticationHeaderValue(“基本”,编码器);
var stringPayload=“grant_type=password&username=“+username+”&password=“+password;
var httpContent=新的StringContent(stringPayload,Encoding.UTF8,“application/x-www-form-urlencoded”);
HttpResponseMessage HttpResponseMessage=httpClient.PostAsync(AuthUrl2,httpContent).Result;
var accessTokenResponseString=httpResponseMessage.Content.ReadAsStringAsync().Result;
var accessTokenResponseObject=JsonConvert.DeserializeObject(accessTokenResponseString);
令牌=accessTokenResponseObject.AccessToken;
Console.WriteLine(“检索到令牌”。+令牌);
}
捕获(例外情况除外)
{
Console.WriteLine(“失败!”+ex.ToString());
}
}
//获取产品评论
使用(var httpClient=new httpClient())
{
尝试
{
httpClient.BaseAddress=新Uri(ProductReviewUrl);
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“application/x-www-form-urlencoded”);
var authString=ApiKey+“:”+SecretKey;
string encodedStr=Convert.ToBase64String(Encoding.UTF8.GetBytes(authString));
httpClient.DefaultRequestHeaders.Authorization=新系统.Net.Http.Headers.AuthenticationHeaderValue(“基本”,编码器);
var stringPayload=“sku=SK40132-BLK-6、SK40132-BLK-8、SK40132-BLK-10、SK40132-BLK-12、SK40132-BLK-14、SK40132-BLK-16、SK40132-BLK-18和令牌=“+token;
var httpContent=新的StringContent(stringPayload,Encoding.UTF8,“application/x-www-form-urlencoded”);
HttpResponseMessage HttpResponseMessage=httpClient.PostAsync(ProductReviewUrl,httpContent).Result;
var reviewResponseString=httpResponseMessage.Content.ReadAsStringAsync().Result;
var reviewResponseObject=JsonConvert.DeserializeObject(reviewResponseString);
Console.WriteLine(reviewResponseObject+“检索到产品审查”。+reviewResponseString);
}
捕获(例外情况除外)
{
Console.WriteLine(“失败!”+ex.ToString());
}
}
//获得评论
使用(var httpClient=new httpClient())
{
尝试
{
httpClient.BaseAddress=新Uri(ReviewUrl);
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“application/x-www-form-urlencoded”);
httpClient.DefaultRequestHeaders.Authorization=新系统.Net.Http.Headers.AuthenticationHeaderValue(“承载者”,令牌);
var stringPayload=“sku=SK40132-BLK-6、SK40132-BLK-8、SK40132-BLK-10、SK40132-BLK-12、SK40132-BLK-14、SK40132-BLK-16、SK40132-BLK-18”;
var httpContent=新的StringContent(stringPayload,Encoding.UTF8,“application/x-www-form-urlencoded”);
HttpResponseMessage HttpResponseMessage=httpClient.PostAsync(ReviewUrl,httpContent).Result;
var reviewResponseString=httpResponseMessage.Content.ReadAsStringAsync().Result;
var reviewResponseObject=JsonConvert.DeserializeObject(reviewResponseString);
WriteLine(reviewResponseObject+“Review retrieved.”+reviewResponseString);
}
捕获(例外情况除外)
{
Console.WriteLine(“失败!”+ex.ToString());
}
}
端点需要令牌。它可以通过标题或qu提供